TauriとRustでBilibiliのコンテンツをEmbyに直接ダウンロードする
EmbyやJellyfinでホームメディアサーバーを構築したことがある人なら、このルーティンはお馴染みでしょう。有益なコース、開発チュートリアル、中国のBilibiliにあるカンファレンストークを見つけたとします。yt-dlpを実行すると、カバー、説明、字幕のない無名のmp4ファイルが手に入ります。そしてプレイヤーがポスターやエピソード説明を表示してくれるように、半時間かけてメタデータを手動で入力します。
最近、オープンソースプロジェクトのbilibili-video- downloaderを発見しました。メタデータの収集とコンテンツのダウンロードという面倒な作業をすべてってくれるデスクトップGUIクライアントです。

このアプリでできること
主な機能セットは「ダウンロードしてすぐにEmbyにプッシュ」という考えを中心に展開されています。このアプリはBilibiliを解析し、利用可能な最高品質のマテリアルを抽出します:8K、HDR、Dolby Vision、AVC、HEVC、AV1コーデック。オーディオ也一样、FlacやDolby Atmosを含みます。
基本的なファイルダウンロードに加えて、このユーティリティはいくつかの具体的な課題に対処しています:
- NFOファイルの生成とアートワークのダウンロード。動画と一緒に、poster.jpgとfanart.jpgがダウンロードされ、説明を含む.nfoファイルも一緒に取得できるため、Embyは追加のスクレイパーなしでムビーやコースカードをすぐに表示できます。
- コメント(弾幕)の変換。XMLまたはJSONからのフローティング中国語のコメントは、カスタマイズ可能なフォントとスタイルで標準的な.ass字幕に自動変換されます。
- チャプターマーカーと統合カット。プログラムは動画からタイムスタンプを取得し、チャプターとして埋め込みます。動画にプロモーショ интеграцияがある場合、SponsorBlockデータベース経由で別セグメントとしてマークされ、互換性のあるプレイヤーがその場でスキップします。
- 柔軟な命名テンプレート。BV-id、タイトル、パート、日付、アップロード者などのタグを使用して、自分のフォルダ構造とファイル名を定義できます。
QRコードまたはCookieでログインできます。これにより、個人订阅、視聴履歴、後で視聴リストにアクセスでき、Bilibili订阅を持っている場合はプレミアムコンテンツにもアクセスできます。
技術的な詳細
開発者のlanyeeeeはバックエンドにTauri v2 + Rustを選び、インターフェースにはVue 3とNaive UIを採用しました。優れた選択です:メモリ消費が果てしなく肥大化したElectronの代わりに、ロースペックのマシンでも素早く動作するコンパクトなバイナリが手に入ります。ダウンロードはマルチスレッドで実行され、接続が切断されても再開に対応しています。
興味深い詳細として、このプロジェクトにはRustで構築された実験的なプラグインシステムが含まれています。動的ライブラリ(.dll、.so、.dylib)を活用して、アプリケーションプロセス内で実行されます。
ここには分離やサンドボックス化はありません。開発者はこれを明示しています:このアプローチはプラグインに完全な自由を与えますが、セキュリティリスクも生みます。そのため、コードをレビューした後、プラグインを自分でソースからコンパイルすることをお勧めします。
ソースからプロジェクトをビルドする方法
WindowsとmacOS用のビルド済みリリースは、GitHubのReleasesタブで利用可能です。自分でバイナリをビルドするには、Rust、Node.js、pnpmがインストールされている必要があります。
ビルドプロセスは3つのターミナルコマンドで構成されています:
git clone https://github.com/lanyeeee/bilibili-video-downloader.git
cd bilibili-video-downloader
pnpm install
pnpm tauri build
最終的なバイナリは、src-tauri/target/release/bundleフォルダーに配置されます。
誰が使うべきか
このツールは、教育 자료를ローカルに保存している人やホームメディアサーバーを設定している人に便利です。また、メディア処理や字幕変換のような複雑なタスクを処理するTauri v2で сучасныеクロスプラットフォームアプリを構築するための優れたリファレンスとしても機能します。
関連プロジェクト