V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kn007
V2EX  ›  问与答

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

  •  
  •   kn007 · 2016-09-06 22:48:00 +08:00 · 3481 次点击
    这是一个创建于 2993 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    利用 html 大法,抓到 265 条音乐。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2707 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:01 · PVG 19:01 · LAX 03:01 · JFK 06:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.