1
Fork 0
mirror of https://github.com/thegeneralist01/archivr synced 2026-07-22 03:05:32 +02:00
archivr/frontend
TheGeneralist 6a7826eba5
feat(core+frontend): Spotify album/playlist capture via yt-dlp container path
Previously SpotifyAlbum and SpotifyPlaylist hard-failed with a DRM error.
yt-dlp does support Spotify (experimentally), so they now go through the
same probe/container/child path as YouTube playlists.

ytdlp.rs:
- Extract normalize_item_url() helper used by both fetch_playlist_info
  and probe_playlist_qualities; eliminates the duplicate URL-normalization
  blocks and the YouTube-specific fallback_host variable
- Fallback logic is now platform-aware: YouTube/YTM bare IDs → watch URL,
  Spotify → open.spotify.com/track/{id}, unknown → skip with warning

capture.rs:
- locator_to_playlist_url: accept SpotifyAlbum | SpotifyPlaylist so the
  probe-playlist endpoint accepts Spotify album/playlist URLs
- Container branch: add SpotifyAlbum | SpotifyPlaylist to the matches!
- is_audio: true for SpotifyAlbum | SpotifyPlaylist (audio-only, like YTM)
- child_source: SpotifyTrack for Spotify containers (not YouTubeMusicTrack)
- generate_entry_title and record_media_entry both use the correct child
  source so entity_kind, source_kind, and representation_kind are right

CaptureDialog.jsx:
- isPlaylistSource: recognise open.spotify.com/album/ and /playlist/,
  and spotify:album:ID / spotify:playlist:ID shorthands, so Spotify
  containers get the probe UI, per-track excludes, and sync toggle
2026-07-21 17:58:55 +02:00
..
.storybook feat(ui): add Storybook design system refinements 2026-06-28 21:01:50 +02:00
src feat(core+frontend): Spotify album/playlist capture via yt-dlp container path 2026-07-21 17:58:55 +02:00
bun.lock feat(ui): add Storybook design system refinements 2026-06-28 21:01:50 +02:00
index.html feat(ui): rewrite frontend in React with Vite 2026-06-24 12:24:34 +02:00
package.json feat(ui): add Storybook design system refinements 2026-06-28 21:01:50 +02:00
vite.config.js feat(ui): add Storybook design system refinements 2026-06-28 21:01:50 +02:00