
공개 YouTube 재생 목록을 mp3 파일로 로컬 폴더에 동기화된 상태로 유지할 수 있습니까?
주요 특징:
- 새 비디오가 재생 목록에 추가되면 mp3 파일을 로컬 폴더에 추가하십시오.
- 해당 비디오가 재생 목록에서 제거되면 로컬 폴더에 있는 mp3 파일을 삭제합니다.
답변1
다음 중 하나를 사용할 수 있습니다.이것당신이 원하는 것을 정확하게 수행하는 것처럼 보이는 GitHub 저장소. 또는 youtube-dl의 매뉴얼 페이지에서 볼 수 있듯이
일반을 사용할 수 있습니다 . 단, 동영상이 제거되지는 않습니다.youtube-dl
--download-archive
재생목록에서 새 동영상만 다운로드하려면 어떻게 해야 하나요?
다운로드 아카이브 기능을 사용하세요. 이 기능을 사용하면 처음에
--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"
답변2
이것은 직접적인 답변보다 해결 방법에 가깝지만, 가끔 이전 재생 목록 파일 중 일부를 다시 다운로드해도 괜찮다면 cronjob을 설정하여 find
.
재생 목록을 검토하고 파일이 사라지기 전에 일반적으로 재생 목록에 남아 있는 기간을 추정하고 해당 일수를 변수에 사용해야 합니다. 제 예에서는 30일을 선택했습니다.
다음은 cron이 @daily 작업으로 실행되는 Bash 스크립트의 예입니다.
#! /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이 해당 파일을 다시 다운로드합니다. 이것은 최적은 아니지만 충분할 수 있습니다.