获取Youtube频道所有视频的观看链接

Modified on: Sun, 10 Jun 2018 02:20:23 +0800

Youtube视频可以单独观看,也可以是播放列表的一部分
例如:
https://www.youtube.com/watch?v=vbsNiOkm0BU
https://www.youtube.com/watch?v= vbsNiOkm0BU& index = 141& list = UUmM7KPLEthAXiPVAgBF6rhA

注意部分vbsNiOkm0BU

问题是要为频道/播放列表的所有视频获取此部分。

动机是下载此频道的所有视频(约3600)。但我没有立即下载youtube-dl取得成功
所以我希望以一堆100个的形式下载它,作为一个例子。

如果我可以进一步提出这个问题,我可以编写一个bash脚本来仅下载播放列表的特定索引吗?

如果您看到以上链接:
https://www.youtube.com/watch?v= vbsNiOkm0BU&安培;指数= 141&安培;列表= UUmM7KPLEthAXiPVAgBF6rhA
注意部分&index=141

现在,如果做这样的事情:

{100..200}中的

for i in {100..200}
do
youtube-dl https://www.youtube.com/watch?v=vbsNiOkm0BU&index=${i}&list=UUmM7KPLEthAXiPVAgBF6rhA
done

注意部分&index=${i}

由于vbsNiOkm0BU,这是一次又一次地下载相同的视频。

对此的任何帮助将不胜感激。谢谢。

最佳答案

播放列表

youtube-dl -f FORMAT -cit --playlist-start NUMBER-START --playlist-end NUMBER-END <url-of-playlist>  

...其中&lt;url-of-playlist&gt;被替换为播放列表的网址,将FORMAT替换为任何可用的视频格式,例如18NUMBER-START是首先开始下载的播放列表中的视频编号,NUMBER-START是该视频中的视频编号播放列表最后下载。

频道

如果某个频道有多个播放列表,请点击第一个播放列表,然后使用上述命令下载所选播放列表中的所有视频。然后对频道中的每个播放列表重复。

解释

-f, --format FORMAT
    video format code. The -F option (capital F) displays all available video  
    formats for a video link. Example: youtube-dl -F <url-of-video>

-c, --continue                   
    force resume of partially downloaded files

-i, --ignore-errors              
    continue on download errors, for example to skip unavailable videos  
    in a channel  

-t, --title
    use title in file name (default) 

将所有视频标题转换为小写

youtube-dl -f FORMAT -ci --output '%(title)s.%(ext)s' --playlist-start NUMBER-START --playlist-end NUMBER-END <url-of-playlist>     
find -type f -exec rename 'y/A-Z/a-z/' {} +

解释

--output '%(title)s.%(ext)s'  
    output file name(s) as the name of the video, followed by a dot character  
    and the video's extension  
find -type f 
    Find all files.
y/source/destination/  
    Transliterate the characters in the pattern space which appear in source   
    to the corresponding character in destination.
作者:,karel

相关问答

添加新评论