youtube-dl,如何在下载失败后恢复下载?

61

我正在使用youtube-dl从Lynda下载视频(我有一个账户)。

在列表中下载了大约40个视频后,我收到了如下错误:

错误:无法下载JSON元数据:HTTP错误403:禁止访问

是否有一种方法可以“重新启动”下载,这样我就不必从头开始了?比如说只告诉它从第41个文件开始下载?

这是我用来下载的命令:

./youtube-dl --cookies cookies.txt --username <myusername> --password <mypassword> --sleep-interval 200 -o "%(autonumber)s - %(title)s.%(ext)s” http://www.lynda.com/C-tutorials/C-Essential-Training/188207-2.html

1
对于其他用户:在我看来,这个答案更好,因为它适用于当您使用自定义命令时,例如仅保留提取的音频文件。https://askubuntu.com/a/709258/438449 - saurabheights
只需再次运行相同的命令即可。这是默认行为。 - Константин Ван
6个回答

100

在下载播放列表时,使用-ciw的组合是很好的。

-i, --ignore-errors    Continue on download errors, for example to skip
                       unavailable videos in a playlist
-w, --no-overwrites    Do not overwrite files
-c, --continue         Force resume of partially downloaded files.
                       By default, youtube-dl will resume downloads if possible.
以下示例下载 YouTube 音乐中前100首热门歌曲。
youtube-dl -ciw --playlist-items 1-100 --extract-audio --audio-format mp3 --restrict-filenames https://www.youtube.com/playlist?list=PLDcnymzs18LWrKzHmzrGH1JzLBqrHi3xQ

Youtube音乐播放列表的实际链接会随时间变化而变化,我猜。你可以前往播放列表并进行复制。检查链接是指向播放列表还是单个视频的一种方法是,播放列表链接中包含“playlist”关键词。


6
“--continue”在哪些情况下会有用?如果默认情况下是在“可能”的情况下继续,那么如果不可能的话,为什么还要强制执行呢?什么情况下会出现不可能的情况? - Sharpiro
1
那对我没用。也许是因为我指定了重新编码文件的选项? - elig
@Sharpiro,几乎每个切换选项都有一个“否定”选项。例如,您可能想覆盖在配置中设置为默认值的“--no-continue”选项。我想,如果使用的服务器节点不支持在任意位置下载并且视频本身没有被分段(在这种情况下,您可以从特定片段开始),则无法继续。 - Jeff Mercado

27

您可以使用以下方式继续下载:

youtube-dl <link_to_video> -c

或者

youtube-dl <link_to_video> --continue

此外,youtube-dl 通常会尽可能地继续下载


2
对我没用,它又重新开始了。我的命令是“youtube-dl -c --extract-audio --audio-format mp3 <playlist Link> -o "%(title)s.%(ext)s"”。 - M. Usman Khan

14

从播放列表下载特定视频 这是Youtube-dl的另一个有用功能。它允许我们从包含数百个视频的播放列表中下载特定的歌曲。

例如,要从播放列表下载第10个文件,请运行:

$ youtube-dl --playlist-items 10 <playlist_url>

同样地,要下载多个随机文件,只需指定播放列表中视频的索引,以逗号分隔,如下所示:

$ youtube-dl --playlist-items 2,3,7,10 <playlist_url>

您还可以指定歌曲范围。要从某个视频,比如第10个视频,开始下载视频播放列表:

$ youtube-dl --playlist-start 10 <playlist_url>

要仅下载播放列表中从第2个到第5个的文件,请使用:

$ youtube-dl --playlist-start 2 --playlist-end 5 <playlist_url>

如果有200个视频的播放列表,并且它在127处卡住了,您应该按照以下相同的顺序使用-ciw来避免在错误期间停止。

 youtube-dl -ciw --playlist-start 127 <then past the playlist link after the 127>

要仅下载视频中的音频,请执行以下操作

youtube-dl -ciw -x --audio-format mp3 --playlist-start 127 <then past the playlist link after the 127>

例如:
youtube-dl -ciw -x --audio-format mp3 --playlist-start 127 https://www.youtube.com/playlist?list=PLjzdNLPsCsPeeO49mvhHP5uyKdYkAbON8

5
您可以使用-c选项恢复视频下载。例如,如果您之前使用以下命令开始了下载:
youtube-dl <some_youtube_URL>

如果下载被停止或中断,您可以使用以下方法稍后恢复下载:

youtube-dl -c <some_youtube_URL>

4

如果您在下载视频时提供了格式,需要使用-c(继续参数)来恢复下载。并且需要使用相同的格式指定-c参数。

我正在下载的视频:

youtube-dl -f best link_to_your_video_here

网络中断后,继续下载同一个视频:

youtube-dl -c -f best link_to_your_video_here

1
不需要使用sudo - Spidy

2
在所有参数后,使用标志[--playlist-start(数字)],然后再输入URL。这将从指定的数字开始下载。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接