From 8b6fc7fdcd18e9322cf338bb86b2b4f3639d07da Mon Sep 17 00:00:00 2001 From: Lucas Vivo Date: Thu, 8 Oct 2026 07:37:21 +0200 Subject: [PATCH] combine audiobooks: extend to opus asd asd --- .../combine_audiobookmedia_to_m4b.py | 14 ++++-- sonar_translation.py | 46 ------------------- 2 files changed, 10 insertions(+), 50 deletions(-) diff --git a/audiobook_metadata/combine_audiobookmedia_to_m4b.py b/audiobook_metadata/combine_audiobookmedia_to_m4b.py index 0656a50..58f1b0a 100755 --- a/audiobook_metadata/combine_audiobookmedia_to_m4b.py +++ b/audiobook_metadata/combine_audiobookmedia_to_m4b.py @@ -43,7 +43,10 @@ def ffmpeg_escape(path: Path) -> str: return str(path.resolve()).replace("'", r"'\''") def create_m4b(root_path: Path, book_dir: Path) -> None: - media_files = sorted(book_dir.glob("*.m[p,4][3,b,a]")) + media_files = sorted(list(book_dir.glob("*.mp3")) + + list(book_dir.glob("*.m4a")) + + list(book_dir.glob("*.m4b")) + + list(book_dir.glob("*.opus"))) if not media_files: return @@ -152,6 +155,7 @@ def find_book_dirs(root: Path) -> tuple[list[Any], int]: list(root.rglob("*.mp3")) + list(root.rglob("*.m4a")) + list(root.rglob("*.m4b")) + + list(root.rglob("*.opus")) ) counts: dict[Path, int] = {} @@ -166,7 +170,7 @@ def find_book_dirs(root: Path) -> tuple[list[Any], int]: for directory, count in counts.items(): if count > 1: directories.append(directory) - size += sum(file.stat().st_size for pattern in ("*.mp3", "*.m4a", "*.m4b") for file in directory.glob(pattern)) + size += sum(file.stat().st_size for pattern in ("*.mp3", "*.m4a", "*.m4b", "*.opus") for file in directory.glob(pattern)) return sorted(directories), size @@ -179,7 +183,6 @@ def process_book(args): except Exception as exc: return book_dir, str(exc) - def main() -> None: parser = argparse.ArgumentParser() parser.add_argument( @@ -196,7 +199,10 @@ def main() -> None: raise SystemExit(f"Path does not exist: {target}") # Direct book folder - if any(target.glob("*.m[p,4][3,b]")): + if any(list(target.glob("*.mp3")) + + list(target.glob("*.m4a")) + + list(target.glob("*.m4b")) + + list(target.glob("*.opus"))): create_m4b(target.parent,target) return diff --git a/sonar_translation.py b/sonar_translation.py index 009c433..5ef64f9 100644 --- a/sonar_translation.py +++ b/sonar_translation.py @@ -295,52 +295,6 @@ def rename_media(media_data,episodes, series_path,file_title): print("Cancelled.") return -def process_series(series_path: Path): - series = series_path.name - - m = re.match(r"^(.*?)\s*\((\d{4})\)\s*\[(\d+)\]$", series) - - if not m: - print(f"Skipping invalid folder: {series}") - return - - file_title = m.group(1).strip() - file_year = int(m.group(2)) - file_tmdb_id = int(m.group(3)) - - print() - print("=" * 80) - print(f"TITLE={file_title}") - print(f"YEAR={file_year}") - print(f"TMDB_ID={file_tmdb_id}") - - if file_tmdb_id == 0: - print("TMDB ID required") - return - - try: - data = find_by_tmdb_id(file_tmdb_id) - - if not data: - print("TMDB lookup failed") - return - - media_type, media_data = data - - print_results(data) - - episodes = get_episode_list(media_data) - - rename_media( - media_data, - episodes, - series_path, - file_title - ) - - except Exception as e: - print(f"Error processing {series}: {e}") - def process_series(series_path: Path): series = series_path.name