Switchfin
Third-party native Jellyfin client for PC/PS4/PSVita/Nintendo Switch
Install / Use
/learn @dragonflylee/SwitchfinREADME
Switchfin
<img src="scripts/switchfin.svg" alt="icon" height="128" width="128" align="left">Switchfin is third-party PC player for Jellyfin that provides a native user interface to browse and play movies and series. <br>
This project is in its early stages so expect bugs.
Screenshots
<table> <tbody> <tr> <th>Home</th> <th>Library</th> </tr> <tr> <td><img src="images/home.jpg" alt="Home"></td> <td><img src="images/library.jpg" alt="Library"></td> </tr> <tr> <th>Search</th> <th>Music</th> </tr> <tr> <td><img src="images/search.jpg" alt="Search"></td> <td><img src="images/music.jpg" alt="Music"></td> </tr> <tr> <th>Series</th> <th>Episode</th> </tr> <tr> <td><img src="images/series.jpg" alt="Series"></td> <td><img src="images/episode.jpg" alt="Episode"></td> </tr> </tbody> </table>Features
- Completely native interface
- Supported media items: movies, series, seasons, episodes
- Direct play and transcoding
- Remote browser for Webdav/Apache/Nginx/FTP server
- Base on MPV Player
- Container formats: mkv, mov, mp4, avi
- Video codecs: H.264, H.265, VP8, VP9, AV1
- Audio codecs: Opus, FLAC, MP3, AAC, AC-3, E-AC-3, TrueHD, DTS, DTS-HD
- Subtitle codecs: SRT, VTT, SSA/ASS, DVDSUB
- Optionally force software decoding when hardware decoding has issues.
- External drive support using libusbhsfs
Input mapping during playback
gamepad | keyboard | describe ---|-------|--------- A | space | Play/Pause B | esc | Stop during Y | o | Toggle OSD X | f4 | Show Menu R/L | [/] | Seek +/- + | f1 | Show video profile R | f2 | Stick Button Toggle Video Quality L | f3 | Stick Button Toggle Speed Select
System Requirements
- Windows 7 or later with DirectX 11.1 support
- Intel or Apple Silicon Mac models 10.15 or later
- Linux flatpak x86_64/arm64v8 with OpenGL3 support
FAQ
- Q: Subtitles didn't display?
A: Put any ttf file at
/switch/Switchfin/subfont.ttf - Q: How to enable external drive on switch?
A: Edit config file
config.json
{
"setting": {
"ums": true
}
}
<img src="images/ums.jpg" alt="ums" height="360" width="640">
- Q: How to play media files on webdav server?
A: Edit config file
config.json
{
"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 for using rClone setup HTTP server
rclone serve http --addr :8000 --read-only /media/downloads
- Q: Can't open app under macOS ?
A: Please run this command in your terminal:
sudo xattr -rd com.apple.quarantine /Applications/Switchfin.app
TODO list
- [x] Movie view
- [x] Series detail
- [x] Search page
- [x] Websocket connection (MirrorPlay)
- [x] danmu plugin integration
Develop
git clone https://github.com/dragonflylee/switchfin.git --recurse-submodules --shallow-submodules
Building for Switch
To build for Switch, a standard development environment must first be set up. In order to do so, refer to the Getting Started guide.
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)
# for debug
nxlink -a <YOUR IP> -p Switchfin/Switchfin.nro -s Switchfin.nro --args -d -v
Building for 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
Thanks to
Related Skills
node-connect
336.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
336.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.0kCommit, push, and open a PR
