feat(runner): embed ID3 metadata in extracted mp3 #11

Merged
w33ble merged 1 commit from feat/embed-id3-metadata into main 2026-09-11 10:00:12 -06:00
Collaborator

Summary

  • internal/runner/ytdlp.go: add --embed-metadata --no-embed-chapters --no-embed-info-json to the yt-dlp invocation, so the extracted mp3 carries ID3 tags written by ffmpeg after audio conversion.
  • internal/runner/ytdlp_test.go: extend TestYtdlpArgsShape to assert the three new flags.
  • README.md: note in "How it works" that ID3 tags are embedded on the mp3.

Why

Episodes previously carried title/description/source-URL metadata only in SQLite; the mp3 itself was tagless. Embedded tags make the file self-describing for local players and any tool that reads the audio directly. The feed is unchanged.

Tags written: title, description, canonical webpage_url (comment + purl), artist, date, genre. Chapters and the info-json sidecar are explicitly not embedded, keeping the tag set limited to audio metadata. Metadata edits made after extraction still update the feed only (separate concern, out of scope).

## Summary - `internal/runner/ytdlp.go`: add `--embed-metadata --no-embed-chapters --no-embed-info-json` to the yt-dlp invocation, so the extracted mp3 carries ID3 tags written by ffmpeg after audio conversion. - `internal/runner/ytdlp_test.go`: extend `TestYtdlpArgsShape` to assert the three new flags. - `README.md`: note in "How it works" that ID3 tags are embedded on the mp3. ## Why Episodes previously carried title/description/source-URL metadata only in SQLite; the mp3 itself was tagless. Embedded tags make the file self-describing for local players and any tool that reads the audio directly. The feed is unchanged. Tags written: title, description, canonical `webpage_url` (comment + purl), artist, date, genre. Chapters and the info-json sidecar are explicitly not embedded, keeping the tag set limited to audio metadata. Metadata edits made after extraction still update the feed only (separate concern, out of scope).
feat(runner): embed ID3 metadata in extracted mp3
Some checks failed
ci / check (pull_request) Has been cancelled
aca088712c
hijynx force-pushed feat/embed-id3-metadata from aca088712c
Some checks failed
ci / check (pull_request) Has been cancelled
to 850cefc133
All checks were successful
ci / check (pull_request) Successful in 4m13s
2026-09-11 09:45:23 -06:00
Compare
w33ble approved these changes 2026-09-11 09:46:56 -06:00
w33ble merged commit b046586623 into main 2026-09-11 10:00:12 -06:00
w33ble deleted branch feat/embed-id3-metadata 2026-09-11 10:00:13 -06:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
w33ble/mediacast!11
No description provided.