📹

【新年度の大掃除】YouTube「後で見る」を自動削除するツールを作りました

に公開

YouTube中毒のtkb77です。
YouTubeに依存するあまり、YouTubeの「後で見る」に登録した動画が制限の5000件になってしまいました。
後でどう考えても見れない量のリストになってしまったので、新年度の心機一転ということで、「後で見る」の整理に取り組みました。

「後で見る」、実はAPIで触れません

手動で数千件の動画を後で見るから削除するのはあまりにも苦痛すぎるため、YouTube Data APIで一括削除しようと思いましたが、APIの仕様上、「後で見る」はAPIから操作できないようです。。

そのため、Google Takeoutで「後で見る」のリストをCSVファイルでダウンロードしつつ、そのCSVファイルに記載された動画をスクレイピングで削除することにしました。

作成したツール

🛠️ YouTube Watch Later Deletion Tool

主な機能

  • Google TakeoutからエクスポートしたCSVファイルを使用して、指定した日付以前の動画を削除します。
  • Playwrightを使用してブラウザを操作し、YouTubeの操作を自動化します。
  • 「後で見る」追加後に以下の状態になった動画はスキップします
    • 規約違反で削除された動画
    • 非公開設定となった動画
    • メンバーシップ限定に指定された動画

必要条件

  • Google Chrome
  • Python 3.13以上
  • uv

インストール

  1. 必要なPythonライブラリをインストールします。
    uv install
    
  2. Playwrightで使用するChromiumをインストールします。
    uv run playwright install
    

使用方法

  1. Google TakeoutからCSVを準備する
    • Google Takeoutにアクセスします。
    • 「YouTubeとYouTube Music」のみを選択し、「再生リスト」のみをエクスポートします。
    • ダウンロードしたZIPファイルを解凍し、Watch later の動画.csvを取得します。
  2. delete_watch_later.pyの以下の変数を設定
    • CSV_FILE : 上記でダウンロードしたWatch later の動画.csvのパス
    • REMOVE_WATCH_LATER_AFTER_DATE : 指定日以前に追加した「後で見る」動画を削除(形式: YYYY-MM-DD)
    • USER_DATA_DIR : 自分のChromeプロファイルディレクトリに設定
  3. スクリプトを実行する
    • delete_watch_later.pyを実行します。
    uv run python delete_watch_later.py
    
    Chromiumが自動で起動するので、Youtubeにログインして、Enterを押す
    • スクリプトは、指定した日付以前の動画を「後で見る」リストから削除します。

注意事項

  • 以下の状態になった動画は手動で削除する必要があります(Webブラウザ上で、「後で見る」の「視聴できない動画も表示」でリストに表示可能)
    • 規約違反で削除された動画
    • 非公開設定となった動画
    • メンバーシップ限定に指定された動画
  • このスクリプトによってYoutubeへ大量のアクセスを行う可能性があります。
  • 大量のアクセスの結果、Youtubeから規制等された場合の責任は一切負いません

最後に

このツールのお陰で、5000件で全くメンテできない「後で見る」が700件ほどに減らせました。
PlayWrightを初めて使いましたが、簡単にChromiumの環境を構築でき、スクレイピング自体の実装も簡単にできたので、とてもいいツールだと思いました。
今後のインターネットライフを快適にするために、今後も活用したいと思います。

参考

  • 同様に「後で見る」を削除されている方の記事
    https://zenn.dev/utanutan5/articles/032a333e48866b
    自分はシンプルに指定した日付以前のリストを削除したかったのと、セレクタの指定にAgentQLという無料だと50回しか利用できないAPIを使用されていたため、自作した

Discussion