使用 youtube-dl 下载整个 YouTube 频道,并在中断时自动恢复

使用 youtube-dl 下载整个 YouTube 频道,并在中断时自动恢复

我正在下载一个包含大约 10,000 个视频的整个 YouTube 频道。有时下载会因“内容太短”或“连接中断”等错误而停止。但是,有没有办法自动重新开始下载?您可能可以制作一个批处理文件,但我不知道如何制作。

这是我用来下载的命令:

youtube-dl -f bestvideo+bestaudio ytuser:(Channel) -o "/Videos/lhs/[%(upload_date)s - %(id)s] %(title)s.%(ext)s" --ffmpeg-location %CD%\ffmpeg\bin

答案1

此答案不适用于旧版本的 youtube-dl。您需要将 youtube-dl 更新到最新版本。如果您的系统上安装了 Python,则可以在 Python 虚拟环境中本地安装最新版本的 youtube-dl,也可以下载最新版本的 youtube-dl 并全局安装。

在 Ubuntu 14.04 及更高版本中,youtube-dl 也是一个 snap 包。要安装它,请输入:

sudo snap 安装 youtube-dl# 使用 snap run youtube-dl 启动它

打开终端并输入:

youtube-dl -f best -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>

...其中,<url-of-channel>替换为频道的 URL。

笔记:如果您要下载大量视频,则应在开始下载之前将目录更改为要保存视频的目录。

解释

-f, --format FORMAT
    video format code. The special name "best" will pick the best quality.

-c, --continue                   
    force resume of partially downloaded files

-i, --ignore-errors              
    continue on download errors, for example to skip unavailable videos in a channel 

-w, --no-overwrites
    do not overwrite files

-v, --verbose
    print various debugging information

答案2

如果您查看 youtube-dl 手册页,您将看到恢复部分下载的选项。

-c, --continue
           Resume partially downloaded files.

手册页关联

答案3

也许这个问题提出的时候,这个论点并不存在,但是使用

--ignore-errors

将导致 youtube-dl 继续下载,无论出现什么错误。请谨慎使用,因为如果您错过重要错误,像这样的万能解决方案可能会导致问题,尽管对于拥有 10k 个视频的频道,您可能不会介意其中少数几个无法正确下载。

此外,使用

--download-archive archive.log

将跟踪已下载的内容并跳过您已经获得的视频,因此如果脚本由于电源故障等原因而停止,当您再次运行它时,它不会尝试从头开始重新下载所有内容。

答案4

一个有用的脚本:youtube_频道_档案

相关内容