Repository navigation
Conversation
…#208) Metadata tagging now also writes a fixed set of fields ffmpeg supports natively, under the existing metadata_tagging_enabled switch (no new settings): - Description (Audible summary): M4B desc + ldes, MP3 TXXX:description, FLAC DESCRIPTION. Line breaks become single spaces. - Genre: top-level genres only, joined with "; " (Audiobookshelf splits genre tags on ";"). - M4B/M4A/MP4: media type Audiobook (stik=2) and gapless (pgap=1). AudibleAudiobook gains primaryGenres (Audnexus genres of type "genre", or the top of each catalog ladder); the genres display list is unchanged. With tagging on, the organize job looks up the Audible details once per import and shares them with the missing-series backfill. A failed lookup is non-fatal and falls back to the stored description.
|
Thanks @N0cky, this is a nice set of tags, and keeping paragraphs apart in the description is a good catch. I'm going to take it from here: it'll land on our branch with you as co-author, on top of the ASIN tag change that's going in first, since that reworks the same tagging code. A few changes on top:
I'll close this PR once that lands, so I'm leaving it open until then. |
|
Thanks, sounds good, and good catches on the FLAC duplicate and the |
|
Thanks! I'll keep the re-land to what's here so it goes in cleanly. Publisher, subtitle and language would be great as a follow-up from you. Base it on main once this lands; I'll ping you here when it does. |
Re-land of #397. With metadata tagging on, imported files carry the Audible description and top-level genres (MP4 desc/ldes and ©gen, MP3 TXXX:description and TCON, FLAC comment and GENRE) and, on MP4, media type Audiobook (stik=2) and gapless (pgap=1). Descriptions are bounded and cleaned in one linear pass and capped at 16 KiB; genres are split on / and ; for Audiobookshelf. One Audible details lookup per import, shared with the series backfill, skipped after 15 s when it only serves the tags. Part of #208. Co-authored-by: Tobias Bunk <github@bunk.at> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@N0cky this landed in #419 with you as co-author, and it'll be in the next release. Thanks again! It's on main now, so publisher, subtitle and language can be based on it whenever you're ready. The tag text helpers now live in |
|
@N0cky this is out in v1.2.10: https://github.com/kikootwo/ReadMeABook/releases/tag/v1.2.10 |
Part of #208: the first PR, with the fields ffmpeg writes natively. Publisher, subtitle and language follow once the ASIN post-step has landed.
What is written (under
metadata_tagging_enabled, no new settings)desc+ldesTXXX:descriptionDESCRIPTION;-joined)©genTCONGENREstik=2pgap=1primaryGenresonAudibleAudiobook= Audnexus genres oftype: 'genre'(sub-genretags left out) or the top of each catalog ladder. The existinggenresdisplay list is unchanged. Audiobookshelf splits genre tags on;; Audible genre names contain&and,but no;.Data
getAudiobookDetails(asin)once and shares it with the existing missing-series backfill (src/lib/processors/organize-tag-details.ts), so there is at most one lookup per import.Testing
mdiratoms kept,stik/pgapread correctly by mutagennpm testsuite green,tscclean, no new ESLint findings,docker build -f dockerfile.unifiedOK