yt-dlp: Scaricare video da Youtube!!
yt-dlp: Scaricare video da Youtube!!
- Inizio
Inizio
0 - Installazione e configurazione
Applicazioni necessarie
Per utilizzare yt-dlp in modo completo e sfruttare tutte le funzionalità, è necessario installare diversi componenti. Di seguito l'elenco delle applicazioni richieste con le relative istruzioni di installazione.
Scegli il tipo di architettura del tuo sistema operativo ( 32 bit o 64 bit ) ma purtroppo per alcuni tool non sono disponibili in architettura 32 bit ed quindi viene da installare ad 64 bit.
yt-dlp
Il programma principale per il download di video e audio da YouTube e altre piattaforme. Si consiglia di utilizzare la versione nightly per avere le ultime funzionalità e correzioni di bug. Dopo il download, posizionare il file yt-dlp.exe in una cartella come D:\Apps\yt-dlp e aggiungere questo percorso alle variabili di ambiente di sistema per poterlo richiamare da qualsiasi directory del prompt dei comandi.
https://github.com/yt-dlp/yt-dlp-nightly-builds
Node.js
Fornisce un runtime JavaScript necessario per alcune funzionalità avanzate di yt-dlp come l'elaborazione dei cookie e l'esecuzione di script.
Deno
Un runtime JavaScript/TypeScript moderno e sicuro, utilizzato da yt-dlp come motore per l'esecuzione di codice JavaScript quando serve maggiore compatibilità. Deno è stato creato dallo stesso sviluppatore di Node.js per risolvere alcuni problemi di sicurezza e gestione delle dipendenze. Rispetto a Node.js, Deno offre un sistema di permessi più granulare, supporto nativo per TypeScript e un sistema di importazione dei moduli basato su URL. yt-dlp lo utilizza come alternativa a Node.js per garantire una migliore compatibilità con i siti che richiedono l'esecuzione di codice JavaScript complesso per l'estrazione dei video.
https://github.com/denoland/deno
winget install DenoLand.Deno
Python
Linguaggio di programmazione interpretato ad alto livello, richiesto per il funzionamento di yt-dlp poiché il programma è scritto interamente in Python. Python fornisce l'ambiente di esecuzione necessario per eseguire yt-dlp e tutte le sue funzionalità, inclusa la gestione dei formati, l'elaborazione dei metadati e l'interazione con le API dei siti. Durante l'installazione, assicurarsi di selezionare l'opzione "Add Python to PATH" per poter richiamare yt-dlp da qualsiasi directory del prompt dei comandi. Senza questa impostazione, il sistema operativo non sarebbe in grado di trovare l'eseguibile di Python necessario per avviare yt-dlp.
https://www.python.org/downloads/latest/python3.13/
Visual C++ Redistributable
Componenti Componenti necessari per il corretto funzionamento di alcune librerie e strumenti utilizzati da yt-dlp. Visual C++ Redistributable fornisce le librerie runtime di Microsoft C++ che molte applicazioni, tra cui alcuni componenti utilizzati da yt-dlp, richiedono per funzionare correttamente. Senza questi componenti, programmi come aria2, FFmpeg e alcune estensioni di Python potrebbero non essere eseguiti o potrebbero generare errori di dipendenze mancanti. Installare entrambe le versioni x86 e x64 per garantire la massima compatibilità con tutte le applicazioni, indipendentemente dall'architettura del sistema operativo o dal tipo di programma che si sta eseguendo.
Nota:
- vc_redist.x86.exe
- vc_redist.x64.exe
Installa in sequenza per il corretto funzionamento di alcune librerie e strumenti utilizzati da yt-dlp. Installare entrambe le versioni x86 e x64 per garantire la massima compatibilità.
https://learn.microsoft.com/it-it/cpp/windows/latest-supported-vc-redist?view=msvc-170
Java
Richiesto per alcuni strumenti di elaborazione video e per il funzionamento di aria2 in determinate configurazioni. Java è il linguaggio di programmazione e la piattaforma più diffusa al mondo, e la sua runtime è necessaria per eseguire applicazioni che ne richiedono le librerie. Nel contesto di yt-dlp, Java può essere utilizzato per supportare strumenti aggiuntivi di elaborazione multimediale o per garantire il funzionamento di aria2 in configurazioni specifiche. L'installazione di una distribuzione OpenJDK come Eclipse Temurin, disponibile tramite Adoptium, fornisce un runtime Java ad alte prestazioni, cross-platform, TCK certificato e verificato AQAvit, offrendo una soluzione enterprise-ready senza costi di licenza.
FFmpeg
Strumento fondamentale per l'elaborazione audio e video. Permette la conversione dei formati, l'estrazione dell'audio e il merging di tracce video e audio. FFmpeg è un framework multimediale cross-platform ampiamente utilizzato, in grado di elaborare quasi tutti i formati comuni e molti formati non comuni. Dispone di oltre 1000 componenti interni per catturare, decodificare, codificare, modificare, combinare e trasmettere in streaming contenuti multimediali, e può utilizzare decine di librerie esterne per fornire ulteriori capacità. I pacchetti per Windows sono disponibili in due varianti principali: la build essentials contiene le librerie più comunemente utilizzate ed è sufficiente per la maggior parte degli utilizzi con yt-dlp, mentre la build full include anche librerie aggiuntive per funzionalità più specializzate. Tutte le build sono a 64 bit e richiedono Windows 10 o versioni successive. È consigliabile scegliere una build git master, che rappresenta la versione più aggiornata e include tutte le correzioni e le nuove funzionalità.
winget install ffmpeg
https://www.gyan.dev/ffmpeg/builds/
Aria2
Downloader multi-thread che accelera notevolmente i download effettuando richieste parallele, rendendo il processo più veloce e stabile. Aria2 è un'utility leggera per il download di file che supporta i protocolli HTTP(S), FTP, SFTP, BitTorrent e Metalink. La sua caratteristica principale è la capacità di scaricare un file da molteplici fonti e protocolli contemporaneamente, sfruttando al massimo la banda disponibile. Aria2 utilizza il download segmentato, suddividendo i file in parti più piccole e scaricandole in parallelo per aumentare significativamente la velocità di trasferimento. Supporta inoltre funzionalità avanzate come la verifica dei checksum, il caricamento di cookie dai browser, l'autenticazione proxy, il controllo della velocità di download e upload, e un'interfaccia JSON-RPC per il controllo remoto. Nel contesto di yt-dlp, Aria2 viene utilizzato come downloader esterno per ottimizzare le prestazioni e la stabilità dei download.
winget install aria2.aria2
https://github.com/aria2/aria2
Firefox
Browser consigliato per l'utilizzo dei cookie con yt-dlp poiché il database dei cookie non è protetto, a differenza di altri browser come Chrome che implementano meccanismi di crittografia più complessi. Firefox memorizza i cookie in un database SQLite non crittografato, consentendo a yt-dlp di leggerli direttamente senza ostacoli. Questo semplifica il processo di autenticazione per scaricare video in abbonamento, contenuti con restrizioni di età o video privati. Se si preferisce utilizzare un altro browser, è possibile esportare i cookie in un file di testo utilizzando estensioni specifiche e passarli a yt-dlp con l'opzione --cookies. Per Chrome e Chromium, l'estensione "Get cookies.txt LOCALLY" permette di esportare i cookie nel formato richiesto da yt-dlp.
Estensione per Chrome/Chromium:
Ed utilizza in questo modo:
yt-dlp.exe --cookies "cookies.txt"
1 - Le opzioni
Di seguito l'elenco delle opzioni principali di yt-dlp con la loro spiegazione.
-U Aggiorna yt-dlp all'ultima versione disponibile. Esegue l'auto-aggiornamento del programma mantenendolo sempre aggiornato con le ultime funzionalità e correzioni.
-F Elenca tutti i formati disponibili per il video specificato, mostrando per ciascuno l'ID, l'estensione, la risoluzione, il codec e altre informazioni utili per scegliere il formato desiderato.
--cookies-from-browser firefox Utilizza i cookie salvati nel browser Firefox per autenticare le richieste. Questo permette di scaricare video in abbonamento o contenuti con restrizioni di età. Firefox è consigliato perché il suo database dei cookie non è protetto come quello di altri browser.
oppure:
--cookies "cookies.txt"
per chi usa "Google Crhome".
--downloader aria2c Utilizza aria2c come downloader esterno per gestire il trasferimento dei file. Aria2c effettua download multi-thread accelerando notevolmente la velocità di trasferimento.
--js-runtimes deno Specifica Deno come motore JavaScript da utilizzare per l'elaborazione delle richieste e la gestione dei cookie, garantendo maggiore compatibilità con i siti moderni.
--compat filename-sanitization Rimuove i caratteri strani e non consentiti dal nome del file, rendendolo compatibile con tutti i file system e prevenendo errori durante il salvataggio.
--add-metadata Aggiunge i metadati al file scaricato, come titolo, autore, album e altre informazioni utili per l'organizzazione della libreria multimediale.
--embed-thumbnail Scarica e incorpora la copertina del video come miniatura nel file, rendendo più facile l'identificazione visiva dei contenuti.
--audio-multistreams Attiva il supporto per lo scaricamento di tracce audio multilingue. Funziona correttamente solo quando utilizzato con Firefox e i cookie del browser.
-f bestvideo+bestaudio Seleziona e scarica il formato video di qualità migliore e il formato audio di qualità migliore, unendoli successivamente in un unico file.
-f bestvideo+bestaudio[language=it]+bestaudio Scarica il video di qualità migliore, la traccia audio in italiano e la traccia audio originale, creando un file con entrambe le tracce audio disponibili.
--merge-output-format mp4 Converte il file finale in formato MP4. Di default yt-dlp tende a utilizzare il formato MKV per il merging, questa opzione forza la conversione in MP4.
--playlist-start Specifica il numero del video da cui iniziare lo scaricamento all'interno di una playlist. Utile per scaricare solo una parte di una playlist lunga.
--playlist-end Specifica il numero dell'ultimo video da scaricare all'interno di una playlist. Combinato con playlist-start permette di selezionare un intervallo specifico.
--playlist-reverse Scarica i video di una playlist in ordine inverso, iniziando dall'ultimo.
-i Ignora i video non disponibili e continua con i successivi. Particolarmente utile quando si scaricano playlist intere in cui alcuni video potrebbero essere stati rimossi.
-a "nome_file.txt" Legge gli URL dei video da un file di testo. È possibile commentare le righe con il simbolo del cancelletto per saltare determinati video senza rimuoverli dal file.
--write-sub --sub-lang it Scarica i sottotitoli in lingua italiana e li salva insieme al video. I sottotitoli vengono incorporati nel file finale.
-o Specifica il formato del nome del file di output. Permette di organizzare i file scaricati utilizzando variabili come titolo, uploader, data e playlist.
-x Estrae solo l'audio dal video, eliminando la traccia video. Utile per convertire video in file audio.
--audio-format mp3 --audio-quality 320k Converte l'audio estratto in formato MP3 con qualità a 320 kbps. Questa è la massima qualità disponibile per il formato MP3 e richiede FFmpeg per funzionare.
2 - Parametri dell'opzione -o
L'opzione -o permette di personalizzare il nome del file di output utilizzando variabili specifiche. Di seguito le più comuni e utili.
- %(title)s: Il titolo del video
- %(uploader)s: Il nome del canale che ha caricato il video
- %(upload_date)s: La data di caricamento in formato YYYYMMDD
- %(playlist)s: Il nome della playlist
- %(playlist_index)s: La posizione del video nella playlist
- %(id)s: L'ID univoco del video
- %(ext)s: L'estensione del file in base al formato scelto
Esempi di formattazione comuni
Organizzazione per canale e titolo
-o "%(uploader)s - %(title)s.%(ext)s"
Organizzazione per playlist e posizione
-o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s"
Organizzazione per data di caricamento
-o "%(upload_date)s - %(title)s.%(ext)s"
Organizzazione complessa con cartelle
-o "%(uploader)s/%(playlist)s/%(title)s.%(ext)s"
Utilizzo dell'ID per evitare duplicati
-o "%(title)s [%(id)s].%(ext)s"
3 - Esempi di utilizzo
Nota: Per usare "Google Chrome e l'estenzione cookies utilizzare al posto di --cookies-from-browser firefox :
yt-dlp.exe --cookies "cookies.txt" ...
Download personalizzato con nome specifico
yt-dlp.exe --js-runtimes deno --downloader aria2c --add-metadata --embed-thumbnail -f bestvideo+bestaudio -o "%(uploader)s - Arduino da zero in 1 ora per principianti.%(ext)s" --merge-output-format mp4 -i <url>
Questo comando scarica il video con il nome personalizzato specificato, mantenendo l'uploader e aggiungendo l'estensione automaticamente.
Download in italiano con audio multilingue
yt-dlp.exe --cookies-from-browser firefox --js-runtimes deno --downloader aria2c --add-metadata --embed-thumbnail --audio-multistreams -f bestvideo+bestaudio[language=it]+bestaudio --compat filename-sanitization -o "%(uploader)s - %(title)s.%(ext)s" --merge-output-format mp4 -i <url>
Questo comando utilizza i cookie di Firefox per autenticare il download e scarica sia la traccia audio in italiano che quella originale, incorporando entrambe nel file finale con metadati e miniatura.
Download con sanificazione del nome file
yt-dlp.exe --js-runtimes deno --downloader aria2c --add-metadata --embed-thumbnail -f bestvideo+bestaudio --compat filename-sanitization -o "%(uploader)s - %(title)s.%(ext)s" --merge-output-format mp4 -i <url>
Questo comando si concentra sulla sanificazione del nome file, rimuovendo automaticamente i caratteri problematici che potrebbero causare errori nel salvataggio.
Download con autenticazione tramite cookie
yt-dlp.exe --cookies-from-browser firefox --js-runtimes deno --downloader aria2c --add-metadata --embed-thumbnail -f bestvideo+bestaudio -o "%(uploader)s - %(title)s.%(ext)s" --merge-output-format mp4 -i <url>
Questo comando utilizza i cookie di Firefox per accedere a contenuti che richiedono autenticazione, come video in abbonamento o con restrizioni di età.
Estrazione audio in MP3
yt-dlp.exe --js-runtimes deno --downloader aria2c --compat filename-sanitization -o "%(title)s.%(ext)s" -x --audio-format mp3 --audio-quality 320k <url>
Questo comando estrae solo l'audio dal video e lo converte in formato MP3 con qualità a 320 kbps, il massimo consentito per questo formato.
Download con sottotitoli italiani
yt-dlp.exe --cookies-from-browser firefox --js-runtimes deno --downloader aria2c --add-metadata --embed-thumbnail -f bestvideo+bestaudio --compat filename-sanitization --write-sub --sub-lang it -o "%(uploader)s - %(title)s.%(ext)s" --merge-output-format mp4 -i <url>
Questo comando scarica i sottotitoli in lingua italiana e li incorpora nel file video insieme a metadati e miniatura.
Download di una playlist parziale
yt-dlp.exe --cookies-from-browser firefox --js-runtimes deno --downloader aria2c --add-metadata --embed-thumbnail -f bestvideo+bestaudio --compat filename-sanitization -o "%(uploader)s - %(playlist)s/%(title)s.%(ext)s" --merge-output-format mp4 --playlist-start 1 --playlist-end 30 -i <url>
Questo comando scarica i primi 30 video di una playlist, organizzandoli in una cartella con il nome della playlist e includendo metadati e miniatura per ogni file.
Download solo video in formato MP4
yt-dlp.exe --cookies-from-browser firefox --js-runtimes deno --downloader aria2c --add-metadata --embed-thumbnail -f bestvideo[ext=mp4] --compat filename-sanitization -o "%(uploader)s - %(title)s.%(ext)s" --merge-output-format mp4 -i <url>
Questo comando scarica esclusivamente il video in formato MP4, selezionando il formato video di migliore qualità disponibile in MP4.
yt-dlp.exe --js-runtimes deno --downloader aria2c --add-metadata --embed-thumbnail -f bestvideo[ext=mp4] --compat filename-sanitization -o "%(uploader)s - %(title)s.%(ext)s" --merge-output-format mp4 -i <url>
Questo secondo comando per il solo video in MP4 non richiede i cookie, rendendolo adatto per contenuti pubblici non soggetti a restrizioni.