>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Rust

Scaricare Contenuti Bilibili Direttamente in Emby con Tauri e Rust

Chiunque abbia costruito un media server domestico con Emby o Jellyfin conosce questa routine. Trovi un corso utile, un tutorial di sviluppo o una conferenza sul cinese Bilibili, esegui yt-dlp e ottieni un file mp4 senza nome, senza copertina, descrizione o sottotitoli. Poi passi mezz'ora a inserire manualmente i metadati affinché il player mostri correttamente la locandina e le descrizioni degli episodi.

Recentemente mi sono imbattuto nel progetto open-source bilibili-video-downloader. È un client GUI desktop che si occupa di tutto il lavoro tedioso di raccogliere metadati e scaricare contenuti.

Cosa può fare l'app

Il set di funzionalità principali ruota attorno all'idea di "scaricato e immediatamente inviato a Emby." L'app analizza Bilibili ed estrae i materiali nella massima qualità disponibile: 8K, HDR, Dolby Vision con codec AVC, HEVC o AV1. Lo stesso vale per l'audio, inclusi Flac e Dolby Atmos.

Oltre al semplice download di file, l'utility affronta diversi punti critici specifici:

  • Generazione di file NFO e download delle copertine. Insieme al video, vengono scaricati poster.jpg e fanart.jpg insieme a un file .nfo contenente la descrizione, così Emby mostra la scheda del film o del corso senza scraper aggiuntivi.
  • Conversione dei commenti (danmaku). I commenti cinesi fluttuanti da XML o JSON vengono automaticamente convertiti in sottotitoli .ass standard con caratteri e stili personalizzabili.
  • Marcatura dei capitoli e taglio delle integrazioni. Il programma estrae i timestamp dal video e li incorpora come capitoli. Se c'è un'integrazione promozionale nel video, viene contrassegnata come segmento separato tramite il database SponsorBlock, così un player compatibile la salta al volo.
  • Modelli di denominazione flessibili. Definisci la tua struttura di cartelle e i nomi dei file usando tag come BV-id, title, part, date e uploader.

Puoi accedere tramite codice QR o Cookie. Questo ti dà accesso alle sottoscrizioni personali, alla cronologia di visione, alla lista "guarda più tardi" e ai contenuti premium se hai un abbonamento Bilibili.

Dettagli tecnici

Lo sviluppatore lanyeeee ha scelto Tauri v2 + Rust per il backend e Vue 3 con Naive UI per l'interfaccia. È una scelta solida: invece di un Electron gonfio con il suo consumo infinito di memoria, otteniamo un binario compatto che gira rapidamente anche su macchine di fascia bassa. I download vengono eseguiti in thread multipli con supporto alla ripresa in caso di caduta della connessione.

Un dettaglio interessante: il progetto include un sistema di plugin sperimentale costruito in Rust. Utilizza librerie dinamiche (.dll, .so, .dylib) che vengono eseguite all'interno del processo dell'applicazione.

Non c'è isolamento o sandboxing qui. L'autore è esplicito al riguardo: l'approccio garantisce ai plugin completa libertà ma introduce rischi di sicurezza. Quindi la raccomandazione è di compilare i plugin autonomamente dal codice sorgente dopo averlo esaminato.

Come compilare il progetto dal codice sorgente

Le release precompilate per Windows e macOS sono disponibili nella scheda Releases su GitHub. Per compilare il binario autonomamente, dovrai avere installato Rust, Node.js e pnpm.

Il processo di compilazione richiede tre comandi da terminale:

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

Il binario finale si troverà nella cartella src-tauri/target/release/bundle.

A chi è rivolto

Questo strumento è utile per chi memorizza materiali educativi localmente o configura un media server domestico. È anche un buon riferimento per costruire moderne app multipiattaforma con Tauri v2 che gestiscono compiti complessi come l'elaborazione multimediale e la conversione dei sottotitoli.

Progetti correlati