Descargando contenido de Bilibili directamente en Emby con Tauri y Rust
Cualquiera que haya construido un servidor multimedia doméstico con Emby o Jellyfin conoce esta rutina. Encuentras un curso útil, un tutorial de desarrollo o conferencias en el Bilibili chino, ejecutas yt-dlp y obtienes un archivo mp4 sin nombre, sin portada, descripción ni subtítulos. Luego pasas media hora introduciendo manualmente los metadatos para que el reproductor muestre correctamente el póster y las descripciones de los episodios.
Hace poco me encontré con el proyecto de código abierto bilibili-video-downloader. Es un cliente GUI de escritorio que se encarga de todo el trabajo tedioso de recopilar metadatos y descargar contenido.

Qué puede hacer la aplicación
El conjunto principal de funciones gira en torno a la idea de "descargado e inmediatamente enviado a Emby". La aplicación analiza Bilibili y extrae materiales en la máxima calidad disponible: 8K, HDR, Dolby Vision con códecs AVC, HEVC o AV1. Lo mismo se aplica al audio, incluyendo Flac y Dolby Atmos.
Más allá de la descarga básica de archivos, la utilidad aborda varios puntos específicos de fricción:
- Generación de archivos NFO y descarga de portadas. Junto con el video, se descargan poster.jpg y fanart.jpg junto con un archivo .nfo que contiene la descripción, para que Emby muestre la tarjeta de la película o curso sin raspadores adicionales.
- Conversión de comentarios (danmaku). Los comentarios chinos flotantes de XML o JSON se convierten automáticamente a subtítulos .ass estándar con fuentes y estilos personalizables.
- Marcado de capítulos y corte de integraciones. El programa toma las marcas de tiempo del video y las incrusta como capítulos. Si hay una integración promocional en el video, se marca como un segmento separado a través de la base de datos de SponsorBlock, para que un reproductor compatible lo omita al vuelo.
- Plantillas de nomenclatura flexibles. Defines tu propia estructura de carpetas y nombres de archivos usando etiquetas como BV-id, título, parte, fecha y subidor.
Puedes iniciar sesión mediante código QR o Cookie. Esto otorga acceso a suscripciones personales, historial de visualización, lista de ver más tarde y contenido premium si tienes una suscripción a Bilibili.
Detalles técnicos
El desarrollador lanyeeee eligió Tauri v2 + Rust para el backend y Vue 3 con Naive UI para la interfaz. Es una elección sólida: en lugar de Electron inflado con su consumo interminable de memoria, obtenemos un binario compacto que se ejecuta rápidamente incluso en máquinas de bajo rendimiento. Las descargas se ejecutan en múltiples subprocesos con soporte de reanudación si la conexión se cae.
Un detalle interesante: el proyecto incluye un sistema de plugins experimental construido en Rust. Utiliza bibliotecas dinámicas (.dll, .so, .dylib) que se ejecutan dentro del proceso de la aplicación.
No hay aislamiento ni sandboxing aquí. El autor es claro al respecto: este enfoque otorga a los plugins total libertad pero introduce riesgos de seguridad. Por lo tanto, la recomendación es compilar los plugins tú mismo desde el código fuente después de revisarlo.
Cómo compilar el proyecto desde el código fuente
Los lanzamientos precompilados para Windows y macOS están disponibles en la pestaña Releases de GitHub. Para compilar el binario tú mismo, necesitarás tener Rust, Node.js y pnpm instalados.
El proceso de compilación implica tres comandos de terminal:
git clone https://github.com/lanyeeee/bilibili-video-downloader.git
cd bilibili-video-downloader
pnpm install
pnpm tauri build
El binario final se encontrará en la carpeta src-tauri/target/release/bundle.
Para quién es esto
Esta herramienta es útil para quienes almacenan materiales educativos localmente o configuran un servidor multimedia doméstico. También es una buena referencia para construir aplicaciones multiplataforma modernas con Tauri v2 que manejan tareas complejas como el procesamiento de medios y la conversión de subtítulos.
Proyectos relacionados