Skip to content

feat(plex): add plex integration#399

Draft
dylfrancis wants to merge 9 commits into
lklynet:testfrom
dylfrancis:feature/plex-integration
Draft

feat(plex): add plex integration#399
dylfrancis wants to merge 9 commits into
lklynet:testfrom
dylfrancis:feature/plex-integration

Conversation

@dylfrancis
Copy link
Copy Markdown
Contributor

@dylfrancis dylfrancis commented Jun 3, 2026

Addresses #63

Summary

  • Added a PlexClient service implementing Plex's PIN-based OAuth flow (generate PIN, build app.plex.tv auth URL, poll for token, validate token) plus server discovery via plex.tv/api/v2/resources.
  • Added Plex Media Server operations: identity/machineIdentifier capture, music library create + location reconcile, library scan, paginated track listing, and regular audio playlist create/replace/delete.
  • Wired Plex into the Weekly Flow playlist manager: builds one regular playlist per flow/shared playlist from indexed tracks (Plex has no .nsp smart-playlist equivalent), grouped by the weekly-flow subfolder, with a per-playlist fingerprint cache to skip no-op rebuilds and a non-blocking background catch-up after scans.
  • Added Plex settings endpoints (/settings/plex/auth/pin, /auth/check, /resources, /test, /sync), persisted plex integration config (url, token, clientId, machineIdentifier, downloadsPath) with the token encrypted, and protected token/clientId from being wiped by blank values on save.
  • Added a "Plex downloads path" override so the library points at the path the Plex container sees when it differs from Aurral's host path.
  • Added the Plex Settings UI: OAuth connect/reconnect, auto-populating server dropdown, server URL, downloads-path field, Test connection, and Sync-to-Plex-now.
  • Named Plex playlists by the bare flow name (no [A]/[AS] prefix) and clean up any previously-created prefixed playlists.

@dylfrancis dylfrancis marked this pull request as draft June 3, 2026 20:44
@dylfrancis
Copy link
Copy Markdown
Contributor Author

dylfrancis commented Jun 3, 2026

@lklynet still some testing to be done and quirks i need to figure out, but figured i'd put up the PR as it's mostly done for you to take a look at.

@dylfrancis dylfrancis changed the base branch from main to test June 3, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant