Можно ли синхронизировать общедоступный плейлист YouTube с локальной папкой в виде mp3-файлов?
Основные характеристики:
Можно или использовать этот 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"
Это - больше обходного решения, чем прямой ответ, но если Вы соглашаетесь со случайной перезагрузкой некоторых более старых файлов плей-листа, можно настроить 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 повторно загрузит их, когда Вы выполните его затем. Это не оптимально, но это может быть достаточно хорошо.