Repaired a lot of Media Management
This commit is contained in:
47
set_1_ger
Executable file
47
set_1_ger
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
import pathlib
|
||||
import subprocess
|
||||
from check_video import check_video_ext, normalize_language, normalize_lang_code
|
||||
|
||||
def collect_files(paths):
|
||||
files = []
|
||||
for p in paths:
|
||||
p = pathlib.Path(p)
|
||||
if p.is_dir():
|
||||
files += [f for f in p.iterdir() if check_video_ext(f.suffix)]
|
||||
elif check_video_ext(p.suffix):
|
||||
files.append(p)
|
||||
return files
|
||||
|
||||
def set_audio_lang(file_path, lang_code):
|
||||
"""
|
||||
Sets the first audio track language to the given ISO 639-1 code using mkvpropedit.
|
||||
"""
|
||||
try:
|
||||
# Target first audio track (track ID 1)
|
||||
subprocess.run([
|
||||
"mkvpropedit", str(file_path),
|
||||
"--edit", "track:a1",
|
||||
"--set", f"language={lang_code}"
|
||||
], check=True)
|
||||
print(f"Set first audio track of '{file_path}' to {lang_code}")
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"Failed to set language for '{file_path}': {e}")
|
||||
|
||||
def main():
|
||||
if len(sys.argv) == 1:
|
||||
targets = ["."]
|
||||
lang = "German"
|
||||
else:
|
||||
targets = sys.argv[1:]
|
||||
lang = "German" # Hardcoded to German
|
||||
|
||||
lang = normalize_language(lang)
|
||||
lang_code = normalize_lang_code(lang)
|
||||
|
||||
for f in collect_files(targets):
|
||||
set_audio_lang(f, lang_code)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user