6.2 KiB
Jellyfin Media Player
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!
Building at a glance (Linux)
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/
Building for Windows
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
Building for MacOS
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
Log File Location
- 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/
Config File Location
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/
Web Debugger
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.
License
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.
Unofficial Plugin Support
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.
Known Issues
If you build MPV from source, you currently need to disable pipewire or else the client will segfault.