YouTube Playlist Saver 設計書

このドキュメントは、YouTube のプレイリストに含まれる動画 ID を記録・管理するユーザースクリプトの設計を定義します。

1. プロジェクトの目的

youtube-playlist-saver.user.js を作成し、YouTube プレイリスト内の動画情報を効率的に収集・可視化することを目的とします。

開発リソース

2. 動作対象ページ

URL の list パラメータにプレイリスト ID が含まれるページを対象とします。

3. ユーザースクリプトの機能

3.1 動画 ID の収集

3.2 永続データストレージ

3.3 既知動画のインジケーター表示

3.4 ステータスパネル

3.5 API機能 (開発者向け)

3.6 補助機能の分離

4. データ構造とバージョニング

将来的な機能拡張(最終発見日時の記録など)に備え、保存データの形式をバージョニング管理しています。

4.1 旧データ形式 (バージョン表記なし)

初期実装で採用されていた形式です。プレイリスト ID をキーとし、動画 ID の配列を値に持つ単純なマッピング構造です。

{
  "PL_ExampleId1": ["videoId1", "videoId2"],
  "PL_ExampleId2": ["videoId3"]
}

4.2 バージョン 1

データ全体をラッパーオブジェクトで包み、version プロパティと playlists プロパティを導入しました。

{
  "version": 1,
  "playlists": {
    "PL_ExampleId1": ["videoId1", "videoId2"],
    "PL_ExampleId2": ["videoId3"]
  }
}

4.3 バージョン 2 (現在)

各動画IDに対してメタデータ(タイトル、チャンネル名、追加日時)を保持するオブジェクト構造へ変更されました。

{
  "version": 2,
  "playlists": {
    "PL_ExampleId1": {
        "videoId1": { "title": "video title", "channel": "channel name", "addedAt": 1234567890 }
    }
}

4.4 JSONスキーマ

エクスポートされるデータの正確な形式定義は、data-format/data-format-v2.schema.json に記載されています。 このスキーマはバリデーションや他のツールとのデータ交換に使用できます。

5. プロジェクト管理

5.1 バージョン管理

5.2 現在バージョン

0.2.51

5.3 メタデータ定義

6. データインポート機能

外部サーバー(主にGist)にバックアップされたJSONデータ、またはローカルファイルからデータを取り込み、統合します。

7. データエクスポート機能

保存されているすべてのプレイリストのデータを、クリップボードへのコピーまたはファイルとしてエクスポートします。

更新履歴

Install
v0.2.54