Answers:
您需要的相关选项:
# Filesystem
--write-annotations
--write-description
--write-info-json
# Thumbnail images
--write-all-thumbnails
# Video format
--format bestvideo+bestaudio/best
--merge-output-format mkv
# Subtitle
--all-subs
--write-auto-sub
--write-sub
# Post-processing
--add-metadata
--embed-subs
将其复制到您的配置文件(/etc/youtube-dl.conf
或~/.config/youtube-dl/config
)。
使用该配置,我下载了该视频并youtube-dl
编写了以下文件:
$ ls
The Problem with Time & Timezones - Computerphile.annotations.xml
The Problem with Time & Timezones - Computerphile.description
The Problem with Time & Timezones - Computerphile.info.json
The Problem with Time & Timezones - Computerphile.jpg
The Problem with Time & Timezones - Computerphile.mkv
我无法mediainfo
在此处发布输出,因为它超出了字符数限制,但是您可以在github中看到它。
我还想以尽可能高的质量下载视频/音频,而又不损失质量。
youtube-dl
默认情况下,系统会以最高质量下载视频,但您可以使用强制这种行为--format bestvideo+bestaudio/best
。
即使不是YouTube,我也确实想下载自己购买的一些udemy课程,以便在长途旅行中可以观看它们。
请阅读文章我可以将课程下载到我的计算机吗?:
默认情况下,无法从计算机下载完整课程。我们出于对盗版的关注而这样做。
请注意,您始终可以保存课程,以在Udemy移动应用程序上进行离线查看。有关如何将视频讲座下载到iOS移动设备的信息,请单击此处。有关如何下载视频以在Android设备上离线观看的步骤,请单击此处。
我已经
ffmpeg
安装了,听说您要从YouTube进行无损下载需要此文件,但是我不确定如何将其与链接youtube-dl
。
youtube-dl
avconv
默认使用,但--prefer-ffmpeg
您可以ffmpeg
改用。无论如何,“ 无损下载 ” 不需要此选项。在我提供的示例中,youtube-dl
仅用于ffmpeg
将所有下载的格式合并为一个mkv文件。
youtube-dl
吗?
youtube-dl [youtube-link]
?
youtube-dl
如果--youtube-skip-dash-manifest
不存在该选项,则无法下载某些视频。刚刚删除了该选项,谢谢您告诉我。
要简单地下载视频,您可以使用以下方法:
youtube-dl --all-subs "https://www.youtube.com/watch?v=KYBok-XGsKM"
要选择视频质量,首先应使用-F选项列出可用的格式。
youtube-dl -F "https://www.youtube.com/watch?v=KYBok-XGsKM"
这是您的视频的输出:
[youtube] KYBok-XGsKM: Downloading webpage
[youtube] KYBok-XGsKM: Downloading video info webpage
[youtube] KYBok-XGsKM: Extracting video information
WARNING: unable to extract uploader nickname
[info] Available formats for KYBok-XGsKM:
format code extension resolution note
249 webm audio only DASH audio 52k , opus @ 50k, 4.19MiB
250 webm audio only DASH audio 75k , opus @ 70k, 5.42MiB
140 m4a audio only DASH audio 129k , m4a_dash container, mp4a.40.2@128k, 10.59MiB
171 webm audio only DASH audio 131k , vorbis@128k, 7.66MiB
251 webm audio only DASH audio 135k , opus @160k, 9.58MiB
278 webm 256x144 144p 98k , webm container, vp9, 30fps, video only, 6.59MiB
160 mp4 256x144 144p 114k , avc1.4d400c, 15fps, video only, 9.04MiB
242 webm 426x240 240p 205k , vp9, 30fps, video only, 11.47MiB
133 mp4 426x240 240p 265k , avc1.4d4015, 30fps, video only, 20.11MiB
243 webm 640x360 360p 362k , vp9, 30fps, video only, 21.93MiB
134 mp4 640x360 360p 602k , avc1.4d401e, 30fps, video only, 20.42MiB
244 webm 854x480 480p 662k , vp9, 30fps, video only, 37.82MiB
135 mp4 854x480 480p 1020k , avc1.4d401f, 30fps, video only, 42.62MiB
247 webm 1280x720 720p 1353k , vp9, 30fps, video only, 81.53MiB
136 mp4 1280x720 720p 2013k , avc1.4d401f, 30fps, video only, 84.69MiB
137 mp4 1920x1080 1080p 2438k , avc1.640028, 30fps, video only, 157.71MiB
248 webm 1920x1080 1080p 2593k , vp9, 30fps, video only, 162.48MiB
264 mp4 2560x1440 1440p 6973k , avc1.640032, 30fps, video only, 459.58MiB
271 webm 2560x1440 1440p 7523k , vp9, 30fps, video only, 485.66MiB
313 webm 3840x2160 2160p 19991k , vp9, 30fps, video only, 1.34GiB
36 3gp 320x? small , mp4v.20.3, mp4a.40.2
17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k
43 webm 640x360 medium , vp8.0, vorbis@128k
18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k
22 mp4 1280x720 hd720 , avc1.64001F, mp4a.40.2@192k (best)
以下是字幕的一些有用选项:
--write-sub
Write subtitle file
--write-auto-sub
Write automatically generated subtitle file (YouTube only)
--all-subs
Download all the available subtitles of the video
--list-subs
List all available subtitles for the video
对于缩略图:
--write-thumbnail
Write thumbnail image to disk
--write-all-thumbnails
Write all thumbnail image formats to disk
--list-thumbnails
Simulate and list all available thumbnail formats
您还可以在此处找到有关视频质量的更多信息
youtube-dl
默认情况下使用最佳的可用视频和音频格式。如果要覆盖配置文件中的其他设置,则可以使用-f bestvideo+bestaudio/best
(与默认设置相同)或忽略配置文件(--ignore-config
)。
youtube-dl https://www.youtube.com/watch?v=KYBok-XGsKM
注意:我将使用较长的开关名称以避免混淆。使用的许多开关版本较短。请参阅文档:选项。
注意:
-为了视觉方便\
,用于单独显示开关;全部\
可以省略;如果使用\
确保后面没有空格\
。
概要: 一个ytdl命令,用于下载具有最高可用视频和音频质量的单个视频文件。将视频保存到自己的目录(由您指定)中。下载所有可用的元数据,将每个元数据写入各自的文件格式,然后保存在同一目录中。将视频元数据添加到视频输出文件。
用您自己的代替:
/archive/videos/TED_Archive/
的开关--download-archive
,并--output
与您选择的目录路径。====
youtube-dl \
--limit-rate '0.25M' \
--retries '3' \
--no-overwrites \
--call-home \
--write-info-json \
--write-description \
--write-thumbnail \
--all-subs \
--convert-subs 'srt' \
--write-annotations \
--add-metadata \
--embed-subs \
--download-archive '/archive/videos/TED_Archive/TED_Archive.ytdlarchive' \
--format 'bestvideo+bestaudio/best' \
--merge-output-format 'mkv' \
--output '/archive/videos/TED_Archive/%(upload_date)s_%(id)s/TED_Archive_%(upload_date)s_%(id)s_%(title)s.%(ext)s' \
'https://www.youtube.com/watch?v=0bFs6ZiynSU' ;
注意:' '
为了安全起见,将所有自变量括起来。
推荐开关的
说明:
--limit-rate '0.25M'
用于限制每个youtube-dl实例的可用最大下载速度,以B / s(每秒字节数)为单位。
参数:任何带大写单位后缀的正整数。
单位后缀: K代表千字节;M代表兆字节;不清楚是否支持技嘉。
补充:
1.避免互联网连接阻塞。
2.在管理多个并发ytdl实例的下载速度时很有帮助。
遗漏:
1.阻塞互联网;无法浏览,落后于youtube视频播放。
2.将尽快下载视频。
注意:您可以同时运行多个youtube-dl实例。
--retries '5'
用于在失败后自动重试视频下载。在下载播放列表或整个频道(用Youtube来说,也是该特定频道的播放列表)时很有用。
值:选择任何正整数。默认值为10
。最大为infinite
(输入为文字字符串)。
--continue
参数:无
添加:
1.将强制恢复部分文件的
下载版本
注意: ytdl以块的形式下载视频;如果ytdl在下载过程中意外终止,则保留大块。
省略:
1.默认情况下,ytdl将尽可能恢复下载。
--no-overwrites
参数:无
增加:会不会覆盖现有的具有相同名称的元数据文件。
忽略:将覆盖具有相同名称的现有元数据文件,但不会覆盖视频文件。
--call-home
用于联系ytdl服务器进行调试。
“如果您的服务器具有多个IP,或者您怀疑审查制度,则添加--call-home可能是获取更多诊断信息的好主意。” – 文档:错误,检索到20180408,
--write-info-json
参数:无
输出格式: json;
信息内容:观看次数,点赞次数,上传日期,视频和音频质量信息等(但不包括视频文字描述(由上传者在视频下方发布(2018 youtube布局)))
补充:将视频元数据写入单独的.info.json
文件中。与视频文件保存在同一文件夹中。
省略:不会影响--add-metadata
哪个仍会将视频元数据写入视频输出文件。
--write-description
参数:无
输出格式:纯文本;
添加:将视频上传者在视频说明部分(视频下方(2018 youtube布局)下方)发布的文本写入单独的Write .description
文件。与视频文件保存在同一文件夹中。
--write-thumbnail
将可用的最高分辨率缩略图(称为maxresdefault.jpg
youtube)写入.jpg
文件。根据使用指定的模板重命名--output
。与视频文件保存在同一目录中。
参数:无
输出格式:仅JPEG;
注:使用youtube-dl --list-thumbnails '<video_url>'
调查一个特定的视频的缩略图提供(不上的播放列表的链接不工作); 例如:youtube-dl --list-thumbnails 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--write-annotations
将视频注释写入.annotations.xml
文件。根据使用指定的模板重命名--output
。与视频文件保存在同一目录中。
参数:无
输出格式: .xml;
--all-subs
写入所有自定义创建可用字幕的视频,以他们各自的文件(例如:subtitles.en.vtt
,subtitles.fr.vtt
,subtitles.es.vtt
)
参数:无
输出格式:默认.vtt
; 可以用--sub-format
错误消息指定其他格式: 如果没有可用的字幕,则警告消息将打印到标准输出-格式:WARNING: video doesn't have subtitles
注:使用youtube-dl --list-subs '<video_url>'
调查一个特定的视频的缩略图提供(不上的播放列表的链接不工作);
例如:youtube-dl --list-subs 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--convert-subs 'srt'
参数:字符串:格式扩展名ass,srt或best
输出格式:默认.vtt; 或根据规范
添加:将字幕写成指定的文件格式(例如:).srt
。与视频文件保存在同一文件夹中。
省略:字幕将写为.vtt
错误消息:如果没有可用的字幕,则将INFO消息打印为stdout-格式:[ffmpeg] There aren't any subtitles to convert
注意:下载后,转换将作为.vtt
文件的后处理步骤执行。如果ytdl执行意外终止,则某些字幕文件可能不会转换(在这种情况下,再次执行命令)。
--add-metadata
参数:无
行为:将元数据写入视频输出文件。
注意:不需要由.info.json
生成--write-info-json
--embed-subs
参数:无
行为:
1.将字幕写入视频输出文件;
2.仅针对MP4,WEBM和MKV影片
错误消息: 如果没有可用的字幕一个INFO消息将被打印到stdout -格式:[ffmpeg] There aren't any subtitles to embed
注意:并不需要.vtt
所产生--write-sub
,
--write-auto-sub
或--all-sub
--download-archive '<archive_path>/<channel_name>/<channel_name>.ytdlarchive'
行为:用于创建一个文本文件,其中包含以前下载的视频的链接。下载整个频道时,可以跳过这些视频。仅下载单个视频时不需要。
参数: String:视频档案路径的组合,以频道命名的目录。文件名由带有.ytdlarchive
文件扩展名的通道名称组成。(也可以是.txt;但采用独特的格式可以轻松区分)
输出格式:纯文本;每行一个videoID
添加:
1. ytdl读取此文件,忽略并跳过其中包含其videoID的所有视频,即使尚未下载也是如此。
如果存在视频文件和元数据文件,则ytdl将再次下载它们。
2.自动将最后下载的视频的videoID添加到此文件中
。
--format ''
参数:推荐字符串:bestvideo+bestaudio/best
以确保最高的视频和音频质量组合。
另外:完全控制视频质量和音频质量及其组合以及后备质量
省略:默认youtube-dl will guess it for you by default
- 文档
注意:请参阅文档:格式选择示例
--merge-output-format '<video_format>'
参数:视频文件格式。(例如:mp4,mkv,3gp等)
添加:可以指定视频文件格式
省略:默认youtube-dl will guess it for you by default
– 文档
注意:请参阅文档:格式选择
注:使用youtube-dl --list-formats '<video_url>'
调查提供的视频和音频质量和特定的视频格式(不上的播放列表的链接不工作);
例如:youtube-dl --list-formats 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--output '<template>'
参数:
1.视频文件格式。(例如:mp4,mkv,3gp等);
2.推荐:%(upload_date)s_%(id)s_%(title)s.%(ext)s
添加:影响视频文件和所有元数据文件的文件命名约定。
省略:默认情况下,视频标题为文件名。默认模板:%(id)s.%(ext)s
将输出ex .:testvideo.mkv
注意:不要忘记%
前缀和s
后缀(也存在其他后缀)。_
模板元素之间的thee 只是一个分隔符,可以是任何其他char。例如:%(upload_date)s-%(id)s
注意:请参阅文档:输出模板
'<video_url>'
参数:字符串:特定视频的URL
错误消息:
1.如果未提交任何视频URL,则ytdl将不会执行并显示帮助。
2.如果提交的视频网址无效,则会将错误消息打印为标准输出-格式:ERROR: u'' is not a valid URL. Set --default-search "ytsearch" (or run youtube-dl "ytsearch:" ) to search YouTube
存储建议:
misc
在您的视频档案中创建目录,并将所有单个视频存储在其中。
当您从某个频道下载一个或多个视频时,请为该频道创建一个专用目录。在这种情况下,通道名称为TED Archive
,目录名称为TED_Archive
。(我抢先用下划线替换所有空格字符,以便在使用bash(或python)脚本时更轻松地进行目录导航和文件I / O操作)。
回复您的评论@leetbacoon
想知道,如果1440p可用,为什么1080p副本被认为是最好的呢?为什么显示2160p?该选项没有出现在我的末端(上限为1440p)– leetbacoon
来自文档
You can also use a file extension (currently 3gp, aac, flv, m4a, mp3, mp4, ogg, wav, webm are supported) to download the best quality format of a particular file extension served as a single file
best: Select the best quality format represented by a single file with video and audio.
bestvideo: Select the best quality video-only format
我认为,当您选择just best
并指定一种输出格式时,youtube会发送该格式,它认为这是该格式的最佳视频和音频组合。这可能会受到某些YouTube内部平衡决策(推测)的影响。
根据我的使用经验,我必须专门指定bestvideo+bestaudio
分别获得最高质量的视频和音频,然后将它们组合到.mkv容器中。
/best
可以肯定的是,我将其用作后备参数。