Как сохранить список воспроизведения YouTube в локальной папке в виде mp3-файлов?

Можно ли синхронизировать общедоступный плейлист YouTube с локальной папкой в ​​виде mp3-файлов?

Основные характеристики:

  • Добавить mp3-файл в локальную папку, если новое видео добавлено в список воспроизведения
  • Удалить mp3-файл в локальной папке, если соответствующее видео удалено из плейлиста
2
задан 25 September 2015 в 23:16

2 ответа

Можно или использовать этот GitHub repo, который, кажется, делает точно, что Вы хотите.
Или можно использовать плоскость youtube-dl с --download-archive, как замечено в странице справочника YouTube-dl, хотя это не удалит видео:

, Как я загружаю только новые видео с плей-листа?
Используют функцию архива загрузки. С этой функцией необходимо первоначально загрузить полный плей-лист --download-archive path/to/download/archive/file.txt, который запишет идентификаторы всех видео в специальном файле. Каждое последующее выполнение с тем же --download-archive загрузит только новые видео и пропустит все видео, которые были загружены прежде. Обратите внимание, что только успешные загрузки зарегистрированы в файле.
, Например, сначала,
youtube-dl --download-archive archive.txt "https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re"
загрузит полный плей-лист PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re и создаст файл archive.txt. Каждое последующее выполнение только загрузит новые видео если таковые имеются:
youtube-dl --download-archive archive.txt "https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re"

0
ответ дан 1 October 2019 в 11:07

Это - больше обходного решения, чем прямой ответ, но если Вы соглашаетесь со случайной перезагрузкой некоторых более старых файлов плей-листа, можно настроить cronjob, чтобы найти и удалить файлы в целевом использовании каталога find.

Необходимо рассмотреть плей-лист и оценить, сколько времени файлы обычно остаются на нем перед исчезновением и используют то количество дней для переменной. Здесь в моем примере я выбрал 30 дней.

Вот сценарий Bash в качестве примера для крона для выполнения как @daily задание:

#! /bin/bash

# Delete all files in a directory older than 30 days
# (careful, this is recursive and will delete files in subdirectories)
find /PATH/TO/youtube-dl-playlist-files -mtime +30 -delete

Будут удалены любые файлы все еще на плей-листе, но более старый, чем 30 дней, и youtube-dl повторно загрузит их, когда Вы выполните его затем. Это не оптимально, но это может быть достаточно хорошо.

0
ответ дан 2 December 2019 в 23:57

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

Похожие вопросы: