Risolvere errore uploader id su youtube-dl
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 libreria youtube-dl
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:
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:
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.