Risolvere errore uploader id su youtube-dl

Thu 18 May 2023

La libreria youtube-dl rappresenta un formidabile aiuto per tutti coloro hanno necessità di scaricare tracce video e/o audio da youtube (e da molte altri sorgenti). La libreria funziona perfettamente ed ha una miriade di comandi a disposizione per decidere come scaricare i video, in che formato, con quale qualità, e così via. Utilizzando la libreria frequentemente abbiamo riscontrato un malfunzionamento che inibisce il download ed in questo articolo vogliamo spiegarti come fare a risolverlo.

Partiamo con ordine, supponiamo di voler scaricare l'audio di un video del nostro canale; la url del video da scaricare è la seguente: video da scaricare.

Per poter scaricare la traccia audio, eseguiamo i seguenti passi.

Installazione della libreria youtube-dl su virtualenv

Installeremo la libreria all'interno di un virtualenv python. Per creare il virtualenv eseguiamo:

python -m venv .env
source .env/bin/activate

A questo punto installiamo la libreria con il comando:

pip install youtube-dl

Al termine dell'installazione accertati che la libreria sia correttamente installata, richiedendo la versione della stessa con il comando:

.env/bin/youtube-dl --version

Nota che abbiamo inserito il path della libreria, installata all'interno del virtualenv, per non incombere in problemi con eventuali librerie installate sul sistema.

Se il comando risponde correttamente, allora è stato correttamente installato. L'output prodotto dovrebbe essere come segue:

Versione installata di youtube-dl

La versione di youtube-dl che utilizzeremo nella guida, e che ha prodotto l'errore, è la 2021.12.17.

Visualizzazione errore

Arrivati a questo punto proviamo a scaricare la traccia audio con il seguente comando:

.env/bin/youtube-dl --verbose -x --audio-format flac https://www.youtube.com/watch\?v\=DGs1i1-bcGY

L'output prodotto dal comando è il seguente:

Errore nel download di un file da youtube-dl

Come si evince dal messaggio di errore, la libreria ha un problema con l'uploader id di youtube, poiché non riesce a riconoscerlo e quindi a scaricare la traccia.

Risoluzione dell'errore

Dall'output precedentemente prodotto, si evince che la riga da risolvere è:

File "~/src/youtube/.env/lib/python3.10/site-packages/youtube_dl/extractor/youtube.py", line 1794

Per risolvere il bug, aprire il file e sostituire la riga 1794, rimuovendo l'istruzione:

'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,

ed inserendo la riga

'uploader_id': self._search_regex(r'/(?:channel|user/|@)/([^/?&#]+)', owner_profile_url, 'uploader id', default=None),

Questa modifica consentirà di scaricare le tracce.

Conclusioni

In questo articolo hai visto come risolvere il bug introdotto nella versione 2021.12.17 per scaricare video ed audio da youtube.