我正在尝试从播放列表下载所有视频:
我为此使用youtube-dl,命令为:
youtube-dl -citk –format mp4 –yes-playlist https://www.youtube.com/watch?v=7Vy8970q0Xc&list=PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2
但这只会下载第一个视频。不知道我在做什么错。
Answers:
在外壳程序中,&
是一个特殊字符,建议外壳程序在后台启动直到&的所有过程。为避免这种情况,可以将URL放在引号中。有关更多信息,请参见youtube-dl常见问题解答。
也要当心-citk
。除了之外-i
,这些选项没有什么意义。有关更多信息,请参见youtube-dl常见问题解答。甚至-f mp4
看起来很奇怪。
因此,您想要的是:
youtube-dl -i -f mp4 --yes-playlist 'https://www.youtube.com/watch?v=7Vy8970q0Xc&list=PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2'
另外,您也可以使用播放列表ID:
youtube-dl -i PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2
-v
选项时,请不要忘记包含输出,因为这对于确定问题出在哪里至关重要。youtube-dl -i PLD07B2225BB40E582
对我来说很好。
--no-check-certificate
$ youtube-dl -o '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re
$ youtube-dl -o '%(uploader)s/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' https://www.youtube.com/user/TheLinuxFoundation/playlists
youtube-dl是一个命令行程序,可以从YouTube.com和其他一些网站下载视频。它需要2.6、2.7或3.2+版本的Python解释器,并且它不是特定于平台的。它应该可以在您的Unix机器,Windows或macOS上运行。它已发布到公共领域,这意味着您可以随意修改,重新分发或使用它。
$ youtube-dl [OPTIONS] URL [URL...]
--playlist-start开始播放NUMBER个播放列表视频(默认为1) --playlist-end NUMBER个播放列表视频结尾(默认为最后一个) --playlist-items ITEM_SPEC要下载的播放列表视频项目。指定 播放列表中视频的索引 以逗号分隔,例如:“-播放列表项 1,2,5,8“如果您要下载视频 在播放列表中索引为1、2、5、8。您可以 指定范围:“-播放列表项 1-3,7,10-13“,它将下载视频 在索引1、2、3、7、10、11、12和13。
我已经尝试了以上所有方法,但是没有一个可以解决我的问题。我通过更新youtube-dl的旧版本以下载播放列表来解决此问题。更新它
sudo youtube-dl -U
要么
youtube-dl -U
使用上述命令成功更新后
youtube-dl -cit https://www.youtube.com/playlist?list=PLttJ4RON7sleuL8wDpxbKHbSJ7BH4vvCk
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
和 sudo chmod a+rx /usr/local/bin/youtube-dl
经过多次尝试,我找到了最佳解决方案。
youtube-dl --ignore-errors --format bestaudio --extract-audio --audio-format mp3 --audio-quality 160K --output "%(title)s.%(ext)s" --yes-playlist https://www.youtube.com/playlist?list={your-youtube-playlist-id}
v=...&
从网址中删除该部分,仅保留该list=...
部分。主要问题是特殊字符&
,由shell解释。
您还可以在命令中引用“ url”。
这里有更多信息(例如):