![youtube-dl | 在相应目录中下载播放列表](https://linux22.com/image/1471646/youtube-dl%20%7C%20%E5%9C%A8%E7%9B%B8%E5%BA%94%E7%9B%AE%E5%BD%95%E4%B8%AD%E4%B8%8B%E8%BD%BD%E6%92%AD%E6%94%BE%E5%88%97%E8%A1%A8.png)
我正在使用 Ubuntu 14.04 和 youtube-dl 下载视频。如何下载相应目录中的视频?
例如播放列表名称为:MyPlaylist,其中包含多个视频
我如何下载目录中的视频: MyPlaylist/index_title.ext
答案1
你检查过文档? 特别是-o, --output
选项。使用该选项,您应该能够执行以下操作:
youtube-dl -o '/home/me/%(playlist_title)s/%(playlist_index)s_%(title)s.%(ext)s'
也就是说,对于使用该程序制作的任何视频,请务必尊重所有者的权利。
答案2
请参阅输出模板示例。https://github.com/ytdl-org/youtube-dl/blob/master/README.md#output-template-examples
# Download YouTube playlist videos in separate directory indexed by video order in a playlist
$ youtube-dl -o '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re
# Download all playlists of YouTube channel/user keeping each playlist in separate directory:
$ youtube-dl -o '%(uploader)s/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' https://www.youtube.com/user/TheLinuxFoundation/playlists
我的例子。
youtube-dl -ci -o "~/dl.folder/%(playlist_title)s/%(title)s-%(id)s.%(ext)s" --write-sub --convert-subs srt -k --download-archive archive.txt --proxy socks5://127.0.0.1:1080/ https://www.youtube.com/channel/UCzBGtBze1AIcDmRwD2ZjiAA
-o, --output TEMPLATE 输出文件名模板,查看“输出模板”获取所有信息
~
-c, --continue 强制恢复部分下载的文件。默认情况下,youtube-dl 将在可能的情况下恢复下载。
~
-i, --ignore-errors 出现下载错误时继续,例如跳过播放列表中不可用的视频
~
--download-archive FILE 仅下载存档文件中未列出的视频。其中记录所有下载视频的ID。
~
--proxy URL 使用指定的 HTTP/HTTPS/SOCKS 代理。要启用 SOCKS 代理,请指定适当的方案。例如 socks5://127.0.0.1:1080/。传入空字符串 (--proxy "") 可直接连接
~
--write-sub 写入字幕文件
~
-k, --keep-video 后期处理后将视频文件保留在磁盘上;默认情况下视频会被删除
~
--convert-subs FORMAT 将字幕转换为其他格式(目前支持:srt|ass|vtt|lrc)
參考文獻:
https://ytdl-org.github.io/youtube-dl/index.html
https://github.com/ytdl-org/youtube-dl/blob/master/README.md
https://github.com/ytdl-org/youtube-dl/blob/master/README.md#output-template
youtube-dl——帮助(youtube-dl --version 2019.08.13)
答案3
我想通过在文件中添加播放列表链接来更新答案。然后将每个播放列表下载到其各自的文件夹中。
youtube-dl -f best -o '%(playlist_title)s/%(playlist_index)s_%(title)s.%(ext)s' -a list_of_playlist_links.txt
这将为每个播放列表创建一个文件夹并下载播放列表。播放列表将保存在文件 list_of_playlist_links.txt 的同一目录中