MeTube は、yt-dlp にブラウザ画面を付けるセルフホスト型プロジェクトだ。価値はかなりわかりやすい。コマンド入力、パラメータ指定、パス管理、トラブルシュートが必要だったダウンロード作業を、Web パネル上で完結できるようにする。
すでに yt-dlp に慣れている人にとって、MeTube は代替品というより、日常利用や複数人での共有に向いた外側のインターフェイスだ。コマンドラインに触れたくない人にとっては、動画ダウンロードを「リンクを貼る、形式を選ぶ、タスクを送信する」という操作にまで下げてくれる。
MeTube が解決しやすいこと
yt-dlp 自体は強力だ。YouTube をはじめ多くの動画サイトに対応し、音声、字幕、サムネイル、プレイリスト、形式選択も扱える。ただし、コマンドラインツールには明確なハードルがある。
- パラメータが多く、よく使う設定は覚えるかスクリプト化する必要がある;
- ダウンロード先、ファイル名、音声・動画形式を間違えやすい;
- 家族やチームに使ってもらう場合、全員にコマンドを覚えてもらうのは難しい;
- チャンネル購読、バッチダウンロード、バックグラウンドキューは Web パネルで管理するほうが向いている。
MeTube は、これらの機能をブラウザに集約する。裏側では引き続き yt-dlp を呼び出し、表側ではタスク送信、キュー管理、品質選択、設定画面を提供する。
3つのダウンロード場面
MeTube のよくある使い方は、3つに分けられる。
1つ目は単一動画のダウンロードだ。リンクを貼り、動画品質または音声のみを選び、タスクを送信する。字幕やカバー用サムネイルなどの追加ファイルも同時に扱える。
2つ目はプレイリストとチャンネルのダウンロードだ。プレイリストやチャンネルのリンクを入力すると、MeTube が項目一覧を取得する。必要なものだけ選んでダウンロードすることも、一括でキューに入れることもできる。講座、ポッドキャスト、公開授業、動画資料のアーカイブに向いている。
3つ目は購読による自動ダウンロードだ。チャンネルやプレイリストを購読すると、MeTube は設定した間隔で新しい内容を確認し、更新があれば自動的にダウンロードキューへ追加する。デフォルトの確認間隔は 60 分で、サーバー負荷や更新頻度に合わせて調整できる。
Docker でのデプロイ
最も簡単なデプロイ方法は Docker だ。
|
|
このコマンドは、コンテナの 8081 ポートをホストへマッピングし、ホスト側のダウンロードディレクトリをコンテナ内の /downloads にマウントする。NAS や自宅サーバーで Docker を使っているなら、docker-compose にして、リバースプロキシ、保存先、権限設定と一緒に管理すると扱いやすい。
yt-dlp のオプション管理
MeTube の yt-dlp オプション管理は3層に分かれている。安定したデフォルト値から一時的な上書きまで、段階的に制御できる。
1層目はグローバル設定だ。YTDL_OPTIONS で全ダウンロードタスクのデフォルト動作を指定できる。JSON ファイルを参照させることもでき、ファイル変更後はコンテナを再起動せずに自動リロードできる。
2層目はプリセットだ。プリセットは名前付きのオプションセットと考えればよい。たとえば「字幕を埋め込む」「SponsorBlock の区間をスキップする」「速度制限をかける」「音声だけ取得する」といった設定を用意できる。ダウンロード時に画面から選択でき、複数のプリセットを組み合わせることもできる。
3層目は単発の上書きだ。一時的な要件がある場合、画面上で JSON の上書きパラメータを入力できる。優先度は最も高い。この機能はデフォルトでは無効で、有効化する前に権限境界を考える必要がある。ユーザーが任意の yt-dlp オプションをコンテナ内に渡せるためだ。
優先順位はシンプルだ。単発の上書きがプリセットより強く、プリセットがグローバル設定より強い。
ファイル名とディレクトリ
MeTube は yt-dlp のファイル名テンプレート機能を継承している。よく使う設定は次の通りだ。
OUTPUT_TEMPLATE:単一動画のファイル名を制御する;OUTPUT_TEMPLATE_PLAYLIST:プレイリストのダウンロードを制御し、通常はリスト名ごとにディレクトリを分ける;OUTPUT_TEMPLATE_CHANNEL:チャンネルのダウンロードを制御し、通常はチャンネル名ごとにディレクトリを分ける;AUDIO_DOWNLOAD_DIR:音声ファイルを指定ディレクトリへ分けて保存する。
ダウンロード量が多い場合は、一時ディレクトリを SSD に置くと、結合やトランスコードが速くなる。tmpfs も使えるが、メモリ上のファイルシステムはレジュームに影響する可能性があるため、短いタスク向きで、長時間の大容量ダウンロードには向きにくい。
MeTube はカスタムディレクトリにも対応する。有効にすると、ダウンロード画面にディレクトリ選択欄が表示され、新しいディレクトリ名を入力すれば作成して保存できる。NAS ユーザーにとっては、毎回パスを手入力するより便利で、ファイルが散らかりにくい。
ブラウザ拡張と外部連携
MeTube は、パネルを開いてリンクを貼るだけのツールではない。Chrome と Firefox の拡張機能があり、動画ページの右クリックメニューから MeTube へ送信できる。iOS ではショートカットを使い、Safari の共有メニューからリンクを送れる。ブックマークレットで任意のページの現在 URL を送ることもできる。
ブラウザ拡張を使う場合は、CORS と HTTPS を適切に処理する必要がある。よくある構成は、MeTube の前段に Nginx、Caddy、Apache などのリバースプロキシを置き、外部アクセスを HTTPS にしつつ、クロスオリジン設定を補う方法だ。
向いているユーザー
MeTube は次のような場面に向いている。
- NAS、自宅サーバー、長時間稼働する Docker ホストがある;
- 統一された動画ダウンロード入口を作りたい;
- YouTube チャンネルやプレイリストを自動的にアーカイブしたい;
yt-dlpのコマンドラインは面倒だが、その機能は使いたい;- 家族、同僚、小さなチームに、コマンドを覚えなくても使えるダウンロード画面を提供したい。
一方で、たまに動画を1本落とすだけの人にはやや重い。その場合は、コマンドライン、デスクトップツール、一時的なスクリプトのほうが軽いかもしれない。MeTube の強みは、常駐運用、キュー管理、購読チェック、統一入口にある。
使うときの注意点
第一に、MeTube はあくまで yt-dlp の Web 管理画面だ。ダウンロード能力は yt-dlp 本体に依存する。対象サイトの仕様変更、ログイン制限、地域制限、利用できない形式などの問題は、最終的には yt-dlp の対応状況に戻ってくる。
第二に、複数人へ開放する前に権限を考える必要がある。特に単発の上書きパラメータ、カスタムディレクトリ、インターネット公開は、誤操作やセキュリティリスクにつながりやすい。より堅実なのは LAN 内で使い、外部公開が必要な場合はリバースプロキシ、認証、アクセス制限を追加する構成だ。
第三に、ダウンロードディレクトリは事前に設計したほうがよい。プレイリスト、チャンネル、音声、一時ファイルは分けておかないと、しばらく使っただけでファイルが混ざってしまう。
まとめ
MeTube の位置づけは明確だ。新しいダウンロードエンジンではなく、yt-dlp を長期運用向けの Web ダウンロードセンターにするためのツールである。NAS、自宅サーバー、動画資料をまとめてアーカイブしたい人にとっては、毎回コマンドを打つより安定し、他の人にも渡しやすい。
すでに Docker を使っていて、動画、音声、字幕、チャンネル内容をよくダウンロードするなら、MeTube は常駐ツールとして試す価値がある。
参考:知乎コラム原文