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 日を選択しました。

以下は、@daily ジョブとして実行する cron の 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 を実行したときに再度ダウンロードされます。これは最適ではありませんが、十分かもしれません。

関連情報