Answers:
如果所有视频都在同一播放列表或同一频道中,则可以使用以下快捷方式节省时间。
youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-playlist>
...其中的<url-of-playlist>
位置被播放列表的网址替换FORMAT
,并替换为任何可用的视频格式,例如18
。您可以使用该-F
选项查看所有有效格式,如下所示:
youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'
youtube-dl -f FORMAT -ci --playlist-start NUMBER --playlist-end NUMBER <url-of-playlist>
...其中的位置<url-of-playlist>
被替换为播放列表的URL,替换FORMAT
为任何可用的视频格式(例如)18
,并且NUMBER
是开始/结束下载的播放列表中的视频编号。
youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>
... where <url-of-channel>
替换为频道的URL,并替换FORMAT
为任何可用的视频格式,例如18
。
首先创建一个批处理文件,该文件是一个文本文件,其中包含要下载的YouTube视频的URL列表。这些URL应该安排在一个列表中,该列表中只有一个URL,而每一行都没有其他内容,并且列表中的每个URL都有一个新行。用易于记忆的名称保存批处理文件,例如batch-file.txt。如果多个文件全部位于YouTube的同一播放列表,频道或用户网页上,则可以通过运行以下命令来生成带有列表的文本文件,该列表包含该页面上的所有链接:
sudo apt install jq
youtube-dl -j --flat-playlist "https://<yourYoutubeWebpage>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > batch-file.txt
从终端运行:
youtube-dl -ct --simulate --batch-file='/path/to/batch-file.txt'
这是基本命令,但是您还需要添加要下载的视频的格式,否则您可能会发现自己下载了不需要的格式的视频。因此,首先模拟您的下载以查看所需格式是否可用:
youtube-dl -ct -f 34 --simulate 'http://www.youtube.com/some-alphanumeric-string'
如果视频格式不可用,您将收到一条错误消息:requested format not available
。如果视频格式可用,则使用该--simulate
选项时不会出现任何错误消息。您还可以添加-F选项以查看所有有效格式,如下所示:
youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'
在第三个命令中,我使用了常见的flv 360p视频格式:
-f 34
。您可能更喜欢使用尝试flv 480p视频格式-f 35
。因此,在将所需的视频格式添加到命令后,该命令将变成如下所示:
youtube-dl -ciw -o "%(title)s.%(ext)s" --batch-file='/path/to/batch-file.txt'
笔记:
我没有--simulate
在最后一个命令中添加该选项,因此该命令将真正执行。
您可以将网址一个接一个地放在网址之间。Youtube-dl将顺序下载它们。这比制作批处理文件要简单一些。
注意--help说
youtube-dl --help
Usage: youtube-dl [options] url [url...]
输入样例:
youtube-dl http://www.youtube.com/watch?v=fqULJBBEVQE http://www.youtube.com/watch?v=vDbbz-BdyYc http://www.youtube.com/watch?v=OrIFaWJ9Glo
样本输出:
[youtube] Setting language
[youtube] fqULJBBEVQE: Downloading video webpage
[youtube] fqULJBBEVQE: Downloading video info webpage
[youtube] fqULJBBEVQE: Extracting video information
[download] Destination: Web Components - A Tectonic Shift for Web Development - Google I_O 2013-fqULJBBEVQE.mp4
[download] 100% of 238.14MiB in 36:54
[youtube] vDbbz-BdyYc: Downloading video webpage
[youtube] vDbbz-BdyYc: Downloading video info webpage
[youtube] vDbbz-BdyYc: Extracting video information
[download] Paul Irish on Web Application Development Workflow-vDbbz-BdyYc.mp4 has already been downloaded
[youtube] OrIFaWJ9Glo: Downloading video webpage
[youtube] OrIFaWJ9Glo: Downloading video info webpage
[youtube] OrIFaWJ9Glo: Extracting video information
[download] Got server HTTP error. Retrying (attempt 1 of 20)...
[download] Destination: Single Page Web Applications - JavaScript End-to-End (The Hard Stuff)-OrIFaWJ9Glo.mp4
[download] 100% of 553.10MiB in 42:17
第1步:转到您的桌面,制作一个名为list
(或任何其他名称)的文本文档。如果您要下载文件,则将URL复制并粘贴到文件中,每行一个URL
步骤2:打开终端并转到桌面
cd Desktop
第3步:下载列表中的文件,键入(list
如果您将文件命名为其他名称,则相应替换)
youtube-dl -a list
下载YouTube 频道
运行此命令
youtube-dl -citk -format mp4 -yes-playlist VIDEO_PLAYLIST_LINK
-c
恢复部分下载的文件-i
忽略任何错误。-t
使用视频标题作为文件名。-k
后处理完成后,将视频保留在磁盘上。 --format mp4
将视频文件另存为MP4文件。--yes-playlist
确认后面的URL指向视频播放列表。-citk
会产生误导,并可能导致错误。-c
强制恢复,即使没有太大意义。默认值已经继续。-i
可能还可以,但请注意,您可能会错过某些视频的错误。-t
已为默认值,已弃用。-k
毫无意义-f mp4
。有关更多详细信息,请参见youtube-dl常见问题解答。
最直接的解决方案是制作一个bash脚本,像这样
#!/bin/bash
terminal=`tty`
exec < ~/Documents/youtubevideolinks.txt
while read -r line
do
cd ~/Desktop/TilakDa/
youtube-dl -f 18 "$line"
done
exec < "$terminal"
只需将视频链接复制并粘贴到documents文件夹中该txt文件中,并在每个新行中插入每个视频网址,然后运行此脚本
,它将一一下载视频
。默认情况下,该-f 18
选项适用于360p视频