Your rating: None Average: 4.7 (6 votes)

Sailfin allows you to stream media from a Jellyfin server to your Sailfish device. Jellyfin is a FLOSS multimedia server that puts you in control of your media.

This is an alpha version. Code may be unstable, design may be crappy and features are missing!

Features right now:

  • Play music, video's, photo's and series
  • Reporting playback information

Missing features:

  • IPTV and livestream support
  • Video quality selection

Souce code available at
Sailfish forum thread:

Application versions: 
File harbour-sailfin-0.1-1.armv7hl.rpm133.19 KB26/09/2020 - 05:20
File harbour-sailfin-0.1.0-1.i486.rpm142.97 KB26/09/2020 - 05:20
File harbour-sailfin- KB28/09/2020 - 00:44
File harbour-sailfin- KB28/09/2020 - 00:44
File harbour-sailfin-0.2.1-1.armv7hl.rpm139.51 KB28/09/2020 - 16:56
File harbour-sailfin-0.2.1-1.i486.rpm149.64 KB28/09/2020 - 16:56
File harbour-sailfin-0.3.0-1.armv7hl.rpm1.99 MB10/10/2020 - 19:27
File harbour-sailfin-0.3.0-1.i486.rpm1.99 MB10/10/2020 - 19:27
File harbour-sailfin-0.4.0-1.armv7hl.rpm1.47 MB10/09/2021 - 09:03
File harbour-sailfin-0.4.0-1.aarch64.rpm1.59 MB10/09/2021 - 09:03
File harbour-sailfin-0.4.0-1.i486.rpm1.81 MB10/09/2021 - 09:03
File harbour-sailfin-0.4.1-1.aarch64.rpm1.61 MB27/04/2022 - 12:29
File harbour-sailfin-0.4.1-1.armv7hl.rpm1.49 MB27/04/2022 - 12:29
File harbour-sailfin-0.4.1-1.i486.rpm1.83 MB27/04/2022 - 12:29

Version 0.4.1-1

  • Fix (de)serialisation code making a mess of things
    • Video's now should start playing faster, due Sailfin no longer
      sending malformed requests to the server.
  • A workaround for a complete UI freeze when connecting to a server over
    HTTPS has been added. This does not work 100% of the time, but it is
    the best I can do at the moment.
  • A crash that occurred when clicking on a playlist of audio files has
    been resolved.


Ingvix's picture

Is this still in development? I'm able vo login but can't see any media on the page. Only the 'Resume watching' and 'Next up' headers. Also it requires to login everytime I open the app.

ahappyhuman's picture

Do you by any chance connect to your Jellyfin server over HTTPS? In that case, the application freezes most likely due to a bug within the old Qt version that Sailfish OS uses.

Ingvix's picture

No, just plain http on my home network. The application stays responsive but never shows any media.

nas's picture

@ahappyhuman thank you for sailfin!

I installed jellyfin localy and worked pretty well with most videos I tried!

I also tried the https with self signed certificate which didn't work, any chance to add an option for that?

thank you in advance!

ahappyhuman's picture

I've made an issue on GitHub for this over here, so that you can follow the progress. It sadly seems to be non-trivial at the moment, mainly due to QtMultimedia, which uses GStreamer internally, which uses another TLS stack than Qt, but is not exposed via QtMultimedia. Anyhow, if I have the time I'll try to get it implemented.

ahappyhuman's picture

I'm aware that the current release is a bit large, I'm currently investigating in how I can shrink it down. The problem has to do with libraries not getting stripped, I will make a new release once I figure out how.

sashikknox's picture
unknown:0 - Error: "Your GStreamer installation is missing a plug-in."

What GStreamer plugin i need? Cant play any video, and it not show categries of video, but i use it with emby... )

ahappyhuman's picture

My initial guess of what's happening is that the apis of both servers have started to diverge. From a quick glance at the api documentation, there seems to be a significant difference in how stream URLs are obtained. Emby pushes the burden on the client side to select the correct stream, with the right transcode settings and so on, while Jellyfin expects the client to deliver information to the server about what it can play back and Jellyfin will recommend a stream for the device.

What probably happend is that Sailfin gets a response it doesn't understand when trying to request the stream URL, as it's a Jellyfin-specific endpoint, interprets this garbage response (which it shouldn't) and sets the URL to the stream to a garbage value. GStreamer tries to load this URL, probably gets a html response back or something and doesn't know what to do with it.

sashikknox's picture

Ok, thanks anyway for your application )

sashikknox's picture

Work with emby!
Please, use only Emby compatible API)) really thank you! Nice to see jellyfin/emby client here!

sashikknox's picture

Really cool! Sad, but i have emby ( no jellyfin for freebsd freenas