Silverscreen

Client Jellyfin nativo per Linux

Silverscreen è un client Jellyfin nativo per Linux, che ho scritto in Rust con GTK4 e libadwaita. L'interfaccia riprende a grandi linee quella del client web di Jellyfin, ma è costruita con i componenti della piattaforma e segue in automatico il tema chiaro o scuro del sistema. È pensato per Wayland; su X11 può funzionare, con alcune limitazioni.

La home di Silverscreen, con il carosello «Scopri» e la sezione «Continua a guardare»

Riproduzione

La riproduzione avviene dentro l'applicazione tramite libmpv, con un backend video che si sceglie dalle impostazioni:

  • Proxy Wayland (predefinito): un piccolo compositor Wayland interno all'applicazione su cui mpv disegna direttamente, evitando un passaggio completo per OpenGL o Vulkan di GTK;
  • API di rendering OpenGL di mpv, per le configurazioni in cui il proxy Wayland non è adatto;
  • GStreamer, mpv esterno e VLC esterno, per i casi in cui la riproduzione dentro l'applicazione non è la scelta giusta.

Con il proxy Wayland i contenuti HDR (PQ/HDR10) vengono mostrati come HDR sugli schermi che lo supportano, tramite il protocollo wp_color_manager_v1. L'HDR si attiva da solo, si può confrontare al volo con la conversione SDR di mpv e regolare durante la riproduzione (luminanza di picco e altri parametri); un'impostazione lo disattiva del tutto, anche con mpv e VLC esterni.

Gli script Lua di mpv sono gestiti dall'interfaccia: si aggiungono, si scaricano, si attivano e si configurano uno per uno dalle impostazioni. Le scorciatoie da tastiera sono configurabili e valgono per tutti i player integrati.

Le impostazioni del player: lingue preferite, sottotitoli, HDR e scorciatoie

Durante la riproduzione si possono cercare e caricare sottotitoli esterni senza uscire dal player, e un pannello laterale mostra il cast del contenuto con i collegamenti a IMDb e TVDb.

Catalogo e scoperta

  • Sezioni della home che seguono quelle del client web di Jellyfin: continua a guardare, prossimi episodi, librerie, con pagine dedicate a film, serie e musica;
  • Un carosello «Scopri» con titoli casuali della propria libreria e, collegando un'istanza di Seerr, suggerimenti di titoli non ancora presenti, che si possono richiedere direttamente;
  • Punteggi di IMDb, TMDb e Rotten Tomatoes (critica e pubblico) nelle pagine di film e serie e nel carosello, anche quando il server non li fornisce;
  • Trailer, ricerca e, nella pagina di un episodio, tutti gli altri episodi della stagione con quelli già visti contrassegnati.

La pagina di un film, con trailer, punteggi di IMDb, TMDb e Rotten Tomatoes e cast

La pagina di una serie, con le stagioni e gli episodi

La libreria dei film

Profili e impostazioni

Silverscreen supporta più profili: ognuno può collegarsi a un server diverso e ha impostazioni proprie, isolate dagli altri. Le impostazioni ricalcano, categoria per categoria, quelle del client web di Jellyfin. L'interfaccia è in italiano e in inglese, e la lingua si cambia senza riavviare.

Distribuzione

Silverscreen è distribuito come pacchetto .deb, .rpm, AppImage e Flatpak. I primi tre usano GTK4, libadwaita e mpv già presenti nel sistema; il Flatpak include tutto, compreso mpv compilato dai sorgenti. Il codice è rilasciato con licenza GPL-3.0 o successiva.

Il repository non è ancora pubblico: lo sviluppo avviene su un'istanza privata di Gitea, quindi per ora Silverscreen non si può scaricare. Su richiesta sono disponibile a condividere sia i pacchetti sia il codice sorgente.

Gli screenshot mostrano una libreria di prova con film di pubblico dominio e film open della Blender Foundation (© Blender Foundation, CC BY), con locandine e fotogrammi dei film stessi.