wva*_*aal 19 bash shell cut download youtube-dl
我正在尝试编写一个bash脚本,它将从播放列表中下载所有YouTube视频,并根据youtube视频本身的标题将它们保存为特定的文件名.到目前为止,我有两个独立的代码片段,可以完成我想要的但我不知道如何将它们组合在一起作为一个单元.
这段代码可以找到给定页面上所有YouTube视频的标题:
curl -s "$1" | grep '<span class="title video-title "' | cut -d\> -f2 | cut -d\< -f1
Run Code Online (Sandbox Code Playgroud)
这段代码将文件下载到youtube视频ID给出的文件名(例如,youtube.com/watch?v = CsBVaJelurE&feature = relmfu 提供的文件名为CsBVaJelurE.flv)
curl -s "$1" | grep "watch?" | cut -d\" -f4| while read video;
do youtube-dl "http://www.youtube.com$video";
done
Run Code Online (Sandbox Code Playgroud)
我想要一个脚本,将youtube .flv文件输出到由视频标题(在本例中为BASH课程2.flv)给出的文件名,而不仅仅是视频ID名称.在此先感谢所有的帮助.
wva*_*aal 24
好的,经过进一步研究和更新我的youtube-dl版本后,事实证明这个功能现在直接构建到程序中,无需使用shell脚本来解决youtube上的播放列表下载问题.完整的文档可以在这里找到:(http://rg3.github.com/youtube-dl/documentation.html),但我原来问题的简单解决方案如下:
1)youtube-dl将自动处理播放列表链接,无需单独提供其中包含的视频的URL(这样就无需使用grep搜索"watch?"来查找唯一的视频ID
2)现在有一个选项可以使用各种选项格式化文件名,包括:
此输出选项的语法如下(其中NAME是上面显示的任何选项):
youtube-dl -o '%(NAME)s' http://www.youtube.com/your_video_or_playlist_url
Run Code Online (Sandbox Code Playgroud)
作为示例,要回答我原来的问题,语法如下:
youtube-dl -o '%(title)s.%(ext)s' http://www.youtube.com/playlist?list=PL2284887FAE36E6D8&feature=plcp
Run Code Online (Sandbox Code Playgroud)
再次感谢那些回复我的问题的人,非常感谢您的帮助.
| 归档时间: |
|
| 查看次数: |
26462 次 |
| 最近记录: |