使用youtube-dl下载YouTube播放列表仅获首视频的问题排查
解决youtube-dl仅下载播放列表第一个视频的问题
看起来你碰到的问题大概率是命令参数的格式错误,我帮你拆解分析下可能的原因和解决办法:
最可能的问题:参数使用了全角破折号
看你给出的命令:
youtube-dl -citk –format mp4 –yes-playlist https://www.youtube.com/watch?v=7Vy8970q0Xc&list=PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2
这里的–format和–yes-playlist用的是全角破折号(看起来比普通短横线更宽的那个符号),而命令行工具只认半角的短破折号-或者双短破折号--。全角破折号会被当成普通字符,导致--yes-playlist这个核心参数完全没生效——youtube-dl只会把你输入的URL当成单个视频链接,自然只下载第一个视频。
修正后的命令
把全角破折号换成半角的--,同时把URL里的&(HTML转义的&)换成普通的&,或者直接用播放列表的独立URL更稳妥:
# 用视频+播放列表的组合URL youtube-dl -citk --format mp4 --yes-playlist https://www.youtube.com/watch?v=7Vy8970q0Xc&list=PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2 # 更推荐直接用播放列表专属URL,避免歧义(此时--yes-playlist可省略) youtube-dl -citk --format mp4 https://www.youtube.com/playlist?list=PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2
其他可能的原因及解决办法
如果修正参数后还是不行,可以排查下面几点:
- youtube-dl版本过旧:YouTube经常更新接口,旧版本的youtube-dl可能无法正确解析播放列表。执行
youtube-dl -U更新到最新版本(Linux/macOS可能需要加sudo)。另外要注意,youtube-dl已经停止维护了,更推荐用它的活跃分支yt-dlp,命令用法几乎一致,兼容性更强。 - 播放列表有访问限制:如果是私人播放列表、年龄限制内容,需要登录YouTube账号才能下载。可以用
--username和--password参数登录,或者导出浏览器的cookies文件,用--cookies cookies.txt参数导入来绕过限制。 - 网络或代理问题:如果你的网络无法稳定访问YouTube,或者需要代理,加上
--proxy http://your-proxy-address:port参数指定代理。
内容的提问来源于stack exchange,提问作者Dreams




