我正在尝试从playlist下载所有视频:
我正在使用youtube-dl,命令是:
youtube-dl -citk –format mp4 –yes-playlist https://www.youtube.com/watch?v=7Vy8970q0Xc&list=PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2
但这只会下载第一个视频。不确定我做错了什么。
答案 0 :(得分:42)
在一个shell中,&
是一个特殊的角色,建议shell启动所有内容到&作为后台进程。要避免此行为,您可以将URL放在引号中。有关详细信息,请参阅youtube-dl FAQ。
还要注意-citk
。除-i
外,这些选项毫无意义。有关详细信息,请参阅youtube-dl FAQ。即使-f mp4
看起来也很奇怪。
所以你想要的是:
youtube-dl -i -f mp4 --yes-playlist 'https://www.youtube.com/watch?v=7Vy8970q0Xc&list=PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2'
或者,您只需使用播放列表ID:
youtube-dl -i PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2
答案 1 :(得分:6)
多次尝试解决此问题后,我找到了最佳解决方案。
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}
答案 2 :(得分:2)
$ 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 Playlist video to start at (default is 1) --playlist-end NUMBER Playlist video to end at (default is last) --playlist-items ITEM_SPEC Playlist video items to download. Specify indices of the videos in the playlist separated by commas like: "--playlist-items 1,2,5,8" if you want to download videos indexed 1, 2, 5, 8 in the playlist. You can specify range: "--playlist-items 1-3,7,10-13", it will download the videos at index 1, 2, 3, 7, 10, 11, 12 and 13.
答案 3 :(得分:2)
您的链接不是播放列表。
正确的播放列表网址如下所示:
^[0-9_,]+
您的URL只是某个播放列表 OF 的第一个视频。它包含Regex.IsMatch(line, @"^[0-9_,]+$")
而不是https://www.youtube.com/playlist?list=PLHSdFJ8BDqEyvUUzm6R0HxawSWniP2c9K
。
通过点击视频列表右侧的播放列表标题来选择播放列表,并使用此URL。
答案 4 :(得分:1)
youtube-dl <playlist link>
youtube-dl -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' <playlist link>
<块引用>
如果 1080p 可用,此命令将下载 1080p 分辨率的视频,否则它将下载次佳(小于 1080p)分辨率。在这里,您可以使用 480 或 720 等代替 1080。
注意:确保安装了‘FFmpeg’,否则视频和音频不会合并。
youtube-dl -o "[%(upload_date)s] %(title)s.%(ext)s" -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' <playlist link>
youtube-dl -o "[%(upload_date)s] %(title)s [%(uploader)s].%(ext)s" -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' <playlist link>
<块引用>
youtube-dl --write-auto-sub -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' <playlist link>
youtube-dl --write-sub -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' <playlist link>
youtube-dl --write-sub --sub-lang en -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' <playlist link>
答案 5 :(得分:0)
从网址中删除v=...&
部分,并仅保留list=...
部分。主要问题是由shell解释的特殊字符&
。
您也可以在命令中引用“url”。
此处提供更多信息(例如):
https://askubuntu.com/questions/564567/how-to-download-playlist-from-youtube-dl
答案 6 :(得分:0)
我已经尝试了以上所有方法,但是没有一个可以解决我的问题。我通过更新youtube-dl的旧版本以下载播放列表来解决此问题。 要更新
sudo youtube-dl -U
或
youtube-dl -U
使用上述命令成功更新后
youtube-dl -cit https://www.youtube.com/playlist?list=PLttJ4RON7sleuL8wDpxbKHbSJ7BH4vvCk
答案 7 :(得分:0)
最简单的方法是创建一个file.txt
文件并传递链接URL链接,这样:
https://www.youtube.com/watch?v=5Lj1BF0Kn8c&list=PL9YFoJnn53xyf9GNZrtiraspAIKc80s1i
确保在终端中包含-a
参数:
youtube-dl -a file.txt