Repository navigation
Releases: fkick/WatchAmp
Release list
4.2.0 (483)
New in this update:
- Support for Navidrome Jellyfin Experimental API*
- New watchOS Login Screen allowing for Plex, Jellyfin, and Navidrome login directly from watchOS with Plex Pin, or Jellyfin and Navidrome with Jellyfin API Quick Connect logins.
- On WatchAmp iPhone Companion App, "Automatically Find Server" & Quick Connect support for Navidrome with Jellyfin API servers. Legacy Password login remains for Navidrome servers without Jellyfin API.
- Added support for Lyrics for Plex, Jellyfin, and Navidrome music servers. Embedded Lyrics, .ltc sidecar Lyrics, and Plex Pass Lyrics where servers and accounts support them.
- New View Lyrics button on Now Playing screen when Lyrics are available.
- Synced Lyrics will now scroll automatically when viewing the Lyric screen.
- Added new Lyric Settings to enable and disable Lyric support and Now Playing View Lyrics button.
- Added support for Play/Pause Apple Watch Gesture on Now Playing Screen. Requires Apple Watch 9 or later and "Artwork Display" setting set to "Off" to function.
*NOTE: Navidrome JellyFin Experimental API requires Navidrome server 0.64 or later. The Navidrome Jellyfin API is classified as experimental by Navidrome and may not support all features. It also needs to be manually enabled on the server to work. For information on the Navidrome Jellyfin Experimental API, please see https://www.navidrome.org/docs/usage/features/jellyfin/
4.1.0 (455)
New in this Update:
- When Artwork Display setting is set to "Full Screen", higher resolution streaming artwork is cached for better quality full screen appearance.
- Artwork Reuse Model: Single Artwork file is now shared amongst tracks within the same album, so long as the media server reports they have the same artwork. This helps conserve bandwidth when streaming multiple tracks from the same album, and WatchAmp will now also reuse local artwork from cached or downloaded tracks for streaming tracks of the same album when available.
- Siri Announce Notifications now pause and resume audio rather than just lowering the volume.
- When viewing chapter list for an M4B audiobook, list now scrolls immediately to active chapter.
- Added additional hardening for successful track download verification.
Fixes in this Update:
- When using an Apple Watch that does not support Always On display, or when Always On Display was turned off and the screen went dark, watchOS could suspend playback between tracks. Audio would resume only when the watch was raised/activated. Updated enqueue method should allow watchOS to continue playback while screen is off.
- Fixed seeking unavailable on first start streaming tracks
- Fixed seeking bug that could cause audio to seeking when the display is covered.
- Tweaked Play Next/Later queue handling, cache prioritization, and Headphone Disconnect/Reconnect recovery
4.0.1 (421)
WatchAmp 4.0.0 adds Navidrome/OpenSubsonic support alongside Plex and Jellyfin, plus M4B audiobook playback features, a sleep timer, optional full-screen Now Playing artwork, faster library startup, and more reliable Premium access recovery.
Fixes in this update:
- Plex users could experience playback glitches and repeat audio when transcoding was enabled.
- WatchAmp background downloads queue persistence is no longer suspended immediately when lowering wrist or exiting to clock. watchOS will still suspend large queues over time, but queues will resume when WatchAmp is reopened and more tracks will download when WatchAmp is backgrounded than before. For large download queues, it is recommended to keep WatchAmp in focus and the screen on.
4.0.0 (405)
WatchAmp 4.0.0 adds watchOS 27 compatibility, Navidrome/OpenSubsonic support alongside Plex and Jellyfin, plus M4B audiobook playback features, a sleep timer, seek controls, optional full-screen or expanded Now Playing artwork, faster library startup, and more reliable Premium access recovery.
New in this update:
- BETA M4B audiobook playback support (Note: It is recommended to download Audiobooks rather than stream them for the best experience)
- M4B Audiobook chapters with chapter seeking and current chapter highlighting
- M4B Audiobook-only playback speed controls
- Support for Jellyfin Book libraries
- Optional Full-Screen & Expanded Now Playing artwork (enable/disable in Settings Screen)
- Full-Screen & Expanded artwork support for idle playback and Always On dimming
- 320 kbps MP3 transcode option for Music
- Enable Sleep Timer from Now Playing Artwork Long Press and Settings screen with options for timed pauses, End of Track (Music), and End of Chapter (Audiobook)
- Seek through a track by long pressing Fast Forward or Rewind (set amount in Settings Screen)
- Navidrome server support alongside Plex and Jellyfin
- Navidrome sign-in from the iPhone companion app
- Navidrome library, artist, album, track, playlist, hub, and search browsing
- Navidrome artwork support for playback, browsing, playlists, and downloads
- Navidrome direct playback, downloads, transcoding, and played-track reporting
- Updated companion walkthrough and FAQ content for Navidrome
- Faster watch library startup using cached library sections
- More reliable production Premium entitlement recovery
- Updated iPhone Companion app How To and FAQ with Audiobook information.
Fixes in this update:
- More reliable Navidrome downloads, streaming, artwork, and played-track reporting
- Better handling of Navidrome server error responses
- Faster and cleaner app startup network behavior
- Better recovery when Plex server URLs need to be re-resolved
- Better local-download access when a server is unreachable
- Fixed non-HTTPS server connection configuration
- Fixed audiobook resume and restored queue progress handling
- Fixed playback-rate handling after playback recovery and queue changes
- Fixed sleep timer cleanup and End of Track handling
- Fixed speed control layout over artwork
- Fixed full-screen artwork behavior during inactive display states and track transitions
- Improved Premium status restoration for lifetime and grandfathered annual customers
- Improvements toJellyfin playback start/progress using the correct resume position
- Fix Jellyfin downloaded seek handling
- Fixed bug with AVAudioSession hang-risk paths with headphone/external speaker checks
- Fixed bug with server side search failures
- Replaced deprecated WKExntension with WKApplication for voice search text input controller
- Fixed issues with M4B files that contained EAC3 audio tracks.
- Swift concurrency and runtime data race fixes across playback, media services, Siri, and companion setup
Notes for M4B Audiobooks Beta:
- Only M4B files are recognized as Audiobooks at this time. MP3 Audiobooks will continue to play as music albums and will not display speed and chapter buttons.
- M4B files with AAC audio will always Direct Play even when transcodes are on enabled in WatchAmp's settings.
- M4B files with an incompatible codec (such as EAC3) will transcode when transcodes are enabled.
3.2.0 (316)
WatchAmp 3.2.0 is primarily a bug fix release for 3.0 and also lowers the minimum iOS version for the companion app to iOS 18 and the minimum watchOS version for the watch app to watchOS 10.5.
Fixes in 3.2.0:
- Fix for launch crash on older watchOS 10.x devices
- Long press actions conflicting with tap actions on watchOS 10/11 devices causing hangups and non-responsiveness
Changes in 3.2.0 for Legacy devices running watchOS 10/11:
- Long Press actions on Albums/Artists/Playlists/Tracks in list rows have been replaced by "Artwork" action actions. Taping on the item Artwork on the left of the row will bring up the confirmation dialog with options to enact on that item, while the row text/body remains the tap target for navigation or playback.
- watchOS 26+ will not be affected by these changes and will continue to operate via "Long Press" actions for the item menu confirmation dialogs.
3.1.0 (311)
WatchAmp 3.1.0 Release Notes
WatchAmp 3.1.0 expands Jellyfin support and adds new Playlist sort options and download prioritization.
What's New
- "Prioritize Download" option added to Confirmation Dialog when user long presses on track in Download Queue
- Added new Playlist Sort Options: Name, Play Count (Plex Only) , Duration, Song Count, Last Played, Date Added, Last Modified, Jump To Letter
- Playlists now show Song Count, Duration, and Play Count when available. Play Count is currently Plex Only.
- Add Jellyfin LAN discovery to iPhone companion authentication flow when on the same network
- Miscellaneous Localization Updates
Fixes
- Fixed Inline Style Complication to show icon and title instead of a grey box
- When pressing “View Artist” button in an album listing from the Search page, app did not correctly navigate to the artist
- Search results could sometimes only returned on device downloaded media items when network connections changed
- Triggering Playlist from a Long Press or from Play/Shuffle at top of Playlist increments Plex server side "Playlist Play Count" metadata.
3.1 (310)
New
- "Prioritize Download" option added to Confirmation Dialog when user long presses on track in Download Queue
- Add Jellyfin LAN discovery to iPhone companion authentication flow when on the same network
- Added new Playlist Sort Options: Name, Play Count (Plex Only) , Duration, Song Count, Last Played, Date Added, Last Modified, Jump To Letter
- Playlists now show Song Count, Duration, and Play Count when available. Jellyfin does not appear to currently track playlist play count, so Play Count is currently Plex Only.
Fixes
- Fix inline style complication to show icon and title instead of Grey Box
- When pressing “View Artist” button in an album listing from the Search page did not function
- Search results could sometimes only returned on device downloaded media items when network connections changed
- Triggering Playlist from a Long Press or from Play/Shuffle at top of Playlist increments Plex server side "Playlist Play Count" metadata.
3.0.0 (295)
WatchAmp 3.0.0 Release Notes for RC1
WatchAmp 3.0.0 adds Jellyfin support alongside Plex, companion-app sign-in for both server providers, Apple Watch provisioning, Jellyfin library browsing, playback, downloads, artwork, playback reporting, watch-local Favorites, offline search, restored playback queues, Apple Watch complications, richer diagnostics, and stronger downloaded-library recovery.
What's New
- Added initial Jellyfin server support alongside existing Plex support.
- Added a new Servers tab in the iPhone companion app.
- Added Jellyfin sign-in from iPhone using server URL, username, and password.
- Added Jellyfin Quick Connect support from the iPhone companion app.
- Added a Jellyfin sign-in method picker for Password or Quick Connect.
- Added Quick Connect code display, approval polling, timeout handling, cancellation, final authentication, and copy-to-clipboard support.
- Added Plex PIN sign-in from the iPhone companion app.
- Added Plex PIN code display, polling, timeout handling, cancellation, and copy-to-clipboard support.
- Added companion-to-watch provisioning for Plex and Jellyfin credentials through WatchConnectivity.
- Added pending server setup state in the companion app so users can see when setup is waiting for Apple Watch.
- Added a Clear Pending Setup action for stuck or obsolete companion-to-watch provisioning attempts.
- Added last-known Apple Watch server status in the companion app without storing Plex or Jellyfin credentials on iPhone.
- Added provider status details for the connected server, including provider, server name, server address, user, and last update time.
- Added immediate watch server status messages in addition to application-context updates.
- Improved companion server status messaging for signed-in, signed-out, pending, and blocked provider states.
- Added a provider picker in the companion app with Jellyfin and Plex logo assets.
- Improved provider switching by clearing stale Jellyfin credentials when saving Plex credentials and clearing stale Plex credentials when saving Jellyfin credentials.
- Added watch-side Jellyfin credential storage, provider selection, and automatic startup restore.
- Added watch-side handling for Plex account tokens received from the companion app.
- Improved the Apple Watch Plex setup path after companion sign-in by loading Plex Home users from the received account token.
- Kept Plex sign-in on Apple Watch through the existing PIN flow.
- Added Jellyfin music library discovery.
- Added Jellyfin artist, album, track, playlist, hub, and search browsing through the existing watch library UI.
- Added Jellyfin support for Recently Added, Recently Played, and Recently Released library hubs.
- Added Jellyfin playlist browsing and playlist track playback.
- Added Jellyfin direct-play URL resolution for supported audio formats.
- Added Jellyfin transcode URL support for unsupported formats when transcoding is enabled.
- Added Jellyfin artwork loading for online playback, downloads, album rows, artist rows, playlists, and local downloads.
- Added Jellyfin playback session reporting, progress reporting, pause/resume/stopped timeline updates, and played-track reporting.
- Improved Jellyfin playback reporting with WatchAmp client version metadata.
- Improved direct-play format detection so Jellyfin can use codec-aware playback decisions while Plex keeps its existing container-based behavior.
- Fixed Jellyfin browsing bugs around artist, album, and cached letter sections.
- Fixed Jellyfin library filtering so movie libraries are no longer shown as selectable music libraries.
- Fixed Jellyfin playback handling for direct play and transcoded playback paths.
- Fixed duplicate Jellyfin Recently Added listings.
- Hardened Jellyfin resume behavior after restoring playback state.
- Added watch-local Favorites for the active server account.
- Scoped Favorites by provider, server, and user so Plex and Jellyfin accounts keep separate favorite lists.
- Added a Favorites entry to the main Library view.
- Added an On Device Favorites view for favorited tracks that are downloaded to the watch.
- Added Play and Shuffle controls for Favorites.
- Added Download All and Remove All actions for Favorites.
- Added long-press actions on Favorites for Play Next, Play Later, and Remove from Favorites.
- Added long-press actions on On Device Favorites for Play Next, Play Later, and Remove from Favorites.
- Added Add to Favorites actions from artist, album, hub, library browsing, Now Playing, and local downloads.
- Added bulk favorite shortcuts for artists, albums, and hub results.
- Fixed a Favorites race where bulk Add to Favorites could save tracks into the wrong account if the active server changed during a fetch.
- Fixed Favorites playback and download tasks so they use a stable track snapshot even if the Favorites list changes immediately afterward.
- Marked Remove from Favorites as a destructive Now Playing action.
- Preserved the media server provider for pending offline downloads so queued downloads continue with the correct backend.
- Improved pending download queue ordering and presentation.
- Added an "Adding to Queue" / "Queuing downloads" status overlay while large download requests are being prepared.
- Improved downloaded album and playlist rows with better artwork fallback behavior.
- Improved downloaded album track lists by showing track numbers and the Now Playing waveform state.
- Added Play Album and Shuffle controls to downloaded album detail views.
- Added Play and Shuffle controls to On Device > All Downloads when downloaded tracks are available.
- Added queue handling for downloaded album playback, including Replace Queue, Play Next, and Play Later choices.
- Added Play Playlist to server playlist long-press menus.
- Added Replace Queue confirmation before playlist playback replaces an active queue.
- Added long-press actions for local downloaded artists, albums, playlists, and tracks.
- Added Play, Play Next, Play Later, Add to Favorites, and Delete actions for downloaded artists and albums.
- Added Play, Play Next, Play Later, and Delete actions for downloaded playlists.
- Added Delete Track confirmation for local downloaded track actions.
- Improved downloaded playlist actions and confirmation dialogs carried forward from the v2.x download flow.
- Stored downloaded artwork as local artwork files when available, reducing metadata size for downloaded tracks.
- Moved downloaded audio, metadata, and artwork storage from purgeable caches into Application Support.
- Added migration for existing downloaded audio, playlist metadata, track metadata, and artwork from the legacy cache location.
- Improved large v2-to-v3 downloaded-library migration so metadata can load from durable storage, legacy cache storage, or UserDefaults without being discarded.
- Improved downloaded storage migration by moving work off the main actor and indexing legacy files before repair.
- Added repair support for legacy downloaded artwork after launch.
- Added lazy repair for missing downloaded artwork when downloaded albums, artists, playlists, or tracks appear.
- Added manual Recover Missing Downloads in Settings to rebuild metadata for orphaned downloaded audio files.
- Added manual Refresh Download Artwork in Settings for missing or unreadable downloaded artwork.
- Increased downloaded artwork fetch size for better local artwork quality.
- Improved legacy downloaded artwork repair to refresh low-resolution artwork and fill missing metadata when needed.
- Improved downloaded artwork lookup so stale absolute artwork paths can recover from current Application Support or legacy cache artwork locations.
- Improved downloaded-file validation to check both durable and legacy download directories.
- Improved local downloaded playback repair to search durable and legacy locations before dropping a downloaded track.
- Added safer recovery policies that pause recovery and artwork refresh while playback, streaming, or downloads could conflict.
- Added cancellation for missing-download recovery and artwork refresh during delete operations and teardown.
- Debounced downloaded-track metadata saves and local downloads library rebuilds to reduce pressure during large download batches.
- Kept immediate download metadata saves for delete, validation, repair, launch loading, and teardown paths.
- Improved play-cache stats so offline download files are not counted as transient play-cache files.
- Added cancellation-aware filesystem helpers for cache and file operations.
- Restored playback queue persistence across app runs.
- Restored offline artwork across app runs.
- Added a queue-history model so the queue can preserve previous, current, and upcoming playback order.
- Updated Queue view ordering so the visible queue reflects current-plus-upcoming rows while previous tracks remain available through transport controls.
- Fixed Queue header counts so they match the visible queue rows.
- Fixed a shuffle-start bug.
- Improved All Downloads shuffle so it uses the same ordering as the visible downloaded list.
- Fixed a false AVPlayer resource-unavailable path for restored local playback.
- Relaxed restored-queue preflight checks that could incorrectly block playable downloaded tracks.
- Fixed offline Now Playing navigation for Jellyfin and local playback.
- Added offline search fallback when Downloads is selected, no remote library is selected, or the watch is offline.
- Improved offline search artwork so local results render downloaded artwork directly from stored metadata.
- Updated library cache identity to account for provider and cache schema, clearing stale cached data when switching providers.
- Improved Jellyfin artist and album letter filtering for symbol-heavy names.
- Improved server-change recovery flow with an in-settings loading state, retry path, and View Downloads option ...
3.0.0 (274)
WatchAmp 3.0.0 Release Notes
WatchAmp 3.0.0 adds Jellyfin support alongside Plex, companion-app sign-in for both server providers, Apple Watch provisioning, Jellyfin library browsing, playback, downloads, artwork, playback reporting, watch-local Favorites, and stronger downloaded-library recovery.
What's New
- Added initial Jellyfin server support alongside existing Plex support.
- Added a new Servers tab in the iPhone companion app.
- Added Jellyfin sign-in from iPhone using server URL, username, and password.
- Added Apple Watch provisioning for Jellyfin credentials through WatchConnectivity.
- Added last-known Apple Watch server status in the companion app without storing Plex or Jellyfin credentials on iPhone.
- Added provider status details for the connected server, including provider, server name, server address, user, and last update time.
- Added a provider picker in the companion app with Jellyfin and Plex logo assets.
- Kept Plex sign-in on Apple Watch through the existing PIN flow.
- Added watch-side Jellyfin credential storage, provider selection, and automatic startup restore.
- Added Jellyfin music library discovery.
- Added Jellyfin artist, album, track, playlist, hub, and search browsing through the existing watch library UI.
- Added Jellyfin support for Recently Added, Recently Played, and Recently Released library hubs.
- Added Jellyfin playlist browsing and playlist track playback.
- Added Jellyfin direct-play URL resolution for supported audio formats.
- Added Jellyfin transcode URL support for unsupported formats when transcoding is enabled.
- Added Jellyfin artwork loading for online playback, downloads, album rows, artist rows, playlists, and local downloads.
- Added Jellyfin playback session reporting, progress reporting, pause/resume/stopped timeline updates, and played-track reporting.
- Improved direct-play format detection so Jellyfin can use codec-aware playback decisions while Plex keeps its existing container-based behavior.
- Preserved the media server provider for pending offline downloads so queued downloads continue with the correct backend.
- Improved pending download queue ordering and presentation.
- Improved downloaded album and playlist rows with better artwork fallback behavior.
- Improved downloaded album track lists by showing track numbers and the Now Playing waveform state.
- Stored downloaded artwork as local artwork files when available, reducing metadata size for downloaded tracks.
- Added repair support for legacy downloaded artwork after launch.
- Debounced downloaded-track metadata saves and local downloads library rebuilds to reduce pressure during large download batches.
- Kept immediate download metadata saves for delete, validation, repair, launch loading, and teardown paths.
- Improved play-cache stats so offline download files are not counted as transient play-cache files.
- Updated library cache identity to account for provider and cache schema, clearing stale cached data when switching providers.
- Improved Jellyfin artist and album letter filtering for symbol-heavy names.
- Fixed Jellyfin browsing bugs around artist, album, and cached letter sections.
- Fixed Jellyfin playback handling for direct play and transcoded playback paths.
- Improved Jellyfin playback reporting with WatchAmp client version metadata.
- Added localized strings for the new server connection, provider, and Jellyfin flows.
- Updated existing localizations.
Additional Changes Since Build 254
- Added watch-local Favorites for the active server account.
- Scoped Favorites by provider, server, and user so Plex and Jellyfin accounts keep separate favorite lists.
- Added a Favorites entry to the main Library view.
- Added an On Device Favorites view for favorited tracks that are downloaded to the watch.
- Added Play and Shuffle controls for Favorites.
- Added Download All and Remove All actions for Favorites.
- Added long-press actions on Favorites for Play Next, Play Later, and Remove from Favorites.
- Added long-press actions on On Device Favorites for Play Next, Play Later, and Remove from Favorites.
- Added Add to Favorites actions from artist, album, hub, and library browsing flows.
- Added bulk favorite shortcuts for artists, albums, and hub results.
- Added Play Album and Shuffle controls to downloaded album detail views.
- Added queue handling for downloaded album playback, including Replace Queue, Play Next, and Play Later choices.
- Improved downloaded artist, album, playlist, and track artwork fallbacks by using stored thumbnail paths when local artwork data is unavailable.
- Moved downloaded audio, metadata, and artwork storage from purgeable caches into Application Support.
- Added migration for existing downloaded audio, playlist metadata, track metadata, and artwork from the legacy cache location.
- Increased downloaded artwork fetch size for better local artwork quality.
- Improved legacy downloaded artwork repair to refresh low-resolution artwork and fill missing metadata when needed.
- Fixed a Favorites race where bulk Add to Favorites could save tracks into the wrong account if the active server changed during a fetch.
- Fixed Favorites playback and download tasks so they use a stable track snapshot even if the Favorites list changes immediately afterward.
- Added and updated localized strings for the new Favorites and downloaded album actions.
- Updated Plex and Jellyfin logo assets used by the companion app and related web/screenshot materials.
Additional Changes Since Build 260
- Added Jellyfin Quick Connect support in the iPhone companion app.
- Added a Jellyfin sign-in method picker for Password or Quick Connect.
- Added Quick Connect code display, approval polling, timeout handling, cancellation, and final authentication.
- Added Navidrome logo assets and OpenSubsonic/Navidrome implementation planning notes.
- Fixed Jellyfin library filtering so movie libraries are no longer shown as selectable music libraries.
- Fixed downloaded playlist actions and confirmation dialogs carried forward from the v2.x download flow.
- Added Add to Favorites to offline long-press dialogs in the local downloads library.
- Added long-press actions for local downloaded artists, albums, playlists, and tracks.
- Added Play, Play Next, Play Later, Add to Favorites, and Delete actions for downloaded artists and albums.
- Added Play, Play Next, Play Later, and Delete actions for downloaded playlists.
- Added Delete Track confirmation for local downloaded track actions.
- Added an “Adding to Queue” / “Queuing downloads” status overlay while large download requests are being prepared.
- Improved large v2-to-v3 downloaded-library migration so metadata can load from durable storage, legacy cache storage, or UserDefaults without being discarded.
- Improved downloaded storage migration by moving work off the main actor and indexing legacy files before repair.
- Added manual Recover Missing Downloads in Settings to rebuild metadata for orphaned downloaded audio files.
- Added manual Refresh Download Artwork in Settings for missing or unreadable downloaded artwork.
- Added lazy repair for missing downloaded artwork when downloaded albums, artists, playlists, or tracks appear.
- Improved downloaded artwork lookup so stale absolute artwork paths can recover from current Application Support or legacy cache artwork locations.
- Improved downloaded-file validation to check both durable and legacy download directories.
- Improved local downloaded playback repair to search durable and legacy locations before dropping a downloaded track.
- Added safer recovery policies that pause recovery and artwork refresh while playback, streaming, or downloads could conflict.
- Added cancellation for missing-download recovery and artwork refresh during delete operations and teardown.
- Improved server-change recovery flow with an in-settings loading state, retry path, and View Downloads option when Plex server loading fails.
- Improved app error handling so users with local downloads can return to Settings or view downloads instead of being forced back through authentication.
- Added Back and View Downloads actions to recoverable error screens.
- Added localized strings for Quick Connect, recovery, download queueing, offline delete actions, and new error recovery controls.
Additional Changes Since Build 270
- Added Plex PIN sign-in from the iPhone companion app.
- Added companion-to-watch provisioning for Plex account tokens, so Plex setup can start on iPhone and finish on Apple Watch.
- Added Plex PIN code display, polling, timeout handling, cancellation, and copy-to-clipboard support.
- Improved Jellyfin Quick Connect with copy-to-clipboard support for Quick Connect codes.
- Improved Jellyfin Quick Connect sync and watch provisioning state after approval.
- Added pending server setup state in the companion app so users know when Plex or Jellyfin setup is waiting for Apple Watch.
- Added a Clear Pending Setup action for stuck or obsolete companion-to-watch provisioning attempts.
- Cancelled outstanding server provisioning transfers before sending a new Plex or Jellyfin setup payload.
- Added immediate watch server status messages in addition to application-context updates.
- Improved companion server status messaging for signed-in, signed-out, pending, and blocked provider states.
- Improved provider switching by clearing stale Jellyfin credentials when saving Plex credentials and clearing stale Plex credentials when saving Jellyfin credentials.
- Added watch-side handling for Plex account tokens received from the companion app.
- Improved the Apple Watch Plex setup path after companion sign-in by loading Plex Home users from the received account token.
- Improved the Apple Watch sign-in screen layout for smaller watch displays.
- Added copyable Plex and Jellyfin codes with visible...
3.0.0 (270)
WatchAmp 3.0.0 adds Jellyfin support alongside Plex, with iPhone-based Jellyfin sign-in, Apple Watch provisioning, Jellyfin library browsing, playback, downloads, artwork, playback reporting, watch-local Favorites, and stronger downloaded-library recovery.
What's New
- Added initial Jellyfin server support alongside existing Plex support.
- Added a new Servers tab in the iPhone companion app.
- Added Jellyfin sign-in from iPhone using server URL, username, and password.
- Added Apple Watch provisioning for Jellyfin credentials through WatchConnectivity.
- Added last-known Apple Watch server status in the companion app without storing Plex or Jellyfin credentials on iPhone.
- Added provider status details for the connected server, including provider, server name, server address, user, and last update time.
- Added a provider picker in the companion app with Jellyfin and Plex logo assets.
- Kept Plex sign-in on Apple Watch through the existing PIN flow.
- Added watch-side Jellyfin credential storage, provider selection, and automatic startup restore.
- Added Jellyfin music library discovery.
- Added Jellyfin artist, album, track, playlist, hub, and search browsing through the existing watch library UI.
- Added Jellyfin support for Recently Added, Recently Played, and Recently Released library hubs.
- Added Jellyfin playlist browsing and playlist track playback.
- Added Jellyfin direct-play URL resolution for supported audio formats.
- Added Jellyfin transcode URL support for unsupported formats when transcoding is enabled.
- Added Jellyfin artwork loading for online playback, downloads, album rows, artist rows, playlists, and local downloads.
- Added Jellyfin playback session reporting, progress reporting, pause/resume/stopped timeline updates, and played-track reporting.
- Improved direct-play format detection so Jellyfin can use codec-aware playback decisions while Plex keeps its existing container-based behavior.
- Preserved the media server provider for pending offline downloads so queued downloads continue with the correct backend.
- Improved pending download queue ordering and presentation.
- Improved downloaded album and playlist rows with better artwork fallback behavior.
- Improved downloaded album track lists by showing track numbers and the Now Playing waveform state.
- Stored downloaded artwork as local artwork files when available, reducing metadata size for downloaded tracks.
- Added repair support for legacy downloaded artwork after launch.
- Debounced downloaded-track metadata saves and local downloads library rebuilds to reduce pressure during large download batches.
- Kept immediate download metadata saves for delete, validation, repair, launch loading, and teardown paths.
- Improved play-cache stats so offline download files are not counted as transient play-cache files.
- Updated library cache identity to account for provider and cache schema, clearing stale cached data when switching providers.
- Improved Jellyfin artist and album letter filtering for symbol-heavy names.
- Fixed Jellyfin browsing bugs around artist, album, and cached letter sections.
- Fixed Jellyfin playback handling for direct play and transcoded playback paths.
- Improved Jellyfin playback reporting with WatchAmp client version metadata.
- Added localized strings for the new server connection, provider, and Jellyfin flows.
- Updated existing localizations.
Additional Changes Since Build 254
- Added watch-local Favorites for the active server account.
- Scoped Favorites by provider, server, and user so Plex and Jellyfin accounts keep separate favorite lists.
- Added a Favorites entry to the main Library view.
- Added an On Device Favorites view for favorited tracks that are downloaded to the watch.
- Added Play and Shuffle controls for Favorites.
- Added Download All and Remove All actions for Favorites.
- Added long-press actions on Favorites for Play Next, Play Later, and Remove from Favorites.
- Added long-press actions on On Device Favorites for Play Next, Play Later, and Remove from Favorites.
- Added Add to Favorites actions from artist, album, hub, and library browsing flows.
- Added bulk favorite shortcuts for artists, albums, and hub results.
- Added Play Album and Shuffle controls to downloaded album detail views.
- Added queue handling for downloaded album playback, including Replace Queue, Play Next, and Play Later choices.
- Improved downloaded artist, album, playlist, and track artwork fallbacks by using stored thumbnail paths when local artwork data is unavailable.
- Moved downloaded audio, metadata, and artwork storage from purgeable caches into Application Support.
- Added migration for existing downloaded audio, playlist metadata, track metadata, and artwork from the legacy cache location to persistent storage.
- Increased downloaded artwork fetch size for better local artwork quality.
- Improved legacy downloaded artwork repair to refresh low-resolution artwork and fill missing metadata when needed.
- Fixed a Favorites race where bulk Add to Favorites could save tracks into the wrong account if the active server changed during a fetch.
- Fixed Favorites playback and download tasks so they use a stable track snapshot even if the Favorites list changes immediately afterward.
- Added and updated localized strings for the new Favorites and downloaded album actions.
- Updated Plex and Jellyfin logo assets used by the companion app and related web/screenshot materials.
Additional Changes Since Build 260
- Added Jellyfin Quick Connect support in the iPhone companion app.
- Added a Jellyfin sign-in method picker for Password or Quick Connect.
- Added Quick Connect code display, approval polling, timeout handling, cancellation, and final authentication.
- Fixed Jellyfin library filtering so movie libraries are no longer shown as selectable music libraries.
- Fixed downloaded playlist actions and confirmation dialogs carried forward from the v2.x download flow.
- Added Add to Favorites to offline long-press dialogs in the local downloads library.
- Added long-press actions for local downloaded artists, albums, playlists, and tracks.
- Added Play, Play Next, Play Later, Add to Favorites, and Delete actions for downloaded artists and albums.
- Added Play, Play Next, Play Later, and Delete actions for downloaded playlists.
- Added Delete Track confirmation for local downloaded track actions.
- Added an “Adding to Queue” / “Queuing downloads” status overlay while large download requests are being prepared.
- Improved large v2-to-v3 downloaded-library migration so metadata can load from durable storage, legacy cache storage, or UserDefaults without being discarded.
- Improved downloaded storage migration by moving work off the main actor and indexing legacy files before repair.
- Added manual Recover Missing Downloads in Settings to rebuild metadata for orphaned downloaded audio files.
- Added manual Refresh Download Artwork in Settings for missing or unreadable downloaded artwork.
- Added lazy repair for missing downloaded artwork when downloaded albums, artists, playlists, or tracks appear.
- Improved downloaded artwork lookup so stale absolute artwork paths can recover from current Application Support or legacy cache artwork locations.
- Improved downloaded-file validation to check both durable and legacy download directories.
- Improved local downloaded playback repair to search durable and legacy locations before dropping a downloaded track.
- Added safer recovery policies that pause recovery and artwork refresh while playback, streaming, or downloads could conflict.
- Added cancellation for missing-download recovery and artwork refresh during delete operations and teardown.
- Improved server-change recovery flow with an in-settings loading state, retry path, and View Downloads option when Plex server loading fails.
- Improved app error handling so users with local downloads can return to Settings or view downloads instead of being forced back through authentication.
- Added Back and View Downloads actions to recoverable error screens.
- Added localized strings for Quick Connect, recovery, download queueing, offline delete actions, and new error recovery controls.