加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 18:53:24 所属栏目:安全 来源:网络整理
导读:我正在尝试写一个bash脚本,它将从播放列表中下载所有的YouTube视频,并将它们保存到基于YouTube视频本身的标题的特定文件名.到目前为止,我有两个独立的代码,做我想要的,但我不知道如何组合在一起作为一个单位. 这段代码在给定页面上找到所有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=CsBVaJelurEu0026amp;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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读