jellyfin-media-player fork

Ian Walton acffcd99cf Enable windows dark mode support. (#247) 1 year ago
.github 9b379b2aea Fix vcredist for x86 build. 2 years ago
.vscode b72c8084ab Initial try at taskbar-local. 3 years ago
CMakeModules c6af8bbc67 Up version to 1.6.1. 2 years ago
bundle acffcd99cf Enable windows dark mode support. (#247) 1 year ago
debian 569d48a2ed Switch builddep to python3 for debian unstable. 2 years ago
deployment 1f0071cb51 Fix tzdata and equivs. 3 years ago
external b0541484b3 Fix Qt 5.15 QTextStream deprecation warnings 3 years ago
native bfd1b923c0 Allow retry with transcode instead of usng a hard failure. (#127) 2 years ago
resources 9c4a805873 Added Xbox input mapping 2 years ago
scripts 965ea533e1 Comply with PEP8. 3 years ago
src 5985c40a16 Add --platform option. (#159) 2 years ago
.clang-format 3d4859f1b1 Initial public commit of Plex Media Player 8 years ago
.clang-tidy 40be8ac9a2 Adjust .clang-tidy for public struct member names 8 years ago
.gitignore 30db19d53e Initial test of linux builds. 3 years ago
CMakeLists.txt 80da4a2ec0 Remove breakpad 3 years ago
LICENSE 3510741dc1 License under GPLv2 8 years ago
README.md 37c84b97d9 Update git clone command. GitHub no longer allows the git:// protocol. 2 years ago
client-api.md dcc36e370f Cleanup settings, use tv setting, enable hwdec by default. 3 years ago
download_webclient.sh 7efc8138f1 Auto-update webclient version in debian/readme. 3 years ago

README.md

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.

Screenshot of Jellyfin 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 --enable-libmpv-shared > mpv_options
echo --disable-cplayer >> mpv_options
./rebuild -j4
sudo ./install
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 an mpv folder inside the include folder.
    • Move the mpv-1.dll to mpv.dll.
  • 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 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.