Youtube - 下载播放列表 - youtube-dl

时间:2018-01-24 12:21:40

标签: youtube youtube-dl

我正在尝试从playlist下载所有视频:

我正在使用youtube-dl,命令是:

youtube-dl -citk –format mp4 –yes-playlist https://www.youtube.com/watch?v=7Vy8970q0Xc&list=PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2

但这只会下载第一个视频。不确定我做错了什么。

8 个答案:

答案 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播放列表视频,该目录按播放列表中的视频顺序索引

$ youtube-dl -o '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s'  https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re

下载YouTube频道/用户的所有播放列表,并将每个播放列表保存在单独的目录中:

$ 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