Alors, voilà, déjà, tout fonctionne avec macOS, et à priori windows vu que j'avais commencé le développement sous windows.
Faudra pas t'affoler quand tu verras le code hein
Tu vas trouver dans la pièce jointe plusieurs choses :
- C'est le script principal, à lancer. Il va falloir modifier certains chemins d'accès aux binaires qui sont nécessaires. Et si tu comprends le PowerShell, je t'invite à regarder ce qu'il fait. En gros, il va appeler les différents scripts situés dans le dossier modules (ce sont des regroupements de fonctions, et de classes). Ensuite, il va appeler le fichier de réglages (n°2), et enfin le fichier contenant tout le code
main-script.ps1
.
Il te faudra installer MKVToolnix, MediaInfo CLI et FFmpeg.
Sous windows, je te conseille d'utiliser winget (via wingetUI), et sous macOS HomeBrew.
Je n'ai pas testé sous linux, donc je ne sais pas si ça fonctionnerait...
- C'est le fichier de réglages que tu vas devoir modifier. Et c'est là que tu ne devras pas t'affoler (voir la config plus bas).
- C'est le dossier qui contient les fonctions et valeurs par défaut. Normalement, tu n'as pas besoin d'y toucher. Mais comme précédemment, tu peux y jeter un oeil pour voir comment c'est fait.
Alors, maintenant, la phase de configuration.
J'ai codé le script de manière à récupérer les ID des pistes que tu veux garder, de les nommer correctement (c'est-à-dire selon tes choix), et à tout remettre dans un MKV correctement. Car j'ai eu des sources où c'était un bazar infame, où les ID des pistes ne se suivaient pas, ou certains ID étaient manquants... Bref, un bordel.
Et comme je n'avais pas envie de ma farcir chaque fichier un par un avec MKVToolnix... j'ai codé tout ça.
Je n'ai pas le temps de revoir tout mon code pour simplifier les choses afin que ça récupère le titre des pistes automatiquement et que ça l'utilise, il faudra choisir toi-même le titre.
Ça va te paraître fastidieux, mais une fois fait, pour toute ta série, ça sera fluide ensuite. Et surtout ce sera propre.
Donc tu vas devoir choisir plusieurs choses. C'est assez commenté dans le script, mais voilà les différentes choses à modifier dans le fichier de configuration (point n°2).
PS : je ne détaillerais que les paramètres non documentés ou un peu complexe.
- Ligne 6 : c'est pour faire une pause une fois que tous les paramètres sont récupérés, juste avant le merge. Donc rien n'aura encore été fait. Tu peux alors faire un CMD+C (ou CTRL+C) pour arrêter le script. Ça permet de vérifier que tout est OK pour le merge final.
- Ligne 8 & 9 : c'est pour enlever les points du nom du fichier jusqu'à SxxExx pour une série, ou jusqu'à l'année pour un film.
Je considère la convention de nomage suivante pour le fichier final :
- Titre Série (Année) - SxxExx - blabla.mkv
- Titre Film (Année) - blabla.mkv
L'année est facultative mais aide les indexeurs.
- Ligne 12 à 14 : C'est pour renommer le fichier final en mode regex. Il faudra adapter en fonction de ton fichier source.
Tu peux désactiver en mettant à $false
la variable $rename_filename
.
Là, tu modifies les chemins d'accès.
Si tu n'utilises qu'un seul fichier source, il faut utiliser la variable
$sourceDirectory_1
.
Ne mets pas le / ou \ final.
Là tu commences à paramétrer les noms de pistes, et surtout quelle(s) piste(s) tu veux conserver.
Il faut utilise les codes de lange pour les variables
$xxxx_Lang
: en pour anglais, fr pour français, etc... (voir ici je pense :
https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes ).
Tu peux choisir jusqu'à 2 pistes audio.
La ligne 43 à 45 est là pour chercher une piste si jamais il y a plusieurs langues identiques dans la source, ou bien si le tag de langue est mal fait... C'est aussi du regex. Mais il vaut mieux mettre le nom de la piste source.
De ligne 57 à 69, c'est que si tu veux conserver les sous-titres SRT (max 3) déjà dans la source.
Mais vu ce que tu me dis, tu vas vouloir convertir les ASS donc là tu ne changes rien, si ce n'est vérifier que
Internal_SUB_Number = 0;
Ligne 84 : tu laisses à false, car la conversion et l'intégration sont gérés via ce qui est à la fin.
Là !
Tu laisses à true, bien évidemment, et tu paramètres jusqu'à 2 ASS/SSA à convertir en suivant les consignes précédentes sur la langue et le nom pour la recherche.
Ligne 105 & 106 : ici, tu dois impérativement laisser les
0:
devant chaque paramètre de langue/titre etc... Car les fichiers convertis sont traités comme des fichiers séparés.
Pour les sous-titres, le SDH c'est pour les sourds/malentendants. forced_track c'est pour un affichage forcé, lorsque le dialogue n'est pas dans la langue audio choisie, le sous-titre est dit forcé, donc mis en automatique :
default:yes
.
Voilà voilà
Tu auras compris qu'il faut investir un peu de temps sur le paramétrage
Tu pourras aussi merger deux MKV en choisissant les pistes à garder (la vidéo c'est obligatoirement le MKV1), les sous-titres internes, ou externes, etc...
Bon amusement