Summary
Add first-class support for creating persistent local playlists from remote URLs, with a stored source link and manual refresh.
Problem
Right now URL-based playback/import can be transient. Users want to:
- persist a playlist created from URL
- keep it tied to its remote source
- refresh it later without recreating it manually
Proposed Solution
-
Add URL import mode for persistent playlists:
- Input format:
Playlist Name | URL
- Resolve URL using existing remote resolver
- Save tracks as local TOML playlist
-
Store playlist source metadata:
- Add top-level
source_url in local playlist TOML
-
Add manual sync action:
- In playlist manager, add
R to refresh selected linked playlist from source_url
- Overwrite track list with latest remote contents
- Keep
source_url preserved
-
Keep local UX predictable:
- Show success/failure status messages for import/refresh
- If
source_url missing, show a clear “not linked” error on refresh
Nice-to-Have Follow-ups
- Allow URL-only import with auto-generated playlist name from remote metadata
- Optional startup auto-refresh for linked playlists (
sync_linked_playlists = true)
- Per-playlist conflict mode (
overwrite vs merge/dedup)
Acceptance Criteria
- User can import
Name | URL into persistent local playlist
- Saved playlist contains
source_url
- Pressing
R refreshes linked playlist successfully
- Existing non-linked playlists remain fully functional
- Existing playlists keep working (backward compatible file parsing)
Summary
Add first-class support for creating persistent local playlists from remote URLs, with a stored source link and manual refresh.
Problem
Right now URL-based playback/import can be transient. Users want to:
Proposed Solution
Add URL import mode for persistent playlists:
Playlist Name | URLStore playlist source metadata:
source_urlin local playlist TOMLAdd manual sync action:
Rto refresh selected linked playlist fromsource_urlsource_urlpreservedKeep local UX predictable:
source_urlmissing, show a clear “not linked” error on refreshNice-to-Have Follow-ups
sync_linked_playlists = true)overwritevs merge/dedup)Acceptance Criteria
Name | URLinto persistent local playlistsource_urlRrefreshes linked playlist successfully