[multiplex] Fix sous-titres par défaut + argparse

This commit is contained in:
lionel
2025-07-23 23:44:22 +02:00
parent fe74632ae3
commit 4c24a87bc2

View File

@ -2,6 +2,7 @@ import os
import sys
import glob
import re
import argparse
from pathlib import Path
from pymkv import MKVFile, MKVTrack
@ -145,7 +146,7 @@ def process_episode(episode, source_dir_1, source_dir_2, saison, serie_name, des
subtitle_tracks_other = [t for t in source_2_mkv.tracks if t.track_type == 'subtitles' and t.language != 'fre']
for idx, track in enumerate(subtitle_tracks_fr):
track.default_track = (idx == 0)
track.default_track = (idx == 0) and track.default_track
if not track.track_name:
codec = track._track_codec
if track.forced_track:
@ -201,21 +202,46 @@ def process_episode(episode, source_dir_1, source_dir_2, saison, serie_name, des
def main():
"""
Point d'entrée principal du script.
Lit les arguments de ligne de commande, prépare les répertoires,
et lance le traitement de chaque épisode (de 01 à 30).
@brief Point d'entrée du script.
@details Parse les arguments en ligne de commande et lance le traitement
des épisodes de la série.
@arg -v, --video Répertoire source vidéo
@arg -a, --audio Répertoire source audio/sous-titres
@arg -va Répertoire source commun pour vidéo et audio
@arg -n, --nom Nom de la série
@arg -s, --saison Numéro de la saison
@arg -d, --dest Répertoire de sortie
@return None
"""
if len(sys.argv) != 5:
print(f'Usage: {sys.argv[0]} <SOURCE_DIR_1> <SOURCE_DIR_2> <SERIE_NAME> <SAISON>')
sys.exit(1)
parser = argparse.ArgumentParser(
description="Combine des épisodes MKV depuis deux sources (vidéo + audio/sous-titres)."
)
source_dir_1 = sys.argv[1]
source_dir_2 = sys.argv[2]
serie_name = sys.argv[3]
saison = sys.argv[4]
dest_dir = f"/media/data/reencoded/{serie_name}/Saison {saison}"
parser.add_argument("-v", "--video", help="Répertoire source vidéo" )
parser.add_argument("-a", "--audio", help="Répertoire source audio/sous-titres" )
parser.add_argument("-va", help="Répertoire source commun pour vidéo et audio" )
parser.add_argument("-n", "--nom", required=True, help="Nom de la série")
parser.add_argument("-s", "--saison", required=True, help="Numéro de la saison")
parser.add_argument("-d", "--dest", required=True, help="Répertoire de sortie")
args = parser.parse_args()
# Gestion de l'option commune -va
if args.va:
source_dir_1 = source_dir_2 = args.va
else:
source_dir_1 = args.video
source_dir_2 = args.audio
# Vérification que les deux dossiers sont renseignés
if not source_dir_1 or not source_dir_2:
parser.error("Vous devez fournir soit -va, soit à la fois -v et -a.")
serie_name = args.nom
saison = args.saison
# Chemin de sortie
dest_dir = f"{args.dest}/{serie_name}/Saison {saison}"
Path(dest_dir).mkdir(parents=True, exist_ok=True)
for i in range(1, 31):