Jellyfin Electron is a thin wrapper around the Jellyfin web interface.
Its main purpose is to enable better integration with the OS than being just a tab in a browser window.
It is based on an Emby Electron project that did the same thing to enable media key control of playback.
Some information about that project can be found here should anyone be
interested.
It has been re-written (though liberal copy and paste from the original project) to restructure the code better since
I've worked on some other JS projects recently.
I am aware of some official alternatives to this project.
I found this to have some significant problems when I attempted to build and run it myself - on macOS, I've not tried it on other platforms.
The main problems were the positioning and management of the main window. It seemed to not want to stay still, and would place itself annoyingly off screen (bottom left) with about 1cm x 1cm of the window accessible to grab the handles. Then dragging and moving the window is problematic.
The project had not been updated since August 2019 at the time of writing, but it seems to have picked up again since.
This appears to be the replacement for the Jellyfin Theater application. I expect that this application will be a better successor to this repository, but only has the functionality to login to a Jellyfin server so far. I would like to be able to control my media using media keys sooner than wait for this project to see completion.
Currently installing requires you to download the source code and build the project yourself - see below.
Hopefully I'll get some process set up to have some released binaries.
Download this repository by whatever means you desire and change into the code's root directory:
-
Git clone it over SSH
git clone [email protected]:JonEllis/jellyfin-electron.git cd jellyfin-electron
-
Git clone it over HTTPS
git clone https://github.com/JonEllis/jellyfin-electron.git cd jellyfin-electron
-
Or download the zip archive file and extract it
wget https://github.com/JonEllis/jellyfin-electron/archive/master.zip -O jellyfin-electron.zip unzip jellyfin-electron.zip cd jellyfin-electron-master
The main dependencies that the project won't fetch itself are node
, yarn
and git
.
You will need node at least version 10, see the installation docs for installing node 10.
See the Yarn installation documentation for how to install Yarn.
yarn install
Run this like a standard Electron app
yarn start
Then the following command will attempt to build the Jellyfin Electron app for macOS, Windows and Linux.
The built binaries will be placed in the release-builds
directory.
yarn run build-all
If you only want to build for a particular platform, then you can run the platform-specific build script on it's own:
yarn run build-linux
yarn run build-macos
yarn run build-windows
To make the Jellyfin header bar a dragable area to move the player window around with, add this snippet of CSS to the "Custom CSS" field under "General" settings:
.skinHeader { -webkit-app-region: drag; }
.skinHeader button { -webkit-app-region: no-drag; }
The first line makes the header draggable, whilst the second makes buttons within the header not draggable.
Pull requests are welcome. For Major changes, please open an issue first to discuss what you would like to change.
- Test on Windows and Linux
- Validate that the server URL is a Jellyfin server some how
- Bind/unbind global shortcuts based on preferences when changed
- Some sort of grown up testing (or, at this point, any testing)
- Options for showing the titlebar so window chrome doesn't overlap player contents