Switchfin: Jellyfin client for Nintendo Switch

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

Project repository|Stable Build|Nightly Build

This project is in its early stages so expect bugs.

Screenshots​


HomeLibrary
Home
Library
SearchMusic
Search
Music
SeriesEpisode
Series
Episode

Features​

  • Completely native interface
  • Supported media items: movies, series, seasons, episodes
    • Direct play and transcoding
  • 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.

Input mapping during playback

  • A Play/Pause
  • B Stop during
  • Y Toggle OSD
  • X Show Menu
  • R/L Seek +/-
  • L Stick Button Toggle Speed Select
  • R Stick Button Toggle Video Quality Select
  • + Show video profile

ChangeLog​


0.8.3 (2016-02-02)
fix json parse failed when SeriesId is null
add bonus video view for series tab
add add home tab retry dialog when request failed

0.8.2 (2025-12-20)
fix thumb image for episodes on home page
add refresh support for dashboard
add option of ui scale
add add spanish/french localization

0.8.1 (2025-12-09)
stability improvement
adjust dashboard view
add program tab for livetv

0.8.0 (2025-12-06)
fixed webdav client for clouddrive2
refactor home tab for split media
add dashboard tab for view devices, activities etc.
video profile add subtitle codec

0.7.7 (2025-11-17)
compatibility update for 21.0.0
adjust direct play logic

0.7.6 (2025-10-22)
fix login issue on jellyfin 10.11
improve tls1.3 support by mbedtls

0.7.5 (2025-09-17)
add song/artist tab for music
support receive media files as args
i18n: add russian localization @wildrun0

0.7.4 (2025-07-25)
fix LiveTV not working

0.7.2 (2025-06-21)
fixed audio/sub selection when transcode
fixed resume play on movie tab

0.7.1 (2025-05-26)
add suggest/genres tab for collection
fix image load for search sugguest
fix series/movie view logo layout

0.7.0 (2025-05-16)
refactor series view layout
add people view of series/movie
add Brazilian Portuguese localization (@brunorossetto)
add external drive support
fix remote load large file list
use mpv watch-later for remote

0.6.3 (2025-03-12)
add player option for video rotate
add photo viewer support
upgrade ffmpeg 7.1.1
websocket close gracefully

0.6.2 (2025-02-27)
fix strm format support
search suggest include `MusicAlbum`
improve image load speed
optimize auto quality option
add mirror play support
add korean localization
add psvita gxm support

0.6.1 (2024-12-22)
ignore save resume on m3u playlist
ignore save window stat when fullscreen
fix websocket support on switch

0.6.0 (2024-12-7)
add japanese localization (@yyoossk)
add vietnamese localization (@tlover-code)
support modify server url
remote add ftp/sftp support
remote add resume history
fix loading osd when change episode
fix update server info when check login
fixaudio load failed when proxy enabled
fixnavigate route of video view
fix focus logic of lock button

0.5.3 (2024-10-27)
save windows state when exit
support touch input on linux (@xfangfang)
support paste text to search input (@xfangfang)
new option low quality
new option subtitle fallback
support custom user-agent in webdav browser
http server support for remote
support loading custom emoji font
fixed empty tab when search failed

0.5.1 (2024-7-30)
upgrade ffmpeg 7.0.1
add highlight for current play track
add live tv support
add webdav file browser
fixed network timeout for load video
fixed panic after cancel login
fixed abnormal focus when login after add server
fixed server list url display

0.5.0 (2024-5-22)
add danmu plugin integration
add video flip and subtitle sync support for player
add video equalizer setting
add episode selector on player view
add new option `Always on top` for desktop platform
add Czech localization
support `MusicView` and `PlayList`
forward nsp add startup logo

0.4.4 (2023-1-28)
add proxy option for http request
sync filter setting with official media player
add setting entry from server add tab
fix osd lock touch gesture
fix wrong toggle icon after seek when paused
fix crash when open filter

0.4.3 (2023-1-19)
add logout from setting tab
player view add touch gesture
upgrade ffmpeg 6.1.1
fix series tab viewed badge
fix device name under macOS

0.4.2 (2023-1-09)
add close button for series/collection
add lock button for player view
auto hide osd on loading end
fix login disclaimer after switch server
fix cannot trigger loading next page after refresh

0.4.1 (2023-11-26)
add tap control for progress slider
add volume control for video
add play progress on more page
add login disclaimer display
fixed server selection by joystick
fix home tab auto refresh

0.4.0 (2023-11-16)
add music album support*
save video quality to config
add option of player_inmemory_cache
improve password input
fix option for speed control
fix osd show timeout

0.3.4 (2023-11-10)
add option for open debug layer
add support of clear search history
improve url check for server add
fix osd navigate with dpad/analog stick

0.3.3 (2023-11-8)
movie collection support
add filter for media collection
add speed up feature when pressed on
add play/stop action when double click
upgrade ffmpeg to release/6.1

0.3.2 (2023-9-27)
add new option forceDirectPlay
support chapter select
support subtitle/audio track selection on transcode play
fix trancode codec type
fix crash on exit when playing media

0.3.1(2023-9-18)
switch: FFmpeg: support vp9 hwdec
server list support user selection
login quick connect support
fix crash when http exception

0.3.0 (2023-9-8)
switch: FFmpeg: Update to 6.0 with hwaccel backend, Thanks to averne
set mpv option subs-fallback to yes
complete server list selector
fix searies tab layout
fix search result not update when delete charactor
fix: setting selection which required restart

If external subtitle didn't display correctly, please put your font to /switch/Swichfin/subfont.ttf
Post here any kind of bug/suggestions.
Enjoy!

Thanks to​

 
Last edited by dragonflylee,
Hi @dragonflylee ,

Sorry I haven't been able to test the app until recently. Just tried the latest build today!

Seem the thumbnail generation is now broken on the last build. both with Switchfin-deko3d-30be9eb and Switchfin-opengl-30be9eb.
2024032413215400-DFA81AB57355EF9D9827B6FD8A23533B.jpg
 
  • Like
Reactions: Halbour
This is extremely well done! Very impressed by how well the UI works and flows. Absolute top tier homebrew and thanks a lot @dragonflylee.

Eh I'm not sure about that, the UI does look clean and it's easy to browse but once you're in the player I have to say that it's one of the most unintuitive experiences I've ever had with media playback, maybe the worst one of my life.

Pausing the playback should bring up the UI with the progress bar and let you scroll through the buffer with the joystick while the d-pad switches though the different options. Instead, pausing just shows a loading icon, which is completely wrong and counter intuitive because nothing is loading. There should either be a pause icon or nothing at all, or better yet, the player UI with the bar.

Enabling subtitles shouldn't be done through a completely separate menu with a different button, it should be one of the buttons in the player UI, which should just appear when pausing.

The app works great though, and once you get used to it's very unique and crappy controls, it's a breeze. It plays perfectly and doesn't crash so while I don't like the UI much, I can say I have used it quite a bit without issues.
 
Eh I'm not sure about that, the UI does look clean and it's easy to browse but once you're in the player I have to say that it's one of the most unintuitive experiences I've ever had with media playback, maybe the worst one of my life.

Pausing the playback should bring up the UI with the progress bar and let you scroll through the buffer with the joystick while the d-pad switches though the different options. Instead, pausing just shows a loading icon, which is completely wrong and counter intuitive because nothing is loading. There should either be a pause icon or nothing at all, or better yet, the player UI with the bar.

Enabling subtitles shouldn't be done through a completely separate menu with a different button, it should be one of the buttons in the player UI, which should just appear when pausing.

The app works great though, and once you get used to it's very unique and crappy controls, it's a breeze. It plays perfectly and doesn't crash so while I don't like the UI much, I can say I have used it quite a bit without issues.

osd issue for pause was fixed by latest nightly when "Show OSD when paused" turned on
 
  • Love
  • Like
Reactions: SimisFul and Djakku
Eh I'm not sure about that, the UI does look clean and it's easy to browse but once you're in the player I have to say that it's one of the most unintuitive experiences I've ever had with media playback, maybe the worst one of my life.

Pausing the playback should bring up the UI with the progress bar and let you scroll through the buffer with the joystick while the d-pad switches though the different options. Instead, pausing just shows a loading icon, which is completely wrong and counter intuitive because nothing is loading. There should either be a pause icon or nothing at all, or better yet, the player UI with the bar.

Enabling subtitles shouldn't be done through a completely separate menu with a different button, it should be one of the buttons in the player UI, which should just appear when pausing.

The app works great though, and once you get used to it's very unique and crappy controls, it's a breeze. It plays perfectly and doesn't crash so while I don't like the UI much, I can say I have used it quite a bit without issues.

As a developer these kind of responses really grind my gears.

Video playback itself is one of the hardest, if not the hardest things to manage properly on any device. The videos play and they play stable AF for a such an early release. It practically works right off the bat and since you are able to hack your switch you should be able to work around a piece of menu you don't like.

You say it yourself: it plays perfectly and doesn't crash so that sounds to me it does more than it promises?
If you don't like the UI: create a pull request and fix it yourself or try to deliver feedback in a polite manner. This is an impressive piece of homebrew already, end of story.

Cheers.
 
I wrote a similar reply but at the time GBAtemp gave me an error so I let it go but complety agree. Priority is function and its does its job amazingly well considering there are not many jellyfish clients app on mobile and certainly not homebrewed devices.
 
As a developer these kind of responses really grind my gears.

Video playback itself is one of the hardest, if not the hardest things to manage properly on any device. The videos play and they play stable AF for a such an early release. It practically works right off the bat and since you are able to hack your switch you should be able to work around a piece of menu you don't like.

You say it yourself: it plays perfectly and doesn't crash so that sounds to me it does more than it promises?
If you don't like the UI: create a pull request and fix it yourself or try to deliver feedback in a polite manner. This is an impressive piece of homebrew already, end of story.

Cheers.


I didn't mean to be impolite with my response, this was meant as constructive criticism and I also suggested solutions for all the negative points I highlighted. As you said, the playback is the most important part and I have already mentionned that it was working perfectly well.

I wouldn't say it does more than it promises since it is a video player so at the very least the expectation is that it will be able to play videos. The fact that it plays this well on this hardware is very impressive but that's not more than it promises, it's still the minimum you should expect.
I'm already happy that it lets you browse your library with a snappy and elegant UI that shows the normal thumbnails you would expect to see. That part could have just been a basic list and yet we're being gifted this better experience. I'm glad that it supports subtitles and that the font looks good and renders perfectly well. I appreciate this client a lot, I only intended on giving my own opinions on what could be made better but I could have skipped that first sentence in my last response.

Cheers.
 
  • Like
Reactions: Djakku
This is the best thing ever! Great work

The more devices that support jellyfish the closer I can get to ditching plex for good
This! I always wanted a PLEX client for the Switch but that never happened.
Now we have this so I'll finally look into installing Jellyfish on my server. :)
 
Can watch videos if I just continue something from the main screen.

Unable to browse folders. NOT PLAYLISTS actual folders.
 
Hi @dragonflylee ,

Sorry I haven't been able to test the app until recently. Just tried the latest build today!

Seem the thumbnail generation is now broken on the last build. both with Switchfin-deko3d-30be9eb and Switchfin-opengl-30be9eb.
View attachment 427611
@dragonflylee

I installed the nightly build on my switch, specified my server, but I don't get any images no matter what I do, what can I do?
 
  • Like
Reactions: Thorhax
Are you KIDDING me? We're getting Jellyfin for the Switch?

I'm unshelving my ol'reliable RIGHT NOW. Want to get to test this. Already have like 4 or 5 jellyfin clients, but it's just phone screen are so smol, desktop PC is desktop, whereas the Switch gives a pretty decent experience while docked. Play Monster Hunter, then while you pause for lunch connect the Jellyfin to music folder for some more Monster Hunter comfy.

If this works, it would basically allow me to fully de-"smart" my TV and set up the Switch as the docked media station until the day I somehow get a Steam Deck or a fanless micro-PC.
 
Hi, i have the same problem with theneweset nughtlybuild. idk
yes, this build didn't resolve the problem but print more debug info when you turn on Debug View

so try keep Debug View turned on, and reproduce the problem, and feedback the screenshot of log
 
yes, this build didn't resolve the problem but print more debug info when you turn on Debug View

so try keep Debug View turned on, and reproduce the problem, and feedback the screenshot of log
Hey, I have the latest build installed, scrolled through a bit and started a short film. Here is the shot of the debug view.
It also says that there are two configs. Where can I find them so that I can delete one?
 

Attachments

  • IMG_20240710_134807143.jpg
    IMG_20240710_134807143.jpg
    1.2 MB · Views: 56

Site & Scene News

Popular threads in this forum