Script Python per cercare e scaricare flussi video (.m3u8) da pagine di film e serie TV su onlineserietv.com. Lo script è autonomo e portatile: gestisce automaticamente il download del browser necessario per l'automazione e può scaricare FFmpeg se non è già installato.
- Navigazione Robusta: Utilizza Camoufox (basato su Playwright) per una navigazione più affidabile, eludendo le comuni protezioni anti-bot.
- Gestione FFmpeg: Se
ffmpegnon è nel PATH, lo script tenta di scaricare una versione compatibile per il tuo sistema operativo. - Logica di Download Intelligente:
- Rileva automaticamente film e serie TV.
- Per le serie, legge stagioni ed episodi dall'interfaccia del sito.
- Seleziona in modo intelligente il player video corretto (
Flexy) per evitare CAPTCHA. - Simula le interazioni umane, come cliccare sul pulsante "Play" per attivare il caricamento del video.
- Include una logica di tentativi multipli per superare caricamenti lenti o errori temporanei.
- Download Ottimizzato: Scarica i video in formato MP4 tramite
ffmpeg(copia diretta, senza ricodifica) e mostra una barra di avanzamento con il tempo trascorso. - Output Organizzato: Salva i file con nomi puliti in una struttura di cartelle logica e personalizzabile.
- Python 3.10+
ffmpegeffprobe(consigliato, ma lo script tenterà di installarli se non presenti)- Dipendenze Python (installate automaticamente tramite
requirements.txt)
- Clona il repository (o scarica lo ZIP):
git clone https://github.com/tuo-username/onlineserietv_searcher.git cd onlineserietv_searcher - Crea e attiva un ambiente virtuale (consigliato):
python -m venv .venv # Su Windows .venv\Scripts\activate # Su Linux/macOS source .venv/bin/activate
- Installa le dipendenze Python:
pip install -r requirements.txt
La prima volta che avvii lo script, questo eseguirà una configurazione automatica:
- Controllerà la presenza del browser per l'automazione.
- Se non lo trova, avvierà il download automatico (potrebbe richiedere qualche minuto). Vedrai uno spinner di attività che indica che il processo è in corso.
- Le esecuzioni successive saranno immediate.
Lo script può essere usato in due modalità: ricerca interattiva o download diretto tramite link.
Esempio 1: Ricerca Interattiva Esegui lo script senza argomenti. Ti verrà chiesto di inserire un titolo, e potrai scegliere dai risultati.
python main.pyEsempio 2: Download Diretto di un Film
python main.py --link "https://onlineserietv.com/film/nome-film/"Esempio 3: Download di una Serie TV Completa
python main.py --link "https://onlineserietv.com/serietv/nome-serie/"Esempio 4: Download di Episodi Specifici Scarica la stagione 2, episodi da 1 a 3 e l'episodio 5.
python main.py --link "https://onlineserietv.com/serietv/nome-serie/" --seasons 2 --episodes 1-3,5--link(string): URL diretto della pagina del film o della serie. Se omesso, avvia la modalità interattiva.--seasons(string, defaultall): Seleziona le stagioni da scaricare. Esempi:all,1,1,3-4.--episodes(string, defaultall): Seleziona gli episodi. Esempi:all,1-3,5.--outdir(string): Cartella base per i download (default:Downloads).--headless/--no-headless: Esegue il browser in background (default) o in modalità visibile (utile per il debug).--delay(float, default2.0): Secondi di attesa tra il download di un episodio e il successivo.
- Setup: Alla prima esecuzione, lo script invoca
playwright installper scaricare un'istanza locale del browser nella cartellabrowser_data. - Navigazione: La pagina viene aperta con Camoufox, che gestisce l'identità del browser per ridurre le probabilità di essere bloccati.
- Logica di Estrazione:
- Per le serie, viene individuato l'iframe
streaming-serie-tvper enumerare stagioni ed episodi. - Per ogni episodio, lo script controlla il player attivo. Se non è "Flexy (
fx)", lo seleziona e attende il ricaricamento della pagina. - Viene eseguito un controllo proattivo per la presenza di CAPTCHA; se rilevato, lo script forza un nuovo tentativo.
- Viene simulato un click sull'area del player (
.video-js) per attivare la richiesta del flusso video.
- Per le serie, viene individuato l'iframe
- Parsing: Lo script offuscato all'interno dell'iframe del player viene analizzato con
jsbeautifiere una regex per estrarre il link.m3u8finale. - Download:
ffmpegviene usato per scaricare il flusso video senza ricodifica (-c copy), garantendo la massima qualità e velocità.
I file vengono salvati in una struttura ordinata all'interno della cartella specificata con --outdir (o Downloads di default).
- Serie TV:
Downloads/Serie/<Nome Serie>/Sxx/<Nome Serie> - SxxExx.mp4 - Film:
Downloads/Film/<Nome Film>/<Nome Film>.mp4
- Bloccato su "Just a moment..." o CAPTCHA: Lo script è progettato per gestire queste situazioni con tentativi multipli. Se il problema persiste, prova ad eseguirlo con
--no-headlessper vedere cosa sta succedendo nel browser. - Installazione del browser fallita: Assicurati di avere una connessione a internet stabile e che nessun firewall stia bloccando il download. Puoi provare a cancellare la cartella
browser_datae riavviare lo script. - FFmpeg non trovato: Se il download automatico fallisce, installa
ffmpegmanualmente e assicurati che sia accessibile dal tuo terminale.
Questo progetto è stato creato a solo scopo didattico. L'utente è tenuto a rispettare i termini di utilizzo del sito sorgente e le leggi sul diritto d'autore vigenti nel proprio Paese. L'autore non si assume alcuna responsabilità per un uso improprio dello strumento.
- Un sentito grazie a Arrowar per il suo repository Streamincommunity, fonte di ispirazione e riferimento per la gestione di player e scraping.
- Grazie anche a UrloMythus per il suo script dedicato all’estrazione dei link dal player Flexy, che ha fornito spunti tecnici fondamentali per la decodifica degli script offuscati.