下载播放列表中从批次开始到批次结束的 YouTube 视频

下载播放列表中从批次开始到批次结束的 YouTube 视频

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&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA
注意该部分&index=141

现在如果做这样的事情:

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

注意该部分&index=${i}

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

任何帮助都将不胜感激。谢谢。

答案1

播放列表

youtube-dl -f FORMAT -ciw --output '%(title)s.%(ext)s' --playlist-start NUMBER-START --playlist-end NUMBER-END <url-of-playlist>  

...其中<url-of-playlist>被替换为播放列表的 URL,可替换FORMAT为任何可用的视频格式,例如18NUMBER-START播放列表中首先开始下载的视频的编号,NUMBER-END是播放列表中最后下载的视频的编号。

渠道

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

解释

-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   

-w, --no-overwrites
    do not overwrite files 

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

youtube-dl -f FORMAT -ciw --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.

相关内容