Bilibili-Inhalte direkt in Emby herunterladen mit Tauri und Rust
Wer schon einmal einen Heimmediaserver mit Emby oder Jellyfin aufgebaut hat, kennt diese Routine. Man findet einen nützlichen Kurs, ein Entwicklungstutorial oder Konferenzvorträge auf dem chinesischen Bilibili, führt yt-dlp aus und erhält eine namenlose mp4-Datei ohne Cover, Beschreibung oder Untertitel. Dann verbringt man eine halbe Stunde damit, manuell Metadaten einzugeben, damit der Player das Poster und die Episodenbeschreibungen sauber anzeigt.
Kürzlich bin ich auf das Open-Source-Projekt bilibili-video-ownloader gestoßen. Es ist ein Desktop-GUI-Client, der die gesamte mühsame Arbeit des Sammelns von Metadaten und des Herunterladens von Inhalten übernimmt.

Was die App kann
Der Hauptfunktionsumfang dreht sich um die Idee von „heruntergeladen und sofort an Emby übertragen". Die App parst Bilibili und extrahiert Materialien in der höchsten verfügbaren Qualität: 8K, HDR, Dolby Vision mit AVC-, HEVC- oder AV1-Codecs. Das Gleiche gilt für Audio, einschließlich Flac und Dolby Atmos.
Über das grundlegende Datei-Herunterladen hinaus adressiert das Tool mehrere spezifische Schmerzpunkte:
- NFO-Dateierstellung und Artwork-Download. Zusammen mit dem Video werden poster.jpg und fanart.jpg heruntergeladen, ebenso wie eine .nfo-Datei mit der Beschreibung, sodass Emby die Film- oder Kurskarte ohne zusätzliche Scraper abruft.
- Konvertierung von Kommentaren (Danmaku). Schwebende chinesische Kommentare aus XML oder JSON werden automatisch in Standard-.ass-Untertitel mit anpassbaren Schriftarten und Stilen konvertiert.
- Kapitelmarkierung und Integrationsschnitte. Das Programm übernimmt die Zeitstempel aus dem Video und bettet sie als Kapitel ein. Wenn es eine Werbeintegration im Video gibt, wird diese als separates Segment über die SponsorBlock-Datenbank markiert, sodass ein kompatibler Player sie im laufenden Betrieb überspringt.
- Flexible Benennungsvorlagen. Man definiert seine eigene Ordnerstruktur und Dateinamen unter Verwendung von Tags wie BV-ID, Titel, Teil, Datum und Uploader.
Man kann sich per QR-Code oder Cookie anmelden. Dies gewährt Zugriff auf persönliche Abonnements, den Wiedergabeverlauf, die „Später ansehen"-Liste und Premium-Inhalte, falls man ein Bilibili-Abonnement hat.
Technische Details
Der Entwickler lanyeeee hat sich für Tauri v2 + Rust für das Backend und Vue 3 mit Naive UI für die Oberfläche entschieden. Das ist eine solide Wahl: Anstatt des aufgeblähten Electron mit seinem endlosen Speicherverbrauch erhalten wir eine kompakte Binärdatei, die auch auf schwächerer Hardware schnell läuft. Downloads laufen in mehreren Threads mit Resume-Unterstützung, falls die Verbindung unterbrochen wird.
Ein interessantes Detail: Das Projekt enthält ein experimentelles Plugin-System, das in Rust geschrieben wurde. Es nutzt dynamische Bibliotheken (.dll, .so, .dylib), die innerhalb des Anwendungsprozesses ausgeführt werden.
Es gibt hier keine Isolation oder Sandboxing. Der Autor ist offen darum: Dieser Ansatz gewährt Plugins vollständige Freiheit, bringt aber Sicherheitsrisiken mit sich. Daher lautet die Empfehlung, Plugins nach Überprüfung des Codes selbst aus dem Quellcode zu kompilieren.
So bauen Sie das Projekt aus dem Quellcode
Vorgefertigte Releases für Windows und macOS sind auf der Releases-Seite in GitHub verfügbar. Um die Binärdatei selbst zu erstellen, benötigen Sie Rust, Node.js und pnpm.
Der Build-Prozess umfasst drei Terminalbefehle:
git clone https://github.com/lanyeeee/bilibili-video-downloader.git
cd bilibili-video-downloader
pnpm install
pnpm tauri build
Die endgültige Binärdatei befindet sich im Ordner src-tauri/target/release/bundle.
Für wen ist das gedacht
Dieses Tool ist nützlich für alle, die Lernmaterialien lokal speichern oder einen Heimmediaserver einrichten. Es ist auch eine solide Referenz für die Entwicklung moderner plattformübergreifender Apps mit Tauri v2, die komplexe Aufgaben wie Medienverarbeitung und Untertitelkonvertierung bewältigen.
Ähnliche Projekte