YouTube-dl je můj oblíbený a preferovaný správce stahování z příkazového řádku. Často jej používám ke stahování audia, videí a filmů z internetu. Dnes jsem se pokusil stáhnout video z YouTube pomocí youdtube-dl z počítače se systémem Linux a zobrazila se tato chybová zpráva – Nelze stáhnout data videa:Chyba HTTP 403:Zakázáno . Většina chyb youtube-dl bude obvykle opravena po aktualizaci youtube-dl. Aktualizoval jsem tedy youtube-dl pomocí příkazu:
$ sudo youtube-dl -U
Již je aktualizován! Mám nejnovější verzi.
A pak jsem znovu zkusil stáhnout video příkazem:
$ youtube-dl https://www.youtube.com/watch?v=4jTy5jnMkYc
Ale dostávám stejnou chybu:
[youtube] 4jTy5jnMkYc: Downloading webpage WARNING: Requested formats are incompatible for merge and will be merged into mkv. ERROR: unable to download video data: HTTP Error 403: Forbidden
Pokud jste někdy narazili na tuto chybu, opravte ji podle níže uvedených kroků.
Oprava „Nelze stáhnout videodata:Chyba HTTP 403:Zakázáno“ Chyba při stahování mediálních souborů pomocí Youtube-dl v Linuxu
K této chybě pravděpodobně dojde kvůli mezipaměti Youtube-dl. Chcete-li to opravit, jednoduše odstraňte mezipaměť pro youtube-dl pomocí příkazu:
$ youtube-dl --rm-cache-dir
Tento příkaz odstraní místní adresář pro ukládání do mezipaměti pro youtube-dl. V mém případě to odstranilo následující adresář:
Removing cache dir /home/sk/.cache/youtube-dl ...
Pokud používáte Youtube-dl v kódu Pythonu, následující pomůže tuto chybu opravit.
# 'cachedir': False -> don't use a local caching dir (~/.cache/youtube-dl) ydl_opts = {..., 'cachedir': False } with youtube_dl.YoutubeDL(ydl_opts) as ydl: result = ydl.extract_info(url)
Nyní mohu bez problémů stahovat videa z YouTube.
$ youtube-dl https://www.youtube.com/watch?v=4jTy5jnMkYc
[youtube] 4jTy5jnMkYc: Downloading webpage [youtube] 4jTy5jnMkYc: Downloading js player vflset [youtube] 4jTy5jnMkYc: Downloading js player vflset WARNING: Requested formats are incompatible for merge and will be merged into mkv. [download] Destination: Takkar _ Nira Song Lyric Video _ Siddharth _ Sid Sriram _ Gautham Menon _ Nivas K Prasanna-4jTy5jnMkYc.f137.mp4 [download] 100% of 29.87MiB in 00:24 [download] Destination: Takkar _ Nira Song Lyric Video _ Siddharth _ Sid Sriram _ Gautham Menon _ Nivas K Prasanna-4jTy5jnMkYc.f251.webm [download] 100% of 5.10MiB in 00:04 [ffmpeg] Merging formats into "Takkar _ Nira Song Lyric Video _ Siddharth _ Sid Sriram _ Gautham Menon _ Nivas K Prasanna-4jTy5jnMkYc.mkv" Deleting original file Takkar _ Nira Song Lyric Video _ Siddharth _ Sid Sriram _ Gautham Menon _ Nivas K Prasanna-4jTy5jnMkYc.f137.mp4 (pass -k to keep) Deleting original file Takkar _ Nira Song Lyric Video _ Siddharth _ Sid Sriram _ Gautham Menon _ Nivas K Prasanna-4jTy5jnMkYc.f251.webm (pass -k to keep)
Jak jste si pravděpodobně všimli, ve výše uvedeném příkazu je varovná zpráva:
[...] WARNING: Requested formats are incompatible for merge and will be merged into mkv. [...]
Ve skutečnosti to není problém, ale očekávané chování příkazu youtube-dl. Ve výchozím nastavení youtube-dl stáhne nejkvalitnější audio a nejkvalitnější dostupné video streamy a poté je spojí do kompatibilního kontejneru, jako je mkv, mp4 atd. Pokud se tyto audio a video streamy nevejdou do kontejneru mp4, youtube -dl je poté zabalí do kontejneru mkv a zobrazí výše uvedenou varovnou zprávu. V takových případech můžete ignorovat varování mkv a stáhnout si video v nejlepší kvalitě a zvuk v nejlepší kvalitě ale pouze v kontejneru mp4 výslovným uvedením požadovaných formátů zvuku a videa v nejlepší kvalitě, jak je uvedeno níže:
$ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]' https://www.youtube.com/watch?v=4jTy5jnMkYc
Další příklady příkazů Youtube-dl naleznete v následující příručce.
- Výukový program YouTube-dl s příklady pro začátečníky
Doufám, že to pomůže.