YouTube 재생 목록을 mp3 파일로 로컬 폴더에 동기화하는 방법은 무엇입니까?

YouTube 재생 목록을 mp3 파일로 로컬 폴더에 동기화하는 방법은 무엇입니까?

공개 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이 해당 파일을 다시 다운로드합니다. 이것은 최적은 아니지만 충분할 수 있습니다.

관련 정보