Скачивание плейлиста 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-скриптингом.