微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash – Shell脚本从播放列表中下载youtube文件

我正在尝试写一个bash脚本,它将从播放列表中下载所有的YouTube视频,并将它们保存到基于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

2)现在有一个选项包括用于格式化文件名与各种选项,包括

> id:序列将被视频标识符替换.
> url:序列将被视频URL替换.
> uploader:该序列将被上传视频的人的昵称所代替.
> upload_date:序列将以YYYYMMDD格式的上传日期替换.
>标题:序列将替换为文字视频标题.
>拼接:序列将被简化的视频标题所取代,
限于字母数字字符和破折号.
> ext:序列将替换为相应的扩展名(如
flv或mp4).
> epoch:创建时,序列将被Unix的时代所取代
文件.
> autonumber:该序列将替换为一个五位数字
随着每次下载,将从零开始增加.

输出选项的语法如下(其中NAME是上面显示的任何选项):

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

再次感谢那些回复我的问题的人,你的帮助非常感谢.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐