switchfin

Switchfin

icon

Switchfin is third-party PC player for Jellyfin that provides a native user interface to browse and play movies and series.

build NS PSVita PS4 Flathub download nightly

This project is in its early stages so expect bugs.

Screenshots

Home Library
Home Library
Search Music
Search Music
Series Episode
Series Episode

Features

Media Playback

Remote File Browser

Additional Features

Input Mapping (Playback)

Gamepad Keyboard Description
A Space Play / Pause
B Esc Stop
Y O Toggle OSD
X F4 Show Menu
R / L [ / ] Seek forward / backward
+ F1 Show video profile
R stick F2 Toggle video quality
L stick F3 Toggle playback speed

Keyboard bindings can be customized in Settings.

{
  "setting": {
    "key_last": "pgup",
    "key_next": "pgdn",
    "key_volume_up": "0",
    "key_volume_down": "9",
    "key_danmaku": "d",
    "key_video_profile": "f1",
    "key_video_quality": "f2",
    "key_video_speed": "f3",
    "key_setting": "f4",
    "key_refresh": "f5",
    "key_forward": "]",
    "key_rewind": "[",
    "key_video_osd": "o",
    "key_video_pause": "space"
  }
}

System Requirements

Platform Requirement
Windows Windows 7 or later with DirectX 11.1 support
macOS Intel or Apple Silicon, macOS 10.15 or later
Linux x86_64 / arm64v8 with OpenGL 3.0+, Flatpak recommended

FAQ

Q: Subtitles don’t display on Nintendo Switch? A: Place a .ttf font file at /switch/Switchfin/subfont.ttf.

Q: How do I play media from a WebDAV / SFTP / HTTP server? A: Edit config.json and add entries under remotes:

{
  "remotes": [
    {
      "name": "local",
      "url": "file:///switch"
    },
    {
      "name": "xiaoya",
      "passwd": "guest_Api789",
      "url": "webdav://192.168.1.5:5678/dav",
      "user": "guest"
    },
    {
      "name": "rpi",
      "url": "sftp://pi:raspberry@192.168.1.5/media"
    },
    {
      "name": "rclone",
      "url": "http://192.168.1.5:8000"
    }
  ]
}

Example: using rclone to serve files over HTTP:

rclone serve http --addr :8000 --read-only /media/downloads

Q: The app won’t open on macOS? A: Run the following in Terminal to remove the quarantine attribute:

sudo xattr -rd com.apple.quarantine /Applications/Switchfin.app

Development

git clone https://github.com/dragonflylee/switchfin.git --recurse-submodules --shallow-submodules

Nintendo Switch

Set up the devkitPro environment, then:

sudo dkp-pacman -S switch-dev switch-glfw switch-libwebp switch-curl switch-libmpv
cmake -B build_switch -DPLATFORM_SWITCH=ON
make -C build_switch Switchfin.nro -j$(nproc)
# Debug with nxlink
nxlink -a <YOUR_IP> -p Switchfin/Switchfin.nro -s Switchfin.nro --args -d -v

Linux / macOS / Windows (Desktop)

Ensure mpv, libcurl, libwebp, and their development headers are installed, then:

cmake -B build -DPLATFORM_DESKTOP=ON
cmake --build build

Windows (MinGW64)

pacman -S ${MINGW_PACKAGE_PREFIX}-cc ${MINGW_PACKAGE_PREFIX}-ninja ${MINGW_PACKAGE_PREFIX}-cmake
cmake -B build_mingw -G Ninja -DPLATFORM_DESKTOP=ON
cmake --build build_mingw

Acknowledgements