Skip to content

thcolin/pleNx

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

688 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

pleNx

/plษ›n.ษ›ks/ โ€” Plex ร— NX

๐ŸŽฎ ๐Ÿ“บ - A third-party native, controller-first Plex client for Nintendo Switch.

Browse and play your movies and shows from your Plex Media Server, with a fully native interface designed for the gamepad. Also (should) runs on Windows, macOS, Linux, PS4 and PS Vita.

build NS PSVita download nightly sponsor

Note

pleNx is a fork of Switchfin (Nitendo Switch Jellyfin client) fully migrated to the Plex API, with a redesigned interface. It is a third-party project, not affiliated with or endorsed by Plex.


Screenshots

Home Movie Library
Home Movie detail Movies library
Season Search Downloads
Season Search Downloads

Features

  • Sign in with Plex โ€” type a 4-character code on plex.tv/link, then pick your server and your Plex Home profile (PIN-protected profiles supported).
  • Home mirrors your server โ€” Continue Watching followed by every hub configured on your Plex, in the order your server returns them.
  • Libraries in the sidebar โ€” one entry per library, each with Home, Suggestions, Collections and Genres views, and server-side sorting.
  • Rich detail pages โ€” full-bleed backdrop with the title logo, cast with full person pages (filmography), and related rows pulled from your server.
  • Season pages โ€” artwork, episode count and synopsis, with one-tap full-season download.
  • Quick actions on any poster โ€” press X (or long-press): go to show, go to season, mark watched, download.
  • Plex Watchlist โ€” browse your account watchlist in the sidebar, add or remove any movie or show from its detail page or the quick actions menu.
  • Playback with MPV โ€” direct play and universal transcode (HLS), resume, chapters, external and embedded subtitles, audio track selection.
  • Offline downloads for playback without a connection (original quality).
  • Remote file browser for WebDAV / Apache / Nginx / FTP / SFTP servers.
  • External drive support on Switch via libusbhsfs.
  • Available in 14 languages.

Tip

MPV decodes H.264, H.265, VP8, VP9 and AV1 video; Opus, FLAC, MP3, AAC, AC-3, E-AC-3, TrueHD and DTS audio; and SRT, VTT, SSA/ASS and DVDSUB subtitles.

Install on Nintendo Switch

  1. Copy pleNx.nro to sdmc:/switch/ and launch it from the homebrew menu.
  2. On first launch in applet mode, pleNx offers to install a HOME menu tile: press the button, confirm, and the app relaunches as a regular title with full memory (required for video playback). Alternatively, hold R while launching any game (title takeover).
  3. Sign in with your Plex account at plex.tv/link and enjoy.

Important

Video playback needs full-memory mode. Applet mode is fine for browsing, but install the HOME tile (or use title takeover) before starting a movie.

Desktop builds for Windows, macOS and Linux are attached to every release, with nightly artifacts on nightly.link.

Controls during playback

Gamepad Keyboard Action
A space Play / Pause
B esc Stop
Y o Toggle OSD
X f4 Menu
R / L ] / [ Seek forward / back
+ f1 Video profile
R stick f2 Video quality
L stick f3 Playback speed

System requirements

  • Nintendo Switch with Atmosphรจre CFW (full-memory mode for playback)
  • Windows 7 or later with DirectX 11.1 support
  • macOS 10.15 or later (Intel or Apple Silicon)
  • Linux Flatpak (x86_64 / arm64v8) with OpenGL 3 support

FAQ

Subtitles don't show up? Drop any TrueType font at sdmc:/switch/pleNx/subfont.ttf.

macOS won't open the app? Clear the quarantine attribute:

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

How do I enable an external drive on Switch? Set ums in config.json:

{
  "setting": {
    "ums": true
  }
}

Building from source

pleNx is C++17, built on borealis for the UI and mpv for playback.

git clone https://github.com/thcolin/pleNx.git --recurse-submodules --shallow-submodules

Nintendo Switch

All-in-one Docker script (mirrors the CI):

./scripts/build-switch.sh                  # deko3d driver (recommended)
DRIVER=opengl ./scripts/build-switch.sh    # OpenGL fallback

Or with a local devkitPro toolchain:

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 pleNx.nro -j$(nproc)

# debug over the network
nxlink -a <SWITCH_IP> -p pleNx/pleNx.nro -s pleNx.nro --args -d -v

Desktop (macOS / Linux)

cmake -B build_desktop -G Ninja -DPLATFORM_DESKTOP=ON
cmake --build build_desktop

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

Tip

The desktop UI test harness in scripts/ui-audit/ drives the app with keyboard events and captures window screenshots; replayable scenarios live alongside it. On macOS, grant your terminal Accessibility and Screen Recording permissions first.

Migration notes from Jellyfin to Plex are documented in PLEX_MIGRATION.md, and the visual redesign in UI_REDESIGN.md.

Support

If pleNx is useful to you, consider sponsoring the project โ€” it directly funds development time and devices to test on.

Acknowledgements

pleNx stands on the shoulders of the homebrew and open-source community:

About

๐ŸŽฎ ๐Ÿ“บ pleNx - Third-party native Plex client for Nintendo Switch & PS Vita

Resources

License

Stars

Watchers

Forks

Contributors

Languages

  • C++ 67.0%
  • Java 17.8%
  • Shell 4.4%
  • HTML 3.2%
  • CMake 2.2%
  • CSS 1.9%
  • Other 3.5%