我正在尝试写一个bash脚本,它将从播放列表中下载所有的YouTube视频,并将它们保存到基于YouTube视频本身的标题的特定文件名.到目前为止,我有两个独立的代码,做我想要的,但我不知道如何组合在一起作为一个单位.
curl -s "$1" | grep '<span class="title video-title "' | cut -d\> -f2 | cut -d\< -f1
并且这段代码将文件下载到YouTube视频ID所提供的文件名(例如,由youtube.com/watch?v=CsBVaJelurE\u0026amp;feature=relmfu提供的文件名将为CsBVaJelurE.flv)
curl -s "$1" | grep "watch?" | cut -d\" -f4| while read video; do youtube-dl "http://www.youtube.com$video"; done
我想要一个脚本,将youtube .flv文件输出到由视频标题(本例中为BASH课程2.flv)而不是简单的视频编号名称所给出的文件名.提前感谢所有的帮助.
好的,在进一步研究和更新我的版本的youtube-dl之后,事实证明,这个功能现在直接构建到程序中,否定了需要一个shell脚本来解决youtube上的播放列表下载问题.完整的文档可以在这里找到:(
http://rg3.github.com/youtube-dl/documentation.html),但是我的原始问题的简单解决方案如下:
1)youtube-dl将自动处理播放列表链接,不需要单独提供其中包含的视频的URL(这不需要使用grep来搜索“观看”?来查找唯一的视频ID
> id:序列将被视频标识符替换.
> url:序列将被视频URL替换.
> uploader:该序列将被上传视频的人的昵称所代替.
> upload_date:序列将以YYYYMMDD格式的上传日期替换.
>标题:序列将替换为文字视频标题.
>拼接:序列将被简化的视频标题所取代,
限于字母数字字符和破折号.
> ext:序列将替换为相应的扩展名(如
flv或mp4).
> epoch:创建时,序列将被Unix的时代所取代
文件.
> autonumber:该序列将替换为一个五位数字
随着每次下载,将从零开始增加.
youtube-dl -o '%(NAME)s' http://www.youtube.com/your_video_or_playlist_url
例如,为了回答我原来的问题,语法如下:
youtube-dl -o '%(stitle)s.%(ext)s' http://www.youtube.com/playlist?list=PL2284887FAE36E6D8&feature=plcp
再次感谢那些回复我的问题的人,你的帮助非常感谢.