edde746/plezy
Flutter के साथ निर्मित आधुनिक क्रॉस-प्लेटफॉर्म प्लेक्स और जेलीफिन क्लाइंट
- Stars
- 3.5 हज़ार
- Forks
- 323
- अंतिम पुश (UTC)
- 18 सित॰ 2026
- प्रोजेक्ट स्थिति
- सक्रिय
तकनीकी विषय
उपयोग की गई निर्भरताएँ
निर्भरता सूची 66 आइटम
- flutter
{"sdk":"flutter"} - clock
^1.1.2 - intl
^0.20.2 - json_annotation
^4.12.0 - shared_preferences
^2.5.4 - cached_network_image_ce
^4.9.0 - http
^1.2.0 - url_launcher
^6.3.0 - uuid
^4.4.0 - window_manager
^0.5.1 - logger
^2.7.0 - package_info_plus
^9.0.0 - device_info_plus
^12.3.0 - provider
^6.1.2 - flex_color_picker
^3.8.0 - qr_flutter
^4.1.0 - slang
^4.14.0 - slang_flutter
^4.14.0 - duration
^4.0.3 - connectivity_plus
{"git":{"url":"https://github.com/fluttercommunity/plus_plugins","ref":"bf04cdf66598dc3fca274b8b1db2b92b0bf6b73e","path":"packages/connectivity_plus/connectivity_plus"}} - os_media_controls
{"git":{"url":"https://github.com/edde746/media_controls","ref":"a27208e641790029ac54d825b97508575caee1a7"}} - rate_limiter
^1.0.0 - wakelock_plus
{"path":"packages/wakelock_plus"} - path_provider
^2.1.0 - path
^1.9.0 - universal_gamepad
^1.5.7 - drift
^2.31.0 - crypto
^3.0.7 - cryptography
^2.9.0 - file_picker
^11.0.2 - saf_util
{"path":"packages/saf_util"} - saf_stream
^3.1.0 - material_symbols_icons
^4.2951.0 - web_socket_channel
^3.0.1 - dart_discord_presence
^1.2.0 - flutter_svg
^2.2.3 - background_downloader
{"git":{"url":"https://github.com/edde746/background_downloader","ref":"1bcc9978e9b5e503dd08176cc423cfabee703761"}} - sentry_flutter
^9.30.0 - auto_updater
{"git":{"url":"https://github.com/edde746/auto_updater","path":"packages/auto_updater","ref":"9e150f7"}} - win_http
^0.2.2 - collection
^1.18.0 - freezed_annotation
^3.1.0 - xml
^7.0.1 - string_similarity
^2.2.0 - unorm_dart
^0.3.2 - archiveडेवलपमेंट
^4.0.9 - flutter_testडेवलपमेंट
{"sdk":"flutter"} - flutter_lintsडेवलपमेंट
^6.0.0 - mgenware_dart_lintsडेवलपमेंट
^8.0.0 - fake_asyncडेवलपमेंट
^1.3.3 - stream_channelडेवलपमेंट
^2.1.4 - build_runnerडेवलपमेंट
^2.13.0 - json_serializableडेवलपमेंट
^6.7.1 - slang_build_runnerडेवलपमेंट
^4.14.0 - dart_code_linterडेवलपमेंट
^4.1.8 - drift_devडेवलपमेंट
^2.28.3 - shared_preferences_platform_interfaceडेवलपमेंट
^2.4.0 - path_provider_platform_interfaceडेवलपमेंट
^2.1.0 - connectivity_plus_platform_interfaceडेवलपमेंट
^2.1.0 - shared_preferences_linuxडेवलपमेंट
^2.4.1 - shared_preferences_windowsडेवलपमेंट
^2.4.1 - path_provider_linuxडेवलपमेंट
^2.2.1 - path_provider_windowsडेवलपमेंट
^2.3.0 - plugin_platform_interfaceडेवलपमेंट
^2.1.0 - freezedडेवलपमेंट
^3.2.5 - analyzerडेवलपमेंट
10.2.0
रैंकिंग
मूल README
यह अंग्रेज़ी मूल स्नैपशॉट है। नवीनतम सामग्री GitHub पर देखें।
README खोलें / बंद करें
Plezy Logo Plezy
A modern client for Plex, Jellyfin, and Emby on desktop, mobile, and TV. Built with Flutter for native performance and a clean interface.
Website · Screenshots · Download · Contributing · License
Plezy mobile screenshots
Download
Download on the App Store Get it on Google Play Available at the Amazon App Store Get it from Microsoft
| Platform | Download |
|---|---|
| macOS | DMG (x64, arm64) |
| Linux x64 | .deb · .rpm · .pkg.tar.zst · .flatpak · portable tar.gz |
| Linux arm64 | .deb · .rpm · .pkg.tar.zst · .flatpak · portable tar.gz |
Install with a package manager
macOS — Homebrew
brew tap edde746/plezy https://github.com/edde746/plezy
brew install --cask plezy
Windows — WinGet
winget install edde746.Plezy
Linux — Flatpak
Install Flatpak with your distribution's package manager, download the bundle for your architecture above, then run:
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user flathub org.freedesktop.Platform//25.08
flatpak install --user ./plezy-linux-x64.flatpak
flatpak run com.edde746.plezy
On arm64, install plezy-linux-arm64.flatpak.
Sandbox, playback, and folder access
- Not on Flathub — the remote supplies the Freedesktop runtime only.
- Video playback needs a Wayland session; a pure X11 session shows the interface but cannot create the video plane.
- No host or home filesystem access; app data lives in
~/.var/app/com.edde746.plezy/. Add host folders through the desktop file chooser portal, and keep download folders writable. - Network, display, audio, and device access are enabled.
--device=all(Flatpak 1.14 compatibility) exposes more than GPUs and controllers; session-bus access stays filtered.
Arch Linux — Pacman
sudo pacman -S plezy
Fedora / Red Hat — DNF
Installation instructions · Community repository by @aldobarr.
Nix
Community package maintained by @mio-19 and @MiniHarinn.
aerynOS — Moss
sudo moss it plezy
Features
https://raw.githubusercontent.com/edde746/plezy/HEAD/assets/readme_icons/browse.svg Browse & Discover
- Libraries, collections, and playlists — video and audio
- Discover hub — Continue Watching, Next Up, trending, and recommendations
- Cross-server search across every connected Plex, Jellyfin, and Emby server
- Filtering, sorting, and alphabetical jump navigation
- 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
- Favorites and unwatched library filters[^mb]
- Extras — trailers, deleted scenes, behind-the-scenes
https://raw.githubusercontent.com/edde746/plezy/HEAD/assets/readme_icons/explore.svg 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
https://raw.githubusercontent.com/edde746/plezy/HEAD/assets/readme_icons/playback.svg Playback
- Wide codec support (HEVC, AV1, VP9, and more)
- 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
- Full ASS/SSA subtitles with customizable styling
- Online subtitle search & download[^plex]
- Audio & subtitle choices remembered per title, or follow the server's per-episode selections
- Progress sync and resume
- Auto-play next episode with skip intro / skip credits
- Chapter navigation with thumbnail scrub previews
- 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]
https://raw.githubusercontent.com/edde746/plezy/HEAD/assets/readme_icons/music.svg 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
https://raw.githubusercontent.com/edde746/plezy/HEAD/assets/readme_icons/live-tv.svg Live TV & DVR
- 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]
- Multi-server Live TV support where available
https://raw.githubusercontent.com/edde746/plezy/HEAD/assets/readme_icons/downloads.svg Downloads & Offline
- Download movies, shows, and music for offline playback[^dl]
- Background queue with pause / resume
- Sync rules for automatic downloads, with per-show "Include Specials"
- Offline browsing with watch state sync-back on reconnect
https://raw.githubusercontent.com/edde746/plezy/HEAD/assets/readme_icons/watch-together.svg Watch Together
- Synchronized playback with friends
- Real-time play / pause / seek sync
- Host handoff when the relay and every connected peer support safe transfers
- Automatic reconnect authenticates retained room membership; it never silently joins a reused room code.
Self-hosted relays must support authenticatedResume for recovery. Deploy the updated relay before updating clients.
Older relays still accept explicit create/join, but failed recovery requires joining or creating a room again.
https://raw.githubusercontent.com/edde746/plezy/HEAD/assets/readme_icons/integrations.svg Integrations
- Discord Rich Presence[^desktop]
- Trakt, MyAnimeList, AniList, and Simkl — ratings, watched sync, and real-time scrobbling[^rt]
- Plezy Remote — control desktop and TV from mobile
- Watch Next row and tvOS Top Shelf[^shelf]
https://raw.githubusercontent.com/edde746/plezy/HEAD/assets/readme_icons/customization.svg Platform & Customization
- Desktop, mobile, and TV — full D-pad, keyboard, and gamepad support
- Multiple servers at once — Plex, Jellyfin, and Emby side by side
- Profiles with per-profile downloads, watch state, and settings; Plex Home switching with PIN
- Jellyfin and Emby local-server discovery and multiple URLs per server; Quick Connect sign-in[^jf]
- TV layout options — corner spotlight backdrop, full-card artwork, and Force TV mode on desktop
- Customizable keyboard shortcuts[^desktop]
- Metadata and artwork editing
- Settings import/export
- Localized in English plus 21 translations
[^jf]: Jellyfin only. [^mb]: Jellyfin and Emby only. [^plex]: Plex only. [^connect]: Requires connecting the service under Settings > Services. [^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. [^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.
Building from Source
Prerequisites
- Flutter SDK 3.47.0+
- A Plex account, or a Jellyfin or Emby server with user credentials
Setup
git clone https://github.com/edde746/plezy.git
cd plezy
flutter pub get
scripts/codegen.sh
flutter run
Code generation
After modifying model classes or other generated sources:
scripts/codegen.sh
After modifying translations:
dart run slang
Packaging a Flatpak bundle
Packages an already fully resolved Linux release bundle — pinned libmpv and bundled libraries included, not a Flathub source-build manifest. Run it on Linux, on the same architecture as the bundle, after following the bundle preparation steps in the Linux release workflow: flutter build linux alone does not produce all the required bundled libraries.
Install the packaging tools (Debian/Ubuntu shown) plus the native-architecture SDK and runtime:
sudo apt-get update
sudo apt-get install -y flatpak flatpak-builder imagemagick
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user flathub org.freedesktop.Platform//25.08 org.freedesktop.Sdk//25.08
BUNDLE_DIR=build/linux/x64/release/bundle
python3 linux/packaging/build-flatpak.py --bundle "$BUNDLE_DIR" --arch x64 --output "$PWD"
That writes plezy-linux-x64.flatpak, installable with the Flatpak commands above; on arm64, use the prepared arm64 bundle directory and --arch arm64. Package from the checkout matching the bundle, since the version comes from pubspec.yaml.
Cross-architecture packaging needs native Flatpak tools, a registered binfmt interpreter, and the target SDK/runtime installed with flatpak install --user --arch=x86_64 (or aarch64) — never run Flatpak's namespace tools under emulation. Pass --arch x64 or --arch arm64 to the checker and the matching Flatpak architecture to flatpak run --arch=....
Check the installed package against the runtime (not just the SDK), then launch it on a Wayland desktop and exercise streaming, audio, downloads/offline playback, and file chooser portals:
python3 linux/packaging/check-flatpak.py
The check fails on a non-executable entry point or an unresolved bundled ELF dependency. A container without a GPU can use flatpak run --env=GALLIUM_DRIVER=softpipe com.edde746.plezy for software-rendered verification; this is not a hardware-decoding or HDR test.
Local checks
scripts/ci_checks.sh
To install the same pre-commit checks locally:
scripts/setup_hooks.sh
End-to-end tests (Android emulator plus a Dockerized Jellyfin fixture):
python3 scripts/maestro/run_maestro.py basic
Contributing
See CONTRIBUTING.md for development workflow, formatting, tests, and translation guidelines.
License
Plezy is licensed under GPL-3.0.
Acknowledgments
- Built with Flutter
- Supports Plex Media Server, Jellyfin, and Emby
- Playback powered by mpv via our mpv-build pipeline (started as a fork of MPVKit; the Android Kotlin/JNI glue descends from libmpv-android), Android ExoPlayer, and libass-android