Pluggable fetch source: ytmusicapi search + yt-dlp download (cookies-file guard), DownloadJob entity/repo + DownloadService, download_task worker with exponential-backoff retries, and wired /search, /sources/{source}/search, and /downloads endpoints. Adds youtube_enabled/cookies config, yt-dlp+ytmusicapi deps, and the download_jobs.track_id migration. Snapshot also bundles in-progress storage/tracks/acoustid edits. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds inline AcoustID match-finding (multiple ranked candidates via lookup_all) and PUT /tracks/{id}/metadata for manual edits, resolving artist/album and setting metadata_status=manual. Extends TrackOut with genre/year/track_number.