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

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

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...