Scaricare musica e video da YouTube per uso personale
1 – Introduzione
Questa guida raccoglie gli appunti per utilizzare yt-dlp per scaricare video o musica da YouTube per uso personale. Vengono descritte le applicazioni necessarie, le opzioni principali con relative spiegazioni, i parametri di formattazione dei file e una serie di esempi pratici pronti all'uso.
2 – Applicazioni necessarie
2.1 – yt-dlp
Link di riferimento: https://github.com/yt-dlp/yt-dlp-nightly-builds
File consigliato per Windows: yt-dlp.exe
Nota: Mettere yt-dlp.exe in d:\Apps\yt-dlp. Su Windows aggiungere il percorso alla variabile d'ambiente PATH globale nelle variabili del sistema, in modo da poter richiamare yt-dlp.exe da qualsiasi cartella senza specificare il percorso completo .
Spiegazione: yt-dlp è un programma da riga di comando per scaricare video e audio da YouTube e da molti altri siti. La versione nightly contiene aggiornamenti più frequenti rispetto alla versione stabile. L'inserimento nella variabile PATH permette di eseguire il comando yt-dlp.exe direttamente dal terminale.
2.2 – Node JS
Link di riferimento: https://nodejs.org/
Spiegazione: Node.js è un runtime JavaScript. yt-dlp lo può utilizzare come motore JavaScript per risolvere le sfide JavaScript presentate da YouTube. Node.js non è abilitato per impostazione predefinita e richiede l'opzione --js-runtimes node per essere utilizzato .
2.3 – Deno
Link di riferimento: https://github.com/denoland/deno
File consigliato: deno-x86_64-pc-windows-msvc.zip
Installazione tramite winget: winget install DenoLand.Deno
Spiegazione: Deno è il runtime JavaScript raccomandato da yt-dlp per il supporto a YouTube. È abilitato per impostazione predefinita e il codice viene eseguito in modalità sandbox senza accesso al filesystem o alla rete, offrendo maggiore sicurezza . La versione minima supportata è la 2.0.0 .
2.4 – Python
Link di riferimento: https://www.python.org/downloads/latest/python3.13/
File consigliato: python-3.13.15-amd64.exe
Spiegazione: Python è il linguaggio su cui è costruito yt-dlp. Sebbene la versione standalone yt-dlp.exe includa già l'interprete Python, Python può essere utile per installare yt-dlp tramite pip o per utilizzare funzionalità aggiuntive .
2.5 – Visual C++
Link di riferimento: https://learn.microsoft.com/it-it/cpp/windows/latest-supported-vc-redist?view=msvc-170
File consigliati:
VC_redist.x86.exeVC_redist.x64.exe
Spiegazione: I ridistribuibili Visual C++ forniscono le librerie runtime necessarie per il corretto funzionamento di diverse applicazioni su Windows, inclusi alcuni componenti software.
2.6 – Java
Link di riferimento: https://adoptium.net/
Spiegazione: Java è un runtime aggiuntivo che può essere richiesto da alcuni componenti o strumenti opzionali. Non è strettamente necessario per le funzionalità di base di yt-dlp, ma viene elencato per completezza.
2.7 – ffmpeg
Link di riferimento: https://www.gyan.dev/ffmpeg/builds/
Installazione tramite winget: winget install ffmpeg
Spiegazione: ffmpeg è uno strumento essenziale per yt-dlp. Viene utilizzato per unire le tracce video e audio separate in un unico file, per convertire formati, per estrarre l'audio e per incorporare metadati e copertine . Senza ffmpeg, molte delle funzionalità di post-processing non sono disponibili.
2.8 – Aria2
Link di riferimento: https://github.com/aria2/aria2
Installazione tramite winget: winget install aria2.aria2
File alternativo: aria2-1.37.0-win-64bit-build1.zip
Spiegazione: aria2 è un downloader esterno multi-connessione. Quando utilizzato con yt-dlp tramite l'opzione --downloader aria2c, permette di scaricare i file in modo più veloce sfruttando connessioni multiple e frammentazione dei file .
2.9 – Firefox
Link di riferimento: https://www.firefox.com/it
In alternativa si usa l'estensione dallo Store di Google Chrome:
Get cookies.txt LOCALLY
Scaricabile dalle estensioni di "Google Chrome"
Serve per leggere i cookie di YouTube.
Utilizzabile con --cookies "youtube_cookie.txt"
Spiegazione: yt-dlp può leggere i cookie direttamente dal browser Firefox tramite l'opzione --cookies-from-browser firefox. Questo è utile per scaricare video che richiedono l'accesso a un account, come contenuti in abbonamento o playlist private . Firefox è consigliato perché il database dei cookie non è protetto come in Chrome. In alternativa, l'estensione "Get cookies.txt LOCALLY" permette di esportare i cookie in un file di testo utilizzabile con --cookies.
3 – Le opzioni
-U- Aggiorna yt-dlp all'ultima versione disponibile. Utile per risolvere problemi di download causati da modifiche apportate da YouTube .
-F- Elenca tutti i formati disponibili per il video specificato, mostrando per ciascuno il codice formato, l'estensione, la risoluzione, il codec video e audio, e altre informazioni .
--cookies-from-browser firefox- Usa i cookie memorizzati nel browser Firefox per autenticarsi su YouTube. Necessario per scaricare video in abbonamento o con restrizioni di età. Firefox è preferibile perché il database dei cookie non è protetto da crittografia aggiuntiva.
--cookies "youtube_cookie.txt"- Alternativa per utilizzare i cookie esportati in un file di testo. Utile quando si usa Google Chrome o quando non si vuole leggere direttamente dal browser.
--downloader aria2c- Delega il download a aria2c, che supporta connessioni multiple e frammentazione dei file, rendendo il download più veloce e asincrono .
--js-runtimes deno- Specifica il motore JavaScript da utilizzare per risolvere le sfide JavaScript di YouTube. Deno è il runtime raccomandato ed è abilitato per impostazione predefinita .
--compat filename-sanitization- Rimuove o sostituisce caratteri non validi per i nomi dei file su Windows (come
?,|,:,*,",<,>), evitando errori durante il salvataggio .
--add-metadata- Aggiunge i metadati del video (titolo, autore, data di caricamento, ecc.) al file scaricato .
--embed-thumbnail- Scarica e incorpora la copertina del video nel file finale, se disponibile .
--audio-multistreams- Attiva lo scaricamento di più tracce audio contemporaneamente, permettendo di ottenere il doppiaggio in italiano e l'audio originale. Richiede l'uso dei cookie per accedere alle tracce audio alternative .
-f bestvideo+bestaudio- Scarica il miglior formato video e il miglior formato audio separatamente, che verranno poi uniti da ffmpeg .
-f bestvideo+bestaudio[language=it]+bestaudio- Scarica il miglior video, la migliore traccia audio in italiano e la migliore traccia audio originale. Richiede i cookie per accedere alle tracce audio in lingue diverse .
--merge-output-format mp4- Specifica il formato del contenitore per il file finale quando si uniscono video e audio. Converte da MKV a MP4 .
--playlist-start- Specifica l'indice del primo video della playlist da scaricare.
--playlist-end- Specifica l'indice dell'ultimo video della playlist da scaricare.
--playlist-reverse- Scarica i video della playlist in ordine inverso, dall'ultimo al primo.
-i- Ignora gli errori e salta i video non disponibili. Utile quando si scarica una playlist intera che potrebbe contenere video rimossi o bloccati.
-a "nome_file.txt"- Legge un file di testo contenente una lista di URL o ID video da scaricare. Le righe che iniziano con
#vengono ignorate, permettendo di saltare i video non desiderati.
--write-sub --sub-lang it- Scarica i sottotitoli in formato file separato.
--write-subabilita la scrittura dei sottotitoli,--sub-lang itspecifica la lingua italiana .
-o- Definisce il modello di formattazione del nome del file di output. I parametri disponibili sono descritti nella sezione 4.
-x- Estrae l'audio dal video, eliminando la traccia video.
--audio-format mp3 --audio-quality 320k- Specifica il formato audio di output (MP3) e la qualità (320 kbps). Richiede che ffmpeg sia installato .
4 – Parametri dell'opzione: "-o"
%(title)s- Titolo del video.
%(uploader)s- Nome del canale che ha caricato il video.
%(ext)s- Estensione del file di output.
%(id)s- ID univoco del video su YouTube.
%(playlist)s- Nome della playlist.
%(playlist_index)s- Numero di indice del video all'interno della playlist.
4.1 – Esempi comuni di formattazione
%(uploader)s - %(title)s.%(ext)s
- Crea un file con nome "NomeCanale - TitoloVideo.estensione".
%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s
- Crea una cartella con il nome della playlist e all'interno i video numerati con indice e titolo .
%(upload_date>%Y)s/%(title)s.%(ext)s
- Organizza i file in cartelle basate sull'anno di caricamento .
5 – Esempi
5.1 – Personalizzato
<url> Basta l'id del Video, non tutto l'url di YouTube.
Esempio: https://www.youtube.com/watch?v=j0nrkZJ95H8
Dopo ?v= è l'id del video.
https://youtube.com/playlist?list=PLEDdgig4bVqA
Dopo ?list= è l'id della playlist
& Dopo questo non interessa.
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>
5.2 – Italiano / Lingua originale
Nota: Servono i cookie per scaricare i video con tracce audio in lingue diverse.
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>
5.3 – filename-sanitization
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>
5.4 – Cookies
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>
5.5 – 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>
5.6 – Sottotitoli
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>
5.7 – Playlist
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 - /%(playlists)s/%(title)s.%(ext)s" --merge-output-format mp4 --playlist-start 1 --playlist-end 30 -i <url>
5.8 – Only video
Con cookie
yt-dlp.exe --cookies-from-browser firefox --js-runtimes deno --downloader aria2c --add-metadata --embed-thumbnail bestvideo[ext=mp4] --compat filename-sanitization -o "%(uploader)s - %(title)s.%(ext)s" --merge-output-format mp4 -i <url>
Senza cookie
yt-dlp.exe --js-runtimes deno --downloader aria2c --add-metadata --embed-thumbnail bestvideo[ext=mp4] --compat filename-sanitization -o "%(uploader)s - %(title)s.%(ext)s" --merge-output-format mp4 -i <url>