Download automatici di un canale Youtube

Di Youtube-dl ho già parlato, ma ogni volta che vi ricorro si dimostra ancora più versatile e potente di quanto potessi immaginare.
Una convention annuale solitamente articolata in più giorni, in questo periodo di pandemia si svolge completamente online, pubblicando i filmati degli interventi su un canale Youtube.
Purtroppo i video rimangono disponibili solo per poche ore, avevo quindi bisogno di scaricarli in fretta, evitando però di includere anche altri video pubblicati precedentemente.

Leggendo tra la documentazione di Youtube-dl, ho scoperto l’opzione --dateafter, mi basta quindi impostare la data di inizio della convention per selezionare automaticamente solo i video pubblicati a partire da quella data.

Con l’opzione --download-archive evito il download dei video precedentemente scaricati. Youtube-dl tiene traccia di quanto ha già scaricato nel file download.txt .

L’opzione -i ignora eventuali errori relativi a filmati non disponibili, nel mio caso utili perchè già presenti in playlist i filmati in programma nei giorni successivi.

Con l’opzione -o specifico la cartella di destinazione e il formato del nome del file da salvare.

Il comando completo è quindi:

$ youtube-dl -o "/cartella/download/%(title)s.%(ext)s" --dateafter 20210315 --download-archive /cartella/download/downloads.txt -i https://www.youtube.com/playlist?list=abcde1234

inserito in un crontab, ogni 6 ore controlla la presenza di nuovi video e li scarica nella cartella scelta.

# scarica i nuovi filmati ogni 6 ore
* */6 * * * youtube-dl -o "/mnt/download/CON6/%(title)s.%(ext)s" --dateafter 20210315 --download-archive /mnt/download/downloads.txt -i https://www.youtube.com/playlist?list=abcde1234

Usare Youtube-dl per scaricare più URL

Nonostante ultimamente qualcuno gli stia mettendo i bastoni fra le ruote, youtube-dl rimane uno dei tool più soprendenti in ambiente software libero.
Oggi ho scoperto che riesce anche a scaricare senza problemi i filmati di Facebook.

Come fare però se i filmati che ci interessano sono molti?
Nessun problema, basta creare un semplice file di testo:

$ nano lista_video.txt

inserendo un indirizzo per riga:

https://indirizzo.uno/video.php
https://indirizzo.due/altro_video.php
...

A questo punto non serve altro che darlo in pasto a youtube-dl con l’opzione -a oppure --batch-file:

$ youtube-dl -a lista_video.txt