feat: Update metadata handling to include chapter count and normalize keys for ffmpeg arguments

This commit is contained in:
JB
2025-10-07 11:04:00 -07:00
parent 42334e92a4
commit 4b3aa227b7
2 changed files with 12 additions and 3 deletions
+6 -2
View File
@@ -189,11 +189,12 @@ def _build_metadata_payload(
metadata = { metadata = {
"TITLE": title, "TITLE": title,
"ARTIST": authors_text, "ARTIST": authors_text,
"ALBUM": f"{title} ({chapter_count} {chapter_label})", "ALBUM": title,
"YEAR": metadata_source.publication_year or now_year, "YEAR": metadata_source.publication_year or now_year,
"ALBUM_ARTIST": authors_text, "ALBUM_ARTIST": authors_text,
"COMPOSER": "Narrator", "COMPOSER": "Narrator",
"GENRE": "Audiobook", "GENRE": "Audiobook",
"CHAPTER_COUNT": str(chapter_count),
} }
if metadata_source.publisher: if metadata_source.publisher:
metadata["PUBLISHER"] = metadata_source.publisher metadata["PUBLISHER"] = metadata_source.publisher
@@ -201,7 +202,10 @@ def _build_metadata_payload(
metadata["COMMENT"] = metadata_source.description metadata["COMMENT"] = metadata_source.description
if metadata_source.language: if metadata_source.language:
metadata["LANGUAGE"] = metadata_source.language metadata["LANGUAGE"] = metadata_source.language
return _normalize_metadata_keys(metadata) normalized = _normalize_metadata_keys(metadata)
# Ensure chapter_count survives normalization even if upstream metadata provided it
normalized.setdefault("chapter_count", str(chapter_count))
return normalized
def _extract_pdf(path: Path) -> ExtractionResult: def _extract_pdf(path: Path) -> ExtractionResult:
+6 -1
View File
@@ -334,7 +334,12 @@ def _metadata_to_ffmpeg_args(metadata: Dict[str, Any]) -> List[str]:
key_str = str(key).strip() key_str = str(key).strip()
if not key_str: if not key_str:
continue continue
args.extend(["-metadata", f"{key_str}={value}"]) normalized_key = key_str.lower()
if normalized_key == "year":
ffmpeg_key = "date"
else:
ffmpeg_key = key_str
args.extend(["-metadata", f"{ffmpeg_key}={value}"])
return args return args