>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Rust

Téléchargement de contenu Bilibili directement dans Emby avec Tauri et Rust

Tous ceux qui ont configuré un serveur multimédia domestique avec Emby ou Jellyfin connaissent cette routine. Vous trouvez un cours utile, un tutoriel de développement ou des conférences sur le site chinois Bilibili, vous lancez yt-dlp et vous obtenez un fichier mp4 sans nom, sans couverture, sans description ni sous-titres. Ensuite, vous passez une demi-heure à saisir manuellement les métadonnées pour que le lecteur affiche correctement l'affiche et les descriptions des épisodes.

Récemment, je suis tombé sur le projet open-source bilibili-video- down loader. C'est un client GUI de bureau qui prend en charge tout le travail fastidieux de collecte des métadonnées et de téléchargement du contenu.

Ce que l'application peut faire

L'ensemble des fonctionnalités principales tourne autour de l'idée de « téléchargé et immédiatement envoyé vers Emby ». L'application analyse Bilibili et extrait les matériaux dans la qualité la plus élevée disponible : 8K, HDR, Dolby Vision avec les codecs AVC, HEVC ou AV1. Il en va de même pour l'audio, y compris le Flac et le Dolby Atmos.

Au-delà du téléchargement basique de fichiers, cet utilitaire répond à plusieurs problèmes spécifiques :

  • Génération de fichiers NFO et téléchargement d'illustrations. Avec la vidéo, poster.jpg et fanart.jpg sont téléchargés ainsi qu'un fichier .nfo contenant la description, afin qu'Emby affiche la fiche du film ou du cours sans avoir besoin de scrapers supplémentaires.
  • Conversion des commentaires (danmaku). Les commentaires flottants chinois en XML ou JSON sont automatiquement convertis en sous-titres .ass standard avec des polices et styles personnalisables.
  • Marquage des chapitres et découpe des intégrations. Le programme extrait les horodatages de la vidéo et les intègre sous forme de chapitres. S'il y a une intégration promotionnelle dans la vidéo, elle est marquée comme un segment distinct via la base de données SponsorBlock, afin qu'un lecteur compatible puisse l'ignorer à la volée.
  • Modèles de nommage flexibles. Vous définissez votre propre structure de dossiers et noms de fichiers en utilisant des balises comme BV-id, title, part, date et uploader.

Vous pouvez vous connecter via un code QR ou un Cookie. Cela donne accès aux abonnements personnels, à l'historique de visionnage, à la liste « À regarder plus tard » et au contenu premium si vous avez un abonnement Bilibili.

Détails techniques

Le développeur lanyeeee a choisi Tauri v2 + Rust pour le backend et Vue 3 avec Naive UI pour l'interface. C'est un choix solide : au lieu d'un Electron bloated avec sa consommation de mémoire infinie, on obtient un binaire compact qui s'exécute rapidement même sur des machines modestes. Les téléchargements s'exécutent en plusieurs threads avec support de reprise en cas de coupure de connexion.

Un détail intéressant : le projet inclut un système de plugins expérimental codé en Rust. Il exploite des bibliothèques dynamiques (.dll, .so, .dylib) qui s'exécutent dans le processus de l'application.

Il n'y a pas d'isolation ni de sandboxing ici. L'auteur est transparent à ce sujet : cette approche accorde aux plugins une liberté totale mais introduit des risques de sécurité. La recommandation est donc de compiler vous-même les plugins depuis le code source après l'avoir vérifié.

Comment compiler le projet depuis les sources

Des versions précompilées pour Windows et macOS sont disponibles sur l'onglet Releases de GitHub. Pour compiler le binaire vous-même, vous aurez besoin de Rust, Node.js et pnpm installés.

Le processus de compilation implique trois commandes dans le terminal :

git clone https://github.com/lanyeeee/bilibili-video-downloader.git
cd bilibili-video-downloader
pnpm install
pnpm tauri build

Le binaire final se trouvera dans le dossier src-tauri/target/release/bundle.

À qui cela s'adresse

Cet outil est utile pour ceux qui stockent des supports éducatifs en local ou qui configurent un serveur multimédia domestique. C'est également une bonne référence pour créer des applications multiplateformes modernes avec Tauri v2 qui gèrent des tâches complexes comme le traitement multimédia et la conversion de sous-titres.

Projets similaires