使用youtube-dl下载播放列表时出现问题


19

当我尝试从youtube下载播放列表时,我收到必须更新youtube-dl的消息,我收到以下错误消息:

elshahen@elshahen-LAB:~$ youtube-dl -cit https://www.youtube.com/playlist?list=PLGwhw5SI2xoYKHyzQDj1y2I8vURgm8yd2
[youtube:playlist] PLGwhw5SI2xoYKHyzQDj1y2I8vURgm8yd2: Downloading page #1
WARNING: [youtube:playlist] PLGwhw5SI2xoYKHyzQDj1y2I8vURgm8yd2: Playlist page is missing OpenGraph title, falling back ...
ERROR: Unable to extract title; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.

所以...您做了它建议的任何事情吗?
Nattgew

1
我遇到了标题中描述的问题,但是由于另一个原因。如果有人遇到此错误(但错误消息有所不同),请记住将URL放在引号之间,例如youtube-dl -x "https://www.youtube.com/watch?v=abcd&list=efgh",因为Windows cmd.exe和Linux Shell均将&符解释&为特殊字符。
f.ardelian 2015年

Answers:


31

我确实有这个问题。尝试这种方式...

删除旧版本的youtube-dl

sudo apt-get remove -y youtube-dl

从官方网站下载最新版本

sudo wget https://yt-dl.org/latest/youtube-dl -O /usr/local/bin/youtube-dl

更改下载文件的权限

sudo chmod a+x /usr/local/bin/youtube-dl

查看此链接以获取更多详细信息。

希望这对您有帮助。


6

使用webUpd8的ppa:ppa:nilarimogard / webupd8

它始终包含最新的版本。

sudo apt-get remove youtube-dl
sudo apt-add-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install youtube-dl

5

我尝试下载问题中的播放列表,但收到与您相同的错误消息。我没有更新youtube-dl即可正常工作,而是转到您的播放列表网页,复制了网址,并从终端运行了以下命令:

sudo apt install jq # command-line JSON processor    
cd Desktop/    
youtube-dl -j --flat-playlist "https://<yourYoutubePlaylist>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > batch-file.txt  

这些命令的结果是该网页上所有链接的列表。我制作了一个批处理文件,其中包含所有视频的URL列表(仅视频,而不是其他链接),每个视频URL都换行。之后,我可以按照以下说明通过一个命令下载所有视频。

  1. 创建一个批处理文件,该文件是一个文本文件,其中包含要下载的YouTube视频的URL列表。这些URL应该安排在一个列表中,该列表中只有一个URL,而每行都没有其他内容,并且列表中的每个URL都有一个新行。用易于记忆的名称保存批处理文件,例如batch-file.txt。如果多个文件全部位于YouTube的同一用户,频道或播放列表网页上,则可以通过运行以下命令来生成带有列表的文本文件,该列表包含该页面上的所有链接:

    youtube-dl -j --flat-playlist "https://<yourYoutubePlaylist>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > batch-file.txt 
    
  2. 从终端运行:

    youtube-dl -ct --simulate --batch-file='/path/to/batch-file.txt'
    
  3. 这是基本命令,但是您还需要添加要下载的视频的格式,否则您可能会发现自己下载了不需要的格式的视频。因此,首先模拟您的下载以查看所需格式是否可用:

    youtube-dl -ct -f 34 --simulate 'http://www.youtube.com/some-alphanumeric-string'
    
  4. 如果视频格式不可用,您将收到一条错误消息:requested format not available。如果视频格式可用,则使用该--simulate选项时不会出现任何错误消息。您还可以添加-F选项以查看所有有效格式,如下所示:

    youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'
    
  5. 在上述命令中,我使用了常见的flv 360p视频格式:-f 34。您可能更喜欢使用尝试flv 480p视频格式-f 35。在将所需的视频格式添加到命令后,该命令将变成如下所示:

    youtube-dl -f 35 -ciw -o "%(title)s.%(ext)s" --batch-file='/path/to/batch-file.txt'  
    

    我没有--simulate在最后一个命令中添加该选项,因此该命令将真正执行。


我必须添加| grep index =仅获取列表文件lynx --dump“ youtube.com/playlist?list=PLGwhw5SI2xoYKHyzQDj1y2I8vURgm8yd2 ” | awk'/ http / {print $ 2}'| uniq | grep index =
talsibony

0

我一直在使用下面的代码

youtube-dl -cit https://www.youtube.com/playlist?list=PL55RiY5tL51pIQNcOLDjnaQJYuj_GjVSz

即使更新后,我也遇到类似的错误。因此,我使用了“ -citv”而不是“ -cit”,它可以正常工作。

youtube-dl -cit https://www.youtube.com/playlist?list=PL55RiY5tL51pIQNcOLDjnaQJYuj_GjVSz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.