Desktop client using jellyfin-web with embedded MPV player. Supports Windows, Mac OS, and Linux. Media plays within the same window using the jellyfin-web interface unlike Jellyfin Desktop. Supports audio passthrough. Based on Plex Media Player.
Downloads:
Related Documents:
- Corresponding web client: Repo Release
- API Docs in client-api.md
- Tip: For help building, look at the GitHub Actions file!
sudo apt install build-essential autoconf automake libtool libharfbuzz-dev libfreetype6-dev libfontconfig1-dev libx11-dev libxrandr-dev libvdpau-dev libva-dev mesa-common-dev libegl1-mesa-dev yasm libasound2-dev libpulse-dev libuchardet-dev zlib1g-dev libfribidi-dev git libgnutls28-dev libgl1-mesa-dev libsdl2-dev cmake wget python g++ qtwebengine5-dev qtquickcontrols2-5-dev libqt5x11extras5-dev libcec-dev qml-module-qtquick-controls qml-module-qtwebengine qml-module-qtwebchannel qtbase5-private-dev curl unzip
mkdir ~/jmp; cd ~/jmp
git clone https://github.com/mpv-player/mpv-build.git
cd mpv-build
echo -Dlibmpv=true > mpv_options
echo -Dpipewire=disabled >> mpv_options # hopefully temporary
./rebuild -j4
sudo ./install
sudo ln -s /usr/local/lib/x86_64-linux-gnu/libmpv.so /usr/local/lib/x86_64-linux-gnu/libmpv.so.1
sudo ln -sf /usr/local/lib/x86_64-linux-gnu/libmpv.so /usr/local/lib/libmpv.so.2
sudo ldconfig
cd ~/jmp/
git clone https://github.com/jellyfin/jellyfin-media-player.git
cd jellyfin-media-player
./download_webclient.sh
cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local/ ..
make -j4
sudo make install
rm -rf ~/jmp/
Please install:
- cmake - cmake-3.20.0-windows-x86_64.msi
- Add cmake to the path.
- ninja
- Place this in the build directory.
- QT
- This package is huge. You also need to make a QT account...
- Check "MSVC 2019 64-bit" and "Qt WebEngine" under QT 5.15.2.
- VS2019 Build Tools
- Again this will use a lot of disk space. The installer is small though.
- libmpv1
- Place the contents in the build directory, in a subfolder called
mpv
. - Move the contents of the
include
folder to anmpv
folder inside theinclude
folder. - Move the
mpv-1.dll
tompv.dll
.
- Place the contents in the build directory, in a subfolder called
- WIX
You need to run these commands in git bash.
git clone https://github.com/iwalton3/jellyfin-media-player
cd jellyfin-media-player
./download_webclient.sh
cd build
Open the "x86_x64 Cross Tools Command Prompt for VS 2019". cd
to the build
directory. Run:
set PATH=%PATH%;C:\Program Files (x86)\WiX Toolset v3.11\bin
cmake -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=output -DCMAKE_MAKE_PROGRAM=ninja.exe -DQTROOT=C:/Qt/5.15.2/msvc2019_64 -DMPV_INCLUDE_DIR=mpv/include -DMPV_LIBRARY=mpv/mpv.dll -DCMAKE_INSTALL_PREFIX=output ..
lib /def:mpv\mpv.def /out:mpv\mpv.dll.lib /MACHINE:X64
ninja
ninja windows_package
Install QT 5.15.2, remember to check Qt WebEngine
.
Then run the following commands (replace <QT_DIR> with your QT installation location):
brew install mpv ninja
./download_webclient.sh
cd build
cmake -GNinja -DQTROOT=<QT_DIR> -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=output ..
ninja install
To create redistributable bundle, some library paths need to be fixed. At the project root directory, run:
python3 ./scripts/fix-install-names.py ./build/output/Jellyfin\ Media\ Player.app
- Windows:
%LOCALAPPDATA%\JellyfinMediaPlayer\logs
- Linux:
~/.local/share/jellyfinmediaplayer/logs/
- Linux (Flatpak):
~/.var/app/com.github.iwalton3.jellyfin-media-player/data/jellyfinmediaplayer/logs/
- macOS:
~/Library/Logs/Jellyfin Media Player/
The main configuration file is called jellyfinmediaplayer.conf
. You can also add a mpv.conf
to configure MPV directly.
- Windows:
%LOCALAPPDATA%\JellyfinMediaPlayer\
- Linux:
~/.local/share/jellyfinmediaplayer/
- Linux (Flatpak):
~/.var/app/com.github.iwalton3.jellyfin-media-player/data/jellyfinmediaplayer/
- macOS:
~/Library/Application Support/Jellyfin Media Player/
To get browser devtools, use remote debugging.
- Run the application with the command argument
--remote-debugging-port=9222
. - Open Chromium or Google Chrome.
- Navigate to
chrome://inspect/#devices
. - You can now access the developer tools.
If you have problems:
- Make sure "Discover Network Targets" is checked.
- Make sure
localhost:9222
is in the list under "Configure...". - Make sure
--remote-debugging-port=9222
is specified correctly.
Jellyfin Media Player is licensed under GPL v2. See the LICENSE
file.
Licenses of dependencies are summarized under resources/misc/licenses.txt
.
This file can also be printed at runtime when using the --licenses
option.
You can enable experimental support for Jellyscrub and Skip Intro in client settings. These are included for convenience only and is not an endorsement or long-term commitment to ensure functionality. See src/native
for details on what the plugins modify code-wise.
If you build MPV from source, you currently need to disable pipewire or else the client will segfault.