当我尝试从 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.
答案1
我确实遇到了这个问题......试试这个方法......
删除旧版本的 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
看看这个关联更多细节。
希望这对你有帮助。
答案2
使用 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
答案3
我尝试下载您问题中的播放列表,但收到与您相同的错误消息。我没有更新 youtube-dl(它本来就运行良好),而是转到您的播放列表网页,复制 URL 并从终端运行以下命令:
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 占一行。之后,我可以按照以下说明使用单个命令下载所有视频。
创建一个批处理文件,该文件是一个文本文件,其中包含您要下载的 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
从终端运行:
youtube-dl -ct --simulate --batch-file='/path/to/batch-file.txt'
这是基本命令,但是您还需要添加要下载的视频格式,否则您可能会发现自己下载的视频格式不是您想要的。因此,首先模拟下载,看看您想要的格式是否可用:
youtube-dl -ct -f 34 --simulate 'http://www.youtube.com/some-alphanumeric-string'
如果视频格式不可用,您将收到一条错误消息:
requested format not available
。如果视频格式可用,则使用该选项时不会收到任何错误消息--simulate
。您还可以添加选项-F
以查看所有有效格式,如下所示:youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'
在上面的命令中,我使用了常见的 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
在最后一条命令中添加选项,所以这条命令会被真正执行。
答案4
我一直在使用下面的代码
youtube-dl -cit https://www.youtube.com/playlist?list=PL55RiY5tL51pIQNcOLDjnaQJYuj_GjVSz
更新后,我仍遇到类似错误。因此,我使用“-citv”代替“-cit”,结果成功了。
youtube-dl -cit https://www.youtube.com/playlist?list=PL55RiY5tL51pIQNcOLDjnaQJYuj_GjVSz