请教下 Youtube 特殊列表,如何批量下下来?

2016-09-06 22:48:00 +08:00
 kn007

https://www.youtube.com/watch?v=t5747BhezKM&list=RDt5747BhezKM

youtube-dl 只能找到 42 个视频,缺了好多,或许是我不会用???

3485 次点击
所在节点    问与答
22 条回复
cxbig
2016-09-06 23:01:34 +08:00
如果你直接用它下载整个列表,通常遇到卡壳、中间有视频变无效就会断掉,我一般是写个脚本抓每个视频的 key ,然后 10 个并行分头下载。
kn007
2016-09-06 23:14:45 +08:00
@cxbig 哦,谢谢。

能分享下吗?
cxbig
2016-09-06 23:16:23 +08:00
@kn007 个人代码库来着,很多关联,不急的话这 2 天整理一个干净的放 gist 。
kn007
2016-09-06 23:17:53 +08:00
@cxbig 不急,谢谢了。让你麻烦了。
cxbig
2016-09-06 23:29:36 +08:00
@kn007 其实我是自己瞎折腾,图简单有个参数的:
-i, --ignore-errors Continue on download errors, for example to skip unavailable videos in a playlist
可以跳过错误继续执行,不知道够不够你用
kn007
2016-09-06 23:33:21 +08:00
@cxbig 我用过没用,就读到 42 个视频,太囧了
GPU
2016-09-07 08:33:41 +08:00
但是你给的链接只有 18 个视频啊。
GPU
2016-09-07 08:41:06 +08:00
看错了, 哪个 18 是我的稍后观看的列表。
kn007
2016-09-07 18:07:51 +08:00
@GPU 不知啊,是 50+啊。。像一些正常列表,可能会有 196 ,那个完整表单都能下下来,就这种后面带“+”号的。。。憋屈
cxbig
2016-09-20 23:28:38 +08:00
@kn007 不好意思久等,给你准备的这个简易版遇到点小问题,已提交 bug 到 youtube-dl
https://gist.github.com/cxbig/9be30a906b4f3ad810b564003d14e36c
kn007
2016-09-20 23:30:20 +08:00
@cxbig 谢谢,我回头看看,不过我这个不是 playlist 实际上。。没 playlist id 的,你可以看看
cxbig
2016-09-20 23:40:30 +08:00
@kn007 你可以用我的 loop ,输入一个视频 ID 的列表即可。
kn007
2016-09-20 23:49:32 +08:00
@cxbig 好的,谢谢
wget 后执行,返回 line 10: syntax error near unexpected token `do',我看下没存在特殊换行符啊。。囧
kn007
2016-09-20 23:56:46 +08:00
@cxbig 看来我需要 mac2unix ,我去找找
cxbig
2016-09-21 00:11:58 +08:00
@kn007 奇怪,我这里 wget raw file 没有问题啊, iterm2+zsh 。
kn007
2016-09-21 00:15:35 +08:00
@cxbig centos with zsh ,现在也不行。
话说 youtube-dl -F 'https://www.youtube.com/playlist?list=RDt5747BhezKM'
不能获取全部列表,固定 42 个。。。
cxbig
2016-09-21 03:02:49 +08:00
@kn007 这个好像是你的私有列表,我这里看不到
1. 试试 --playlist-end NUMBER ,不要用默认的 last ,指定最后一个视频的 index
2. 试试 --playlist-items 1-最后的 index
我找个大 list 试试,不行想个办法上分页
kn007
2016-09-21 08:17:02 +08:00
@cxbig 试了没用之前,这个列表不是我的,别人分享的。。。
cxbig
2016-09-21 08:49:44 +08:00
@kn007 这都不行?我刚试过 2 个 60+的列表,很顺畅。

如果太过特殊
从 html 里正则抽所有视频的?v=key
然后定义 local list=(key1 key2 key3...)
循环用 for item in ${list[@]}; do ... done
cxbig
2016-09-21 08:57:31 +08:00
@kn007 另外你上面提到的 line 10: syntax error near unexpected token 可能是 foreach 的问题,换成 for 应该能解决

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/304426

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX