如何將 YouTube 播放清單作為 mp3 檔案同步到本機資料夾?

如何將 YouTube 播放清單作為 mp3 檔案同步到本機資料夾?

是否可以將公共 YouTube 播放清單作為 mp3 檔案同步到本機資料夾?

主要特點:

  • 如果新影片新增至播放列表,則將 mp3 檔案新增至本機資料夾
  • 如果從播放清單中刪除了相應的視頻,則刪除本地資料夾中的 mp3 文件

答案1

您可以使用GitHub 儲存庫,它似乎完全符合您的要求。
或者您可以使用 plain youtube-dlwith --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"

答案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 將在您下次執行時重新下載它們。這不是最佳的,但可能已經足夠好了。

相關內容