Guida Streamingcommunity

Metal203

Utente Bronze
22 Dicembre 2019
6
2
4
27
Ultima modifica:
Ciao,
Un paio di anni fa avevo scritto per un 'amico' un programma in python per scaricare le playlist m3u8 da streamming-community. Non so se può interessare

Il problema principale che ho avuto è stato superare cloudflare in quanto a mia disposizione avevo solo undetected_webdriver e una vps con un ip forse con cattiva reputazione e non avevo servizi a pagamento.
Il sito condivide lo streaming tramite il sistema HLS . Ogni video è associato ad una playlist che contiene all'interno nomi di files tanti quanti sono le parti o segmenti che compongono il video.
Ogni segmento rappresenta un parte del flusso per n secondi e ha come estensione *.ts vedi : M3U wikipedia
Una volta ottenuta la playlist è possibile scaricare il video oppure fare il play con VLC , KODI o ancora HLS streaming di Chrome

Esempio playlist (una parte):
Codice:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:4.004267,
https://sc-u4-01.scws-content.net/hls/2/b4abb623-c49b-470d-8fd4-ccf84987ba42/360p_000.ts
#EXTINF:4.004267,
https://sc-u4-01.scws-content.net/hls/2/b4abb623-c49b-470d-8fd4-ccf84987ba42/360p_001.ts

Per quello che ho capito esistono due modi per ottenere la playlist :

1) Automazione webbrowser
- Utilizzi undetected_driver e cambi user-agent ad ogni connessione
- niente proxy
- Puntare al link del video esempio : https://streamingcommunity.cz/watch/7166?s=1 e leggere successivamente il log del browser
- Cercare un url contenente un token esempio :
Codice:
https://vixxcloud.co/playlist/40006?type=video&rendition=720p&token=HsU7f0jTpMEy0nDGjUebow&expires=1705496820&canCast=1&n=1

Scarichi la playlist e successivamente con la playlist scarichi il video oppure decidi di salvare ogni url nel database e scaricare tutto dopo.
Nota :
- potresti ricevere un 404 non appena tenti di scaricare la playlist in quanto il video potrebbe essere stato cancellato o spostato.

- Con questo metodo sono riuscito a farlo funzionare per qualche tempo sulla vps. Purtroppo mi scontravo spesso con cloudflare e altri problemi:
- il dominio in un intervallo di 100k link cambiava spesso
- il browser è più lento
- cloudflare fa il suo mestiere


2) Non usi l'indirizzo del sito..Fai la scansione
Nei log mi sono accorto che c'è un altro indirizzo che non cambia mai e che funziona benissimo sulla vps:
scws.work

Puoi scrivere infatti:
Codice:
https://scws.work/playlist/40006?type=video&rendition=720p&token=HsU7f0jTpMEy0nDGjUebow&expires=1705496820&canCast=1&n=1
invece di :
Codice:
https://vixxcloud.co/playlist/40006?type=video&rendition=720p&token=HsU7f0jTpMEy0nDGjUeb.....

mentre se sostituisci 'playlist' con 'video':
https://scws.work/video/38450 fino ad arrivare a https://scws.work/video/170000 e oltre accedi a tutti i dati del video
esempio:

Ottenuti i dati quali titolo , risoluzione, ricostruisci il link della playlist :
Python:
f"https://scws.work/playlist/{video_id}?type=video&rendition={quality}p&token={token}&canCast=1&n=1

Salvi il link nel database.
Cosi facendo non ho avuto più a che fare con cloudflare e il cambiamento del dominio.

Nota:
- Su quell'indirizzo ci sono anche gli anime....
- Quando scansioni potresti ricevere vari 404 perchè esistono molti video_id ad esempio da 1 a 38450 "liberi"

Nota:
Se il link che hai salvato nel database non è più valido il token potrebbe essere scaduto .
Vedi sopra "expires=1705496820" nel link del token. Tale numero è espresso in epoch time epoch converter . Però Il token dura qualche mese..
- Per prendere il token ho uno script ma visto che dura qualche mese vale la pena farlo a mano ed valido per TUTTI i link scansionati

Ha sempre funzionato ..Almeno fino a sta sera
Ho scritto una versione ridotta del programma che ho appena uploadato su github.
Funziona su linux e su windows 11
Su windows ho evitato di compilare con pyinstaller per il momento.

Per windows:
- cmd
- python -m venv scommunity
- cd scommunity
- cd Scripts
- activate.bat
Sulla riga di commando a sinistra dovreste avere '(scommunity) c:\... ecc'
Ovvero l'ambiente virtuale.

- cd ..
- git clone https://github.com/31December99/streaming-community
- cd streaming-community
- pip install -r requirements.txt

python start.py

Se non ritorna nessun errore dovrebbe essere ok. Sotto la cartella Downloads trovate la nuova cartella 'hls_files'


Scaricare le playlist m3u8

python start.py -range 38450 39000 ( parte da 38450 fino a 170k e oltre )


Scaricare i video
Copiate le playlist che vi servono nella cartella Downloads\hls_file\Playlists

Lanciate il download :
python start.py -dw

Video su linux