kn007
V2EX  ›  问与答

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

  •  
  •   kn007 · Sep 6, 2016 · 4096 views
    This topic created in 3560 days ago, the information mentioned may be changed or developed.

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

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

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

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

    如果太过特殊
    从 html 里正则抽所有视频的?v=key
    然后定义 local list=(key1 key2 key3...)
    循环用 for item in ${list[@]}; do ... done
    cxbig
        20
    cxbig  
       Sep 21, 2016
    @kn007 另外你上面提到的 line 10: syntax error near unexpected token 可能是 foreach 的问题,换成 for 应该能解决
    kn007
        21
    kn007  
    OP
       Sep 21, 2016
    @cxbig 嗯,好的,我回头试试,谢谢
    kn007
        22
    kn007  
    OP
       Oct 1, 2016
    @cxbig 换成 for 正常。

    利用 html 大法,抓到 265 条音乐。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2743 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 11:36 · PVG 19:36 · LAX 04:36 · JFK 07:36
    ♥ Do have faith in what you're doing.