3.1.0 #149
Gyarbij
announced in
Announcements
3.1.0
#149
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Plexist 3.1.0
Plexist 3.1.0 is a substantial reliability, matching, authentication, and persistence update building on the multi-service sync functionality introduced in 3.0.0.
This release significantly reworks how Plexist matches streaming-service tracks against Plex libraries, updates authentication handling for Spotify and Tidal, introduces versioned database migrations, reduces unnecessary Plex API traffic, and adds considerably more automated test coverage across the core sync pipeline.
Major Highlights
Major Plex track-matching overhaul
Spotify authentication updated
403 Forbiddenstartup/sync issue reported in [#138](Spotify returns 403 while starting sync #138).Tidal authentication fixed
tidalapi 0.8.11becauseSessionType.TIDALis no longer available.Bearertoken type when restoring Tidal sessions.SESSION_TYPEauthentication failure reported by users after the 3.0.0 release.Versioned database migrations
Persistent Plex cache improvements
plexapi.Trackreconstruction with lightweight cached track snapshots.plexapiversions.Improved application lifecycle
SIGTERMandSIGINT.Plex Matching Improvements
Track matching has received one of the largest internal changes since Plexist's initial matching implementation.
The matching pipeline now uses the following progression:
/library/matchesmatchingPlex's native matcher is now queried for MusicBrainz GUIDs when an MBID cannot be resolved directly through Plexist's local index. Only sufficiently confident native Plex matches are accepted.
This particularly improves matching for libraries where Plex knows the MusicBrainz identity of a track internally but normal library search does not expose the expected ISRC/MBID lookup behavior.
The matching changes also further address the behavior discussed in [#104](#104), where Plex does not expose ISRC metadata in the same way streaming services do.
Matching performance
Several unnecessary Plex requests have also been removed:
artist()oralbum()and trigger additional HTTP requests.Matching thresholds and the general preference for high-confidence matches remain conservative.
Database & Cache Reliability
Plexist now includes a dedicated database migration framework.
New migration system
Database migrations are:
Existing Plexist databases are detected and upgraded by adding only missing schema elements.
The migration baseline manages:
plex_cacheliked_tracksisrc_mbid_cacheplex_mbid_indexschema_migrationsExisting legacy data is retained.
SQLite now also runs with WAL journaling enabled.
Fixed populated-cache startup failure
Previous cache restoration attempted to reconstruct
plexapi.audio.Trackobjects directly from stored dictionaries.Newer versions of
plexapiexpect XML elements during object construction, which could cause Plexist to crash on startup when a populated cache was loaded.Plexist now stores and restores immutable cached track snapshots containing the metadata required for matching, avoiding that failure and removing unnecessary network requests during cache initialization.
Spotify
Spotify support has been updated to better reflect the current Spotify authorization model.
New configuration options
Support has been added for:
SPOTIFY_REDIRECT_URIThe provider now has improved handling for:
This resolves the fresh-install Spotify
403 Forbiddenbehavior reported in [#138](#138).Users upgrading from older Spotify configurations should review the updated Spotify configuration instructions in the README.
Tidal
Tidal authentication has been corrected for compatibility with the current
tidalapidependency.Plexist 3.0.0 attempted to restore OAuth sessions using:
tidalapi.SessionType.TIDALThat enum value is not available in
tidalapi 0.8.11, causing Tidal authentication to fail before synchronization could begin.Plexist now restores Tidal OAuth sessions using the supported:
Bearertoken type.
Regression tests now verify that saved access tokens, refresh tokens, and expiry information are passed correctly when creating an authenticated Tidal session.
This fixes the
SESSION_TYPEfailure reported by users following the 3.0.0 release.Apple Music
Apple Music handling and tests have also been expanded.
Improvements include:
Sync Orchestration
The multi-service sync orchestrator introduced in Plexist 3.0.0 has received additional hardening.
Improvements include:
Container & Runtime Improvements
Developer & CI Improvements
Plexist now includes substantially more automated coverage around the parts of the application most likely to affect sync correctness.
New and expanded tests cover:
ruffhas also been added for Python linting.GitHub Actions and Docker build dependencies have been updated, including newer versions of:
actions/checkoutactions/setup-pythonactions/setup-dotnetdocker/build-push-actiondocker/setup-buildx-actiondocker/setup-qemu-actiondocker/login-actionsigstore/cosign-installerFixed Issues
[#138](Spotify returns 403 while starting sync #138) — Spotify returns 403 while starting sync
[#104](Plex cannot search by isrc #104) — Plex cannot search by ISRC
/library/matchesendpoint before falling back to metadata matching.Tidal
SESSION_TYPEauthentication failuretidalapi 0.8.11caused by use of the unavailableSessionType.TIDALenum.Bearertoken type.Upgrade Notes
Spotify users
Spotify users should review the updated authentication configuration before upgrading, particularly if their existing deployment relies on the previous authentication behavior.
Tidal users
No configuration change should normally be required for existing Tidal users.
Plexist 3.1.0 corrects the OAuth session restoration internally and should eliminate the
SESSION_TYPEerror seen with 3.0.0.Existing databases
No database reset should be required.
Plexist will automatically migrate existing databases to the new versioned schema during startup.
As always, keeping a backup of your persistent Plexist data volume before upgrading is recommended.
What's Changed
tidalapiFull Changelog:
3.0.0...3.1.0
This discussion was created from the release 3.1.0.
All reactions