YouTube Watch Later 管理ツール (yt-watch-later-tools)

Tool

概要

yt-watch-later-toolsは、YouTubeのWatch Laterプレイリストを効率的に整理するための軽量なUserscriptです。主な機能は「逆順での削除(古い追加順から削除)」と「Watch Laterのエクスポート(JSON)」で、ブラウザ上から簡単に実行できます。YouTubeのSPA的なUIに対応するため、DOMの変化を監視してUIに操作用のボタンやエクスポート機能を差し込み、プレイリスト削除の自動化やバックアップ取得を手助けします。TampermonkeyやGreasemonkeyで手早く導入でき、外部依存が少ない単一のuserscriptファイルとして配布されています。

GitHub

リポジトリの統計情報

  • スター数: 6
  • フォーク数: 0
  • ウォッチャー数: 6
  • コミット数: 4
  • ファイル数: 7
  • メインの言語: JavaScript

主な特徴

  • 古い追加順から順に削除:Watch Laterに溜まった古参の動画を先に排除して「最大サイズ超過」を回避
  • プレイリストのJSONエクスポート:タイトル、ID、サムネイルなどを含むデータをダウンロード
  • Tampermonkey対応の単一Userscript:導入が簡単で外部ライブラリ依存が少ない
  • YouTubeの動的UI(SPA)に対応する設計:DOM変化を検知して操作UIを注入

技術的なポイント

このUserscriptは、YouTubeのWebクライアントが持つSPA(シングルページアプリ)特性に対応する点が技術的な肝です。YouTubeはページ遷移を伴わない動的なDOM再構築を行うため、従来の静的セレクタだけでは操作が続きません。そこで本スクリプトはMutationObserverや周期的なポーリングでDOMの変化を監視し、プレイリストアイテム(例:ytd-playlist-video-renderer相当)を検出してUI上にボタンを挿入します。

削除処理は基本的にブラウザ上での操作(該当アイテムのメニューを開き「削除」操作をトリガー)を自動化するか、YouTubeが内部で利用しているデータ構造(ページに埋め込まれたytInitialDataやAPIレスポンス)を参照して動画IDを特定し、順序に基づいて削除リクエストを送る形が考えられます。逆順削除の実現方法としては、「追加日時」メタデータが利用できればそれに基づくソート、そうでなければ画面に表示されているアイテムの並び(DOM順)を逆順に処理することで古い順を優先します。

エクスポート機能は、プレイリスト要素からタイトル・動画ID・チャンネル名・サムネイルURL・追加日時などを抽出し、配列オブジェクトをJSON.stringifyで整形してダウンロードリンクを生成するのが一般的です。Userscriptという性質上、外部依存を避けるためにブラウザのネイティブAPI(Blob、URL.createObjectURL、fetchなど)とシンプルなDOM操作で完結させています。

注意点としては、YouTube側のUIや内部データ構造の変更に弱いこと、連続で操作を投げる際のレート制限やUIの反応待ちが必要なこと、そしてユーザー操作の自動化がYouTubeの利用規約やアカウントセキュリティに与える影響を理解して使用する必要がある点です。メンテナンスは比較的シンプルな分、YouTubeの更新に合わせた小まめな修正が必要になります。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github: dir
  • .gitignore: file
  • README.md: file
  • docs: dir
  • package.json: file

…他 2 ファイル

(注)主となるUserscriptファイルは yt-watch-later-tools.user.js として配布され、ドキュメントやインストール用の生ファイルがリポジトリに含まれています。

まとめ

YouTubeのWatch Laterをシンプルに整理・バックアップできる、導入の敷居が低い実用的なUserscriptです。

リポジトリ情報:

READMEの抜粋:

yt-watch-later-tools

Install Userscript

Userscript to help manage your YouTube Watch Later playlist.

  • Remove videos in reverse add order: oldest added gets removed first
  • Export your Watch Later list to JSON

Userscript file: yt-watch-later-tools.user.js

Quick install…