Завантажуючи список відтворення на YouTube за допомогою youtube-dl, пропускаючи наявні файли


22

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

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

і, хоч я встановив, що він не перезаписується, він перезавантажує все з нуля. Чи можливо це?


навіть якщо він повторно завантажується, він зазвичай пропускає запис файлу за замовчуванням навіть без цього набору параметрів
mchid

Добре, якщо я зберігаю завантажене відео разом із файлом mp3, функція пропускання працює належним чином. Не зовсім те, що мені потрібно, але це нормально.
Воїн

Відповіді:


45

З можливістю --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

1
Цінна відповідь тут. Це вирішує мою проблему. Дякую тобі.
Воїн

Що -cwixтут?
бтео

2
-cwixє коротшою альтернативою--continue --no-overwrites --ignore-errors --extract-audio
Мартін Торнтон

1
Варто згадати, що, хоча це ідеально підходить для YouTube, youtube-dl також працює з іншими сайтами (наприклад, Soundcloud), де -xваріант, здається, порушує вихід. Ви можете безпечно зняти цей прапор, якщо ви завантажуєте з аудіо джерела.
Крістіанбунді

2

Це справді корисно. Якщо це комусь корисно, я змінив код, щоб створити наявний список завантажень, щоб включити всі файли в папку. Корисно, якщо ви завантажуєте аудіо за допомогою --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

Я впевнений, що більшість людей могли це розробити для себе, але далеко не всі чіпляються за грамотні сценарії.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.