Загрузите весь канал YouTube с помощью youtube-dl и автоматически возобновите его в случае прерывания

Загрузите весь канал YouTube с помощью youtube-dl и автоматически возобновите его в случае прерывания

Я скачиваю целый канал YouTube, состоящий примерно из 10 000 видео. Иногда загрузка останавливается из-за ошибок типа "контент слишком короткий" или "подключение прервано". Однако есть ли способ автоматически перезапустить загрузку? Вероятно, есть пакетный файл, который вы можете сделать, но я не знаю, как это сделать.

Вот команда, которую я использую для загрузки:

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, вы можете установить последнюю версию youtube-dl локально внутри виртуальной среды Python или загрузить последнюю версию youtube-dl и установить ее глобально.

В Ubuntu 14.04 и более поздних версиях youtube-dl также является пакетом snap. Чтобы установить его, введите:

sudo snap install 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 продолжить загрузку независимо от любых ошибок. Используйте с осторожностью, так как универсальное решение, подобное этому, может вызвать проблемы, если вы пропустите важную ошибку, хотя с каналом с 10 тыс. видео вы, вероятно, не будете возражать, если несколько из них не загрузятся должным образом.

Кроме того, используя

--download-archive archive.log

будет отслеживать то, что уже загружено, и пропускать видео, которые у вас уже есть, поэтому, если скрипт остановится из-за чего-то вроде сбоя питания, при повторном запуске он не будет пытаться загрузить все заново с самого начала.

решение4

Полезный скрипт:архиватор_каналов_youtube

Связанный контент