yt-dlp-kai
- Digital0 JPY


# yt-dlp-kai v1.1.0 yt-dlp の GUI ラッパー。動画/音声を Tkinter ベースのダーク UI から手軽にダウンロードできる。 --- ## 必要なもの - Python 3.10 以上(Tkinter 同梱版) - `yt-dlp.exe` … 同じフォルダに配置(or PATH 上) - `ffmpeg.exe` … 同じフォルダに配置(フォーマット変換・マージ用) - `Node.js` … インストール推奨(JSランタイムとして使用、YouTubeのSignature解決に必要) `yt-dlp.exe` と `ffmpeg.exe` を `yt-dlp-kai.py` と同じフォルダに置けば動く。 --- ## フォルダ構成 ``` yt-dlp-kai/ ├── yt-dlp-kai.py ← 本体 ├── yt-dlp-kai.vbs ← Windows 用ランチャー(黒い窓を出さずに起動) ├── yt-dlp.exe ← 別途用意 ├── ffmpeg.exe ← 別途用意 ├── cookies.txt ← 任意(Bot対策用、後述) ├── config.ini ← 起動後に自動生成(設定保存) └── yt-dlp-kai-error.log ← 起動エラー時のみ生成 ``` --- ## 起動方法 ### Windows - `yt-dlp-kai.vbs` をダブルクリック(推奨:黒い窓が出ない) - もしくは `python yt-dlp-kai.py` ### macOS / Linux - `python3 yt-dlp-kai.py` --- ## 基本の使い方 1. URL を YouTube などからコピー 2. アプリ内で `Ctrl+V` で貼り付け → キューに追加される 3. 必要に応じて Format / Quality を切り替え 4. `Start Download` をクリック 複数 URL をまとめて貼り付けても OK(改行区切り or `https://` 区切り)。 --- ## Format / Quality | Format | Quality 候補 | 用途 | |--------|--------------|------| | mp4 | Best / 1080p / 720p / 480p / 360p | 動画 | | webm | 同上 | 動画(VP9/AV1) | | opus | best / 320k / 192k / 128k / 96k | 音声(Opus) | | mp3 | best / 320k / 256k / 192k / 128k / 96k | 音声 | | m4a | best / 256k / 192k / 128k | 音声(AAC) | Quality は 📶 アイコン横のプルダウンメニューから選択する。キュー追加後でも、各行の Format / Quality 列をクリックすれば変更可能。 親プレイリスト行で変更すると配下の全動画に一括反映される。 --- ## プレイリストモード 右上の `📋 Playlist` ボタンを ON にしてから URL を貼り付けると、プレイリスト全体を展開してキューに追加する。 - プレイリストの動画は折りたたみ可能なツリー表示にまとまる - ダウンロード時はプレイリスト名の **サブフォルダ** に保存される - 例:`~/Downloads/typing tube 譜面/動画A.mp4` - 親行の `✕` で配下の動画ごと一括削除 ### YouTube Mix について `youtu.be/xxx?list=RDxxx` のような **Mix リスト**(YouTube が自動生成するミックス)は、内容が動的に変わるためプレイリストとして展開できない。 Mix が検出された場合は **動画単体** としてキューに追加される。 --- ## Settings | 項目 | 説明 | |------|------| | 保存先 | ダウンロード先のフォルダ | | ファイル名 | yt-dlp テンプレート(例:`%(title)s`) | | テキスト情報埋め込み | タイトル・作者・説明等を ID3 / メタデータに書き込む | | サムネ埋め込み | サムネ画像/アルバムアートをファイル内に埋め込む | | チャプター埋め込み | YouTube のチャプター情報を埋め込む | | プレイリスト番号付け | プレイリスト内動画に `01_`, `02_` を付与 | | Cookie ブラウザ | Bot対策用。ログイン済みブラウザのCookieを使用(Firefox推奨) | | cookies.txt を使う | 同フォルダの `cookies.txt` を使用(ブラウザCookieより優先) | | JS ランタイム | Signature解決に使用(Node.js推奨) | 設定変更は **自動保存**(`config.ini` に書き込まれる)。 ### ボタン - `🔄 yt-dlp を更新` … `yt-dlp -U` を実行 - `↺ デフォルトに戻す` … 全設定を初期値に戻す(要確認) --- ## YouTubeのBot対策への対応 2025年以降、YouTubeはBot対策を強化しており、Cookieなし・JSランタイムなしだとタイトル取得やダウンロードが失敗する場合がある。以下の設定を行うこと。 ### 方法A:ブラウザCookieを使う(推奨) **Firefoxが最も安定している。** 1. Firefox をインストールして YouTube に Google アカウントでログイン 2. Settings の「Cookie ブラウザ」で **Firefox** を選択 3. Settings の「JS ランタイム」で **node** を選択(Node.js が必要) > **Chrome について** > Chrome 127 以降はApp-Bound Encryptionという新しい暗号化が導入されており、現状 yt-dlp から直接Cookieを読み取れない。Chrome が使いたい場合は方法Bを使うこと。 ### 方法B:cookies.txt を使う 1. Chrome に拡張機能「**Get cookies.txt LOCALLY**」をインストール `https://chromewebstore.google.com/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc` 2. YouTube を開いてログインした状態で拡張機能から **Export** 3. ダウンロードしたファイルを **`cookies.txt`** にリネームして `yt-dlp.exe` と同じフォルダに配置 4. Settings の「cookies.txt を使う」にチェック 5. Settings の「JS ランタイム」で **node** を選択 > cookies.txt は Googleアカウントのパスワード変更やログアウトで無効になる。その場合は再エクスポートが必要。 --- ## ファイル名テンプレート `%(title)s` 形式で yt-dlp の出力テンプレートをそのまま使える。よく使うもの: | プレースホルダ | 内容 | |----------------|------| | `%(title)s` | 動画タイトル | | `%(id)s` | 動画 ID | | `%(uploader)s` | 投稿者名 | | `%(upload_date)s` | 投稿日(YYYYMMDD) | | `%(channel)s` | チャンネル名 | 組み合わせ例:`%(uploader)s - %(title)s` → `TypingTube - 月詠み『花と散る』.mp4` --- ## サムネイル列について 各行の `Thumbnail` 列のチェックボックスを ON にすると、その動画のサムネ画像を **別ファイル** として保存する(`動画タイトル.jpg`)。 Settings の `サムネ埋め込み` が ON の場合は、そちらが優先されて Thumbnail 列のチェックは無視される。 --- ## トラブルシューティング ### 起動しない 同じフォルダに `yt-dlp-kai-error.log` があれば、その内容を確認。 無ければコマンドプロンプトから `python yt-dlp-kai.py` で起動するとエラーが見える。 ### `yt-dlp.exe が見つからない` 系のエラー `yt-dlp.exe` を `yt-dlp-kai.py` と同じフォルダに置くか、PATH を通す。 ### タイトルが取得できない / ダウンロードが失敗する YouTube の Bot対策によるもの。「YouTubeのBot対策への対応」セクションを参照。 ### `Could not copy Chrome cookie database` エラー Chrome のCookie暗号化(App-Bound Encryption)により読み取れない。Firefox または cookies.txt を使うこと。 ### `Signature solving failed` 警告 JSランタイムがない。Node.js をインストールして Settings の「JS ランタイム」で **node** を選択。 ### config.ini を初期化したい ファイルを削除すれば次回起動時にデフォルト値で再生成される。 もしくは Settings の `↺ デフォルトに戻す` を押す。 --- ## config.ini の中身(参考) ```ini [General] save_dir = C:\Users\you\Downloads filename = %(title)s format = mp4 quality = Best embed_text = false embed_thumbnail = false embed_chapters = false playlist_index = false cookie_browser = firefox use_cookies_file = false js_runtime = node ``` 手動で編集してもよい。次回起動時に読み込まれる。 --- ## exe 化(Windows) PyInstaller を使って単一の `.exe` ファイルにビルドできる。 ### 手順 1. フォルダ内でアドレスバーに `cmd` と入力して Enter 2. 以下のコマンドを実行: ``` python -m PyInstaller --onefile --windowed --icon=icon.ico --name=yt-dlp-kai yt-dlp-kai.py ``` 3. 完了後、`dist` フォルダ内に `yt-dlp-kai.exe` が生成される 4. `yt-dlp-kai.exe` を取り出して `yt-dlp.exe` / `ffmpeg.exe` と同じフォルダに置く > `pyinstaller` コマンドが認識されない場合は `python -m PyInstaller` を使うこと。 ### 必要なファイル(ビルド前に同じフォルダに置く) | ファイル | 用途 | |----------|------| | `yt-dlp-kai.py` | 本体 | | `icon.ico` | exe のアイコン | --- ## ショートカット - `Ctrl+V` … クリップボードの URL をキューに追加(Download タブで動作) --- ## 更新履歴 ### v1.1.0 - Quality 選択をボタン群からプルダウンメニューに変更 - Quality ラベルを 📶 アイコンに変更 - YouTube のタイトル取得を高速化(oEmbed API を優先使用、失敗時は yt-dlp にフォールバック) ### v1.0.0 - 初版リリース --- ## ライセンス 私的利用のみ。yt-dlp / ffmpeg はそれぞれのライセンスに従う。

