2025-10-28 06:14:51 +01:00
<h1>
<img src="assets/plezy.png" alt="Plezy Logo" height="24" style="vertical-align: middle;" />
Plezy
</h1>
2025-10-18 00:05:20 +02:00
2026-08-05 05:28:48 +02:00
A modern client for Plex, Jellyfin, and Emby on desktop, mobile, and TV. Built with Flutter for native performance and a clean interface.
2025-10-18 00:05:20 +02:00
2026-05-18 10:53:16 +02:00
<p>
<a href="https://plezy.app">Website</a> ·
<a href="https://plezy.app/#screenshots ">Screenshots</a> ·
<a href="#download ">Download</a> ·
<a href="CONTRIBUTING.md">Contributing</a> ·
<a href="LICENSE">License</a>
</p>
2025-10-28 06:14:51 +01:00
<p align="center">
2026-05-18 06:16:26 +02:00
<img src="assets/readme-showcase.webp" alt="Plezy mobile screenshots" width="900" />
2025-10-28 06:14:51 +01:00
</p>
2025-10-18 00:05:20 +02:00
## Download
2026-07-31 21:18:53 +02:00
<a href='https://apps.apple.com/app/apple-store/id6754315964?pt=128238902&ct=GitHub&mt=8'><img height='60' alt='Download on the App Store' src='./assets/app-store-badge.png'/></a>
<a href='https://play.google.com/store/apps/details?id=com.edde746.plezy&referrer=utm_source%3Dgithub%26utm_campaign%3Dreadme_badge'><img height='60' alt='Get it on Google Play' src='./assets/play-store-badge.png'/></a>
2026-02-03 15:07:05 +01:00
<a href='https://www.amazon.com/gp/product/B0GK65CVS1'><img height='60' alt='Available at the Amazon App Store' src='./assets/amazon-badge.png'/></a>
2026-07-31 22:45:34 +02:00
<a href='https://get.microsoft.com/installer/download/9n5r1s1t68h7?referrer=appbadge&cid=github'><img height='60' alt='Get it from Microsoft' src='./assets/microsoft-badge.png'/></a>
2025-11-02 04:33:35 +01:00
2026-05-18 10:53:16 +02:00
| Platform | Download |
| --- | --- |
| macOS | [DMG (x64, arm64) ](https://github.com/edde746/plezy/releases/latest/download/plezy-macos.dmg ) |
| Linux x64 | [.deb ](https://github.com/edde746/plezy/releases/latest/download/plezy-linux-x64.deb ) · [.rpm ](https://github.com/edde746/plezy/releases/latest/download/plezy-linux-x64.rpm ) · [.pkg.tar.zst ](https://github.com/edde746/plezy/releases/latest/download/plezy-linux-x64.pkg.tar.zst ) · [portable tar.gz ](https://github.com/edde746/plezy/releases/latest/download/plezy-linux-x64.tar.gz ) |
| Linux arm64 | [.deb ](https://github.com/edde746/plezy/releases/latest/download/plezy-linux-arm64.deb ) · [.rpm ](https://github.com/edde746/plezy/releases/latest/download/plezy-linux-arm64.rpm ) · [.pkg.tar.zst ](https://github.com/edde746/plezy/releases/latest/download/plezy-linux-arm64.pkg.tar.zst ) · [portable tar.gz ](https://github.com/edde746/plezy/releases/latest/download/plezy-linux-arm64.tar.gz ) |
Package managers:
2026-04-06 00:45:56 +02:00
- [Nix ](https://search.nixos.org/packages?channel=unstable&query=plezy ) - Community package by [@mio-19 ](https://github.com/mio-19 ) and [@MiniHarinn ](https://github.com/MiniHarinn )
2026-01-26 15:29:50 +01:00
- **Homebrew** (macOS):
```bash
brew tap edde746/plezy https://github.com/edde746/plezy
brew install --cask plezy
` ``
2026-08-11 19:50:40 -04:00
- [Pacman](https://archlinux.org/packages/extra/x86_64/plezy/) (Arch Linux) - Official package:
2026-03-12 13:15:39 +01:00
` ``bash
2026-08-11 19:50:40 -04:00
sudo pacman -S plezy
2026-03-12 13:15:39 +01:00
` ``
2026-03-03 06:35:15 +01:00
- **WinGet** (Windows):
` ``bash
2026-05-18 10:53:16 +02:00
winget install edde746.Plezy
2026-03-03 06:35:15 +01:00
` ``
2025-10-18 00:05:20 +02:00
## Features
2026-04-20 13:52:19 +02:00
### <img src="assets/readme_icons/browse.svg" height="20" alt="" align="center" /> Browse & Discover
2026-07-31 21:18:53 +02:00
- Libraries, collections, and playlists — video and audio
2026-05-11 05:29:31 +02:00
- Discover hub — Continue Watching, Next Up, trending, and recommendations
2026-08-05 05:28:48 +02:00
- Cross-server search across every connected Plex, Jellyfin, and Emby server
2026-04-20 13:52:19 +02:00
- Filtering, sorting, and alphabetical jump navigation
2026-07-31 21:18:53 +02:00
- Folder browsing and folder playback — home-video libraries open in folder view
- Resolution, HDR/Dolby Vision, and audio-format badges on cards and detail pages
2026-08-05 05:28:48 +02:00
- Favorites and unwatched library filters[^mb]
2026-04-20 13:52:19 +02:00
- Extras — trailers, deleted scenes, behind-the-scenes
2026-07-31 21:18:53 +02:00
### <img src="assets/readme_icons/explore.svg" height="20" alt="" align="center" /> Explore & Requests
- Explore tab — watchlist, trending, popular, and recommendation rows from Plex Discover[^plex], Trakt, MyAnimeList, AniList, Simkl, and Seerr[^connect]
- Search any connected catalog source
- Catalog titles matched back to your own libraries by external ID
- Seerr — request movies and shows with per-season, 4K, and advanced destination options, and see request status inline
- Watchlist sync — add and remove titles on Plex, Trakt, MyAnimeList, AniList, and Simkl from anywhere in the app
2026-04-20 13:52:19 +02:00
### <img src="assets/readme_icons/playback.svg" height="20" alt="" align="center" /> Playback
2025-12-20 06:42:20 +01:00
- Wide codec support (HEVC, AV1, VP9, and more)
2026-07-31 21:18:53 +02:00
- HDR and Dolby Vision[^hdr]
- Direct play, or transcode presets from 240p/320 kbps to 1080p/20 Mbps
- Multi-version switching with per-version file details
2026-04-20 13:52:19 +02:00
- Full ASS/SSA subtitles with customizable styling
2026-07-31 21:18:53 +02:00
- Online subtitle search & download[^plex]
- Audio & subtitle choices remembered per title, or follow the server's per-episode selections
2025-12-20 06:42:20 +01:00
- Progress sync and resume
2026-04-20 13:52:19 +02:00
- Auto-play next episode with skip intro / skip credits
2026-05-11 05:29:31 +02:00
- Chapter navigation with thumbnail scrub previews
2026-07-31 21:18:53 +02:00
- Playback speed from 0.25x to 8x, audio sync offset, sleep timer (fixed durations or end of video)
- Video zoom 50-200% with pinch, presets, and hotkeys
- Audio passthrough[^pass], stereo downmix with center-channel boost, and loudness normalization
- File Info sheet — every version, file, and stream the server reports
- Ambient lighting and GLSL shader presets[^mpv]
- Picture-in-Picture[^pip]
- Refresh-rate matching[^rrm]
- External player launch (VLC, MX Player, etc.) with progress sync back[^android]
### <img src="assets/readme_icons/music.svg" height="20" alt="" align="center" /> Music
- Music libraries — artist, album, and track browsing with square artwork
- Album and artist screens with play, shuffle, and Instant Mix
- Gapless playback with a full play queue — reorder, remove, play next, add to queue
- Now Playing with synced lyrics[^lyrics], persistent mini-player, and sleep timer
- Background playback with lock-screen, media-key, and notification controls[^bgaudio]
- Offline playback of downloaded albums and tracks
- Streaming quality presets — Original, 320, 192, or 128 kbps
2026-04-20 13:52:19 +02:00
### <img src="assets/readme_icons/live-tv.svg" height="20" alt="" align="center" /> Live TV & DVR
2026-07-31 21:18:53 +02:00
- Live TV channel browsing, tuning, and favorites
- EPG guide with What's On and per-show schedules
- DVR recording rules, scheduled recordings, and a rememberable recording target library[^plex]
2026-05-11 05:29:31 +02:00
- Multi-server Live TV support where available
2026-02-18 16:34:50 +01:00
2026-04-20 13:52:19 +02:00
### <img src="assets/readme_icons/downloads.svg" height="20" alt="" align="center" /> Downloads & Offline
2026-07-31 21:18:53 +02:00
- Download movies, shows, and music for offline playback[^dl]
2026-04-20 13:52:19 +02:00
- Background queue with pause / resume
2026-07-31 21:18:53 +02:00
- Sync rules for automatic downloads, with per-show "Include Specials"
2026-04-20 13:52:19 +02:00
- Offline browsing with watch state sync-back on reconnect
2025-12-20 06:42:20 +01:00
2026-04-20 13:52:19 +02:00
### <img src="assets/readme_icons/watch-together.svg" height="20" alt="" align="center" /> Watch Together
2025-12-20 06:42:20 +01:00
- Synchronized playback with friends
2026-04-20 13:52:19 +02:00
- Real-time play / pause / seek sync
### <img src="assets/readme_icons/integrations.svg" height="20" alt="" align="center" /> Integrations
2026-07-31 21:18:53 +02:00
- Discord Rich Presence[^desktop]
- Trakt, MyAnimeList, AniList, and Simkl — ratings, watched sync, and real-time scrobbling[^rt]
2026-04-20 13:52:19 +02:00
- Plezy Remote — control desktop and TV from mobile
2026-07-31 21:18:53 +02:00
- Watch Next row and tvOS Top Shelf[^shelf]
2026-04-20 13:52:19 +02:00
### <img src="assets/readme_icons/customization.svg" height="20" alt="" align="center" /> Platform & Customization
- Desktop, mobile, and TV — full D-pad, keyboard, and gamepad support
2026-08-05 05:28:48 +02:00
- Multiple servers at once — Plex, Jellyfin, and Emby side by side
2026-07-31 21:18:53 +02:00
- Profiles with per-profile downloads, watch state, and settings; Plex Home switching with PIN
2026-08-05 05:28:48 +02:00
- Jellyfin and Emby local-server discovery and multiple URLs per server; Quick Connect sign-in[^jf]
2026-07-31 21:18:53 +02:00
- TV layout options — corner spotlight backdrop, full-card artwork, and Force TV mode on desktop
- Customizable keyboard shortcuts[^desktop]
2026-07-02 04:07:26 +02:00
- Metadata and artwork editing
2026-05-17 15:39:49 +02:00
- Settings import/export
2026-07-31 21:18:53 +02:00
- Localized in English plus 21 translations
[^jf]: Jellyfin only.
2026-08-05 05:28:48 +02:00
[^mb]: Jellyfin and Emby only.
2026-07-31 21:18:53 +02:00
[^plex]: Plex only.
[^connect]: Requires connecting the service under Settings > Services.
2026-08-07 19:25:13 +02:00
[^hdr]: In-app HDR toggle on Windows, macOS, iOS, tvOS, and Linux — Linux needs a colour-managed Wayland compositor. Dolby Vision on Android and Apple TV.
2026-07-31 21:18:53 +02:00
[^pass]: Desktop, Android TV, and Apple TV.
[^mpv]: Requires the mpv player backend — unavailable on iOS and tvOS, and Android defaults to ExoPlayer.
[^pip]: Android, iOS, and macOS — not on Android TV or Apple TV.
[^rrm]: Windows, Android, and tvOS.
[^android]: Progress sync on Android.
[^lyrics]: Where your server provides lyrics.
[^bgaudio]: tvOS pauses music when the app is backgrounded.
[^dl]: Not available on tvOS.
[^desktop]: Desktop only.
[^rt]: Real-time scrobbling on Trakt and Simkl; MyAnimeList and AniList update on completion.
[^shelf]: Android TV / Fire TV and tvOS.
2025-10-18 00:05:20 +02:00
2025-12-20 06:42:20 +01:00
## Building from Source
2025-10-18 00:05:20 +02:00
2025-12-20 06:42:20 +01:00
### Prerequisites
2026-07-31 21:18:53 +02:00
- Flutter SDK 3.44.0+
2026-08-05 05:28:48 +02:00
- A Plex account, or a Jellyfin or Emby server with user credentials
2025-12-20 06:42:20 +01:00
### Setup
2025-10-18 00:05:20 +02:00
` ``bash
git clone https://github.com/edde746/plezy.git
cd plezy
flutter pub get
2026-05-18 10:53:16 +02:00
scripts/codegen.sh
2025-10-18 00:05:20 +02:00
flutter run
` ``
### Code Generation
2026-05-18 10:53:16 +02:00
After modifying model classes or other generated sources:
` ``bash
scripts/codegen.sh
` ``
After modifying translations:
` ``bash
dart run slang
` ``
### Local Checks
` ``bash
scripts/ci_checks.sh
` ``
To install the same pre-commit checks locally:
2025-10-18 00:05:20 +02:00
` ``bash
2026-05-18 10:53:16 +02:00
scripts/setup_hooks.sh
2025-10-18 00:05:20 +02:00
` ``
2026-07-31 21:18:53 +02:00
End-to-end tests (Android emulator plus a Dockerized Jellyfin fixture):
` ``bash
2026-08-16 19:16:40 +02:00
python3 scripts/maestro/run_maestro.py basic
2026-07-31 21:18:53 +02:00
` ``
2026-05-18 10:53:16 +02:00
## Contributing
See [CONTRIBUTING.md ](CONTRIBUTING.md ) for development workflow, formatting, tests, and translation guidelines.
## License
Plezy is licensed under [GPL-3.0 ](LICENSE ).
2025-10-18 00:05:20 +02:00
## Acknowledgments
- Built with [Flutter ](https://flutter.dev )
2026-08-05 05:28:48 +02:00
- Supports [Plex Media Server ](https://www.plex.tv ), [Jellyfin ](https://jellyfin.org ), and [Emby ](https://emby.media )
2026-05-18 10:53:16 +02:00
- Playback powered by [mpv ](https://mpv.io ), [MPVKit ](https://github.com/mpvkit/MPVKit ), Android [ExoPlayer ](https://developer.android.com/media/media3/exoplayer ), [libass-android ](https://github.com/peerless2012/libass-android ), and [libmpv-android ](https://github.com/jarnedemeulemeester/libmpv-android )