Matt Vogel e9218e0a3d Fix duplicate Plex notifications and Flutter app name on login
Connection probe requests in testConnectionWithLatency were sent without
X-Plex-Client-Identifier, X-Plex-Product, or X-Plex-Device-Name headers.
Plex treated each anonymous probe as a new unknown device and fired a
"New Device" notification for every server tested (one per shared/owned
server), while displaying "Flutter" as the device name from the HTTP
user-agent.

Pass clientIdentifier through findBestWorkingConnection and all connection
test helpers so every probe request identifies itself as "Plezy" with the
persistent client UUID. This prevents spurious notifications and ensures
the device shows the correct app name in Plex's device list.

https://claude.ai/code/session_01V5VraujkNmk5GGPLyZ33fN
2026-02-26 08:21:06 -05:00
2026-02-26 12:56:02 +01:00
2026-02-26 04:10:17 +00:00
2026-02-07 20:09:30 +01:00
2025-11-01 08:03:47 +01:00
2025-10-30 19:50:50 +01:00
2025-10-22 12:45:29 +02:00
2025-10-22 12:45:29 +02:00
2025-10-22 12:45:29 +02:00

Plezy Logo Plezy

A modern Plex client for desktop and mobile. Built with Flutter for native performance and a clean interface.

Plezy macOS Home Screen

More screenshots in the screenshots folder

Download

Download on the App Store Get it on Google Play Available at the Amazon App Store

Features

🔐 Authentication

  • Sign in with Plex
  • Automatic server discovery and smart connection selection
  • Persistent sessions with auto-login

📚 Media Browsing

  • Browse libraries with rich metadata
  • Advanced search across all media
  • Collections and playlists

🎬 Playback

  • Wide codec support (HEVC, AV1, VP9, and more)
  • HDR and Dolby Vision (not Linux)
  • Full ASS/SSA subtitle support
  • Audio and subtitle preferences synced with Plex profile
  • Progress sync and resume
  • Auto-play next episode

📺 Live TV & DVR

  • EPG guide grid
  • Channel tuning
  • DVR recording rules and scheduled recordings
  • Multi-server DVR support

📥 Downloads

  • Download media for offline viewing
  • Background downloads with queue management

👥 Watch Together

  • Synchronized playback with friends
  • Real-time play/pause and seek sync

Building from Source

Prerequisites

  • Flutter SDK 3.8.1+
  • A Plex account with server access

Setup

git clone https://github.com/edde746/plezy.git
cd plezy
flutter pub get
dart run build_runner build
flutter run

Code Generation

After modifying model classes:

dart run build_runner build --delete-conflicting-outputs

Acknowledgments

S
Description
Modern cross-platform Plex & Jellyfin client built with Flutter
Readme GPL-3.0
223 MiB
Languages
Dart 73.8%
GLSL 13.3%
Kotlin 4.3%
C++ 2.3%
Python 1.7%
Other 4.3%