v0.18.0: paste a link, get the song

File > Import from URL... runs trav's `song` helper (yt-dlp --extract-audio
--audio-format mp3) from inside the app. Everything at the link downloads to
a private temp dir and is imported as each song lands. "and add to current
playlist?" puts the batch above the selected song, else at the end of the
playing playlist, else at the end of the shown one, in the link's order.
Each song goes straight into Identify Track. With no AcoustID key, the
proposal comes from the filename alone.

Album art now opens on a single click, in a window shaped like the cover
and as big as the screen allows.

Also fixed the dev fixture's play journal, which crashed startup (wrong
shape) and would have been ignored anyway (wrong keys). The loader now
skips a journal it can't read instead of aborting.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R5m9mXFPHNro78BdD69mG2
This commit is contained in:
2026-09-10 23:44:45 -05:00
co-authored by Claude Opus 5
parent bcba621f3f
commit 8188a5b389
13 changed files with 1179 additions and 33 deletions
+19
View File
@@ -9,6 +9,25 @@ When a round closes, move its finished items to `tasks-done.md`.
- [ ] archive the done tasks in here to another file, this is crufty....
## Round 49 (2026-09-10) — Import from URL: done, see tasks-done.md
File ▸ Import from URL… (the `song` helper in-process), plus the album art
opening on one click, art-shaped and screen-tall. Left on the table:
- [ ] **Machine 2 needs yt-dlp.** A runtime CLI tool, not a pip dep:
`pip install --user yt-dlp` (and ffmpeg, which it already has for
Qt). The menu says so if it's missing.
- [ ] **Importing the same link twice makes a second copy.** The importer
dedups by file location, and a fresh download has a fresh path. The
yt-dlp id (the `[jNQXAC9IVRw]` in the filename) is a stable key to
check against before downloading.
- [ ] **"Stop Identifying (N left)" doesn't count songs still downloading.**
The queue only knows about songs that have landed.
- [ ] **The art window's title-bar allowance is a fixed 48 px.** Wayland
doesn't report frame size before the window is mapped. If GNOME's
title bar is taller at some scale, the bottom of the cover can clip by
a few pixels.
## Round 48 (2026-09-10) — A library to break: done, see tasks-done.md
`scripts/make_dev_library.py` + the andTunes resume docs. Left on the table: