Скачивание плейлиста youtube с помощью youtube-dl, пропуск существующих файлов

Мне было интересно, можно ли было загрузить плейлист YouTube в формате mp3, используя youtube-dl, пропуская уже существующие файлы. Я использую эту команду:

youtube-dl --continue --ignore-errors --no-overwrites --extract-audio --audio-format mp3 --output "%(title)s.%(ext)s" [path here]

и, хотя я установил его, чтобы не перезаписывать, он действительно перезагружает все с нуля. Это возможно?

2 ответа

Решение

С возможностью --download-archive FILE youtube-dl читает и добавляет в список файлов, чтобы не загружать снова. Каждый раз, когда файл успешно загружен, этот идентификатор видео добавляется в FILE,

Вы можете использовать его следующим образом:

youtube-dl --download-archive downloaded.txt --no-post-overwrites -ciwx --audio-format mp3 -o "%(title)s.%(ext)s" [path here]

Он будет перезагружать любые видео, которые вы не сохраняли в последний раз, так как создает список. Теперь вы можете удалить их.

Если ваши файлы MP3 были названы с форматом по умолчанию %(title)s-%(id)s.%(ext)s, вы могли бы избежать повторной загрузки, создав downloaded.txt с YouTube %(id)s в терминале bash:

for n in *.mp3
do if [[ "$n" =~ -[-_0-9a-zA-Z]{11}.mp3$ ]]
   then echo "youtube ${n: -15: 11}" >> downloaded.txt
   fi
done

Это действительно полезно. Если это кому-нибудь пригодится, я изменил код, чтобы создать существующий список загрузок, чтобы включить все файлы в папке. Полезно, если загрузка аудио с --extract-audio а также --audio-quality "best" флаги

for n in *.*
do if [[ "$n" =~ -[-_0-9a-zA-Z]{11}.*$ ]]
   then echo "youtube ${n: -15: 11}" >> downloaded.txt
   fi
done

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

Другие вопросы по тегам