[BUG] MINEUR : Médias avec des encodages de caractères différents dans le nom de l’émission (apostrophe = â€tm (aEtm))

J’enregistre une émission dont le titre contient une apostrophe, à la fois sur mon HDHR et sur mon Tivo.
J’utilise KMTTG pour transférer mes fichiers en TS depuis le Tivo et les transcoder en MP4 brut (sans compression, uniquement parce que je n’arrive pas à contourner cette étape et laisser MCEBuddy traiter le TS brut). J’utilise KMTTG car je ne souhaite traiter que certaines émissions du Tivo.

Je me retrouve avec deux répertoires contenant les fichiers de la même émission :
Christopher Kimballâ€tms Milk Street Television
et aussi
Christopher Kimball’s Milk Street Television
Je pense que les fichiers Tivo atterrissent dans le dossier au nom d’émission corrompu.

Sur le système de fichiers, c’est encore plus étrange. J’obtiens TROIS répertoires :

  1. Christopher Kimball’s Milk Street Television (apostrophe correcte – probablement source HDHR)
  2. Christopher Kimball’s Milk Street Television (UTF-8 mal interprété – source Tivo, issue des métadonnées internes)
  3. Christopher Kimballs Milk Street Television (apostrophe supprimée – également du Tivo, mais version MP4 transcodée par KMTTG, qui visiblement ne conserve pas les métadonnées internes).

Il se peut même que les données de guide soient différentes selon la chaîne d’enregistrement, ou que les règles de correction spéciales que j’ai configurées forcent l’utilisation des infos TVDB pour certains enregistrements, ce qui expliquerait l’apostrophe manquante.

J’ai trouvé un article PHP qui pourrait apporter une solution :

et qui conseille d’utiliser « iconv(“UTF-8”, “CP1252”, $data) ».
Le problème semble être que mon système de fichiers (Windows) utilise le jeu de caractères Windows Code Page 1252 (suffisamment proche de l’ISO-1252 pour être fonctionnellement équivalent).

Je soupçonne que le Tivo utilise des noms de fichiers (ou de séries dans les métadonnées) encodés en UTF-8, ce qui provoque la bizarrerie de l’apostrophe « smart quote » traduite différemment entre les deux sources de fichiers média.

Plus d’informations - l’étrange ’ apparaît dans le nom de l’émission utilisé dans le nom de fichier, la description des métadonnées et les métadonnées internes pour « Showname ».
Je retrouverai le fichier journal et le fichier multimédia pour le téléchargement si vous voulez voir le flux via MCEBuddy.

J’ai également réduit le problème à ces fichiers provenant du Tivo, après extraction par KMTTG.

J’ai identifié la source dans les fichiers extraits par KMTTG, mais il semble y avoir des problèmes supplémentaires lorsque MCEBuddy les traite.
KMTTG extrait le fichier .TS brut, puis le transcode (brut) en un fichier .MP4. Il y a donc deux fichiers dans le répertoire de sortie « Tivo » surveillé par MCEBuddy dans mon profil Tivo.
Voici un extrait du journal pour le fichier .MP4. Remarquez que KMTTG a complètement supprimé l’apostrophe du nom de l’émission, ce qui explique le traitement ultérieur par MCEBuddy en MKV.

Cependant, il semble y avoir un problème dans le traitement des exceptions (dans le journal du fichier MP4) :

INFORMATION> --> Task -> MKV-TV-HD
Profile -> HEVC MKV
Source File -> F:\Recorded TV\Tivo\Christopher Kimballs Milk Street Television-S03E06-Chicken Around the World-2019-10-11.mpg

Pas d’apostrophe dans « Kimball’s » - supprimée par KMTTG avant que MCEBuddy ne la voie.
Voici la section où je pense que le nom de fichier/métadonnées ne fonctionne pas comme je le pense.

Download Series Details -> True
Download Banner -> True
Overwrite metata from Title -> False
Overwrite metata from Internet -> Default
Metadata Correction => Option 0
[...]
Original Title -> Christopher Kimball*
Corrected Title -> 
TVDB Series Id -> 334523
IMDB Series Id -> 

Remarquez le caractère générique placé pour ignorer la présence ou non de l’apostrophe (ou est-ce que je ne fais pas le regex correctement ?). J’ai le même problème avec « America’s Test Kitchen » pour les mêmes raisons.

Voici la section du journal qui, je pense, montre que l’info TVDB n’est pas utilisée (ce qui signifie que le remplacement n’a pas fonctionné comme prévu).

INFORMATION> 2019-10-19T16:33:37 MCEBuddy.Engine.ConversionJob --> Current System language is English (United States) (eng)
INFORMATION> 2019-10-19T16:33:37 MCEBuddy.Engine.ConversionJob --> Converting file -> F:\Recorded TV\Tivo\Christopher Kimballs Milk Street Television-S03E06-Chicken Around the World-2019-10-11.mpg
INFORMATION> 2019-10-19T16:33:40 MCEBuddy.Engine.ConversionJob --> Running custom commands
INFORMATION> 2019-10-19T16:33:40 MCEBuddy.Transcode.CustomCommand --> No custom commands found
INFORMATION> 2019-10-19T16:33:40 MCEBuddy.Engine.ConversionJob --> Getting show information and banner from Internet sources
INFORMATION> 2019-10-19T16:33:40 MCEBuddy.MetaData.VideoMetaData --> Extracting Generic Tags
INFORMATION> 2019-10-19T16:33:40 MCEBuddy.MetaData.VideoMetaData --> Downloading Series details
INFORMATION> 2019-10-19T16:33:40 MCEBuddy.MetaData.VideoMetaData --> Recording Type Show
INFORMATION> 2019-10-19T16:33:40 MCEBuddy.MetaData.VideoMetaData --> Checking TheTVDB
WARNING> 2019-10-19T16:33:54 MCEBuddy.MetaData.VideoMetaData --> TheTVDB failed
INFORMATION> 2019-10-19T16:33:54 MCEBuddy.Engine.ConversionJob --> Checking for destination file skip reprocessing
WARNING> --> Cannot find AirYear
WARNING> --> Cannot find AirMonth
WARNING> --> Cannot find AirDay
INFORMATION> 2019-10-19T16:33:54 MCEBuddy.Engine.ConversionJob --> Destination file F:\Video\TV Shows\Christopher Kimballs Milk Street Television\Season 03\Christopher Kimballs Milk Street Television-S03E06-Chicken Around the World 2019 10 11---.mkv does not exist, continuing with conversion
INFORMATION> 2019-10-19T16:33:54 MCEBuddy.Engine.ConversionJob --> Running custom commands
WARNING> --> Cannot find AirYear
WARNING> --> Cannot find AirMonth
WARNING> --> Cannot find AirDay
WARNING> --> Cannot find AirYear
WARNING> --> Cannot find AirMonth
WARNING> --> Cannot find AirDay
INFORMATION> 2019-10-19T16:33:54 MCEBuddy.Transcode.CustomCommand --> No custom commands found

Ensuite, ce qui est encore plus étrange, c’est que MCEBuddy examine le fichier .TS pendant la tâche de conversion. (Voir ci-dessous).

INFORMATION> 2019-10-19T16:34:46 MCEBuddy.Engine.ConversionJob --> Analyzing video information
INFORMATION> 2019-10-19T16:34:46 MCEBuddy.VideoProperties.VideoInfo --> Reading MediaInfo from F:\Temp\working0\Christopher Kimballs Milk Street Television-S03E06-Chicken Around the World-2019-10-11.ts
INFORMATION> 2019-10-19T16:34:53 MCEBuddy.VideoProperties.VideoInfo --> Supplementing Media information using FFMPEG
INFORMATION> 2019-10-19T16:34:55 MCEBuddy.VideoProperties.VideoInfo --> Reading Original File Media information

Des idées ? Je vais voir soit pour que KMTTG ne transcode pas le fichier .TS en MP4, soit pour le supprimer une fois terminé.

Quoi qu’il en soit, j’ai un processus cassé : le fichier MP4 n’a pas du tout d’apostrophe, et le fichier .TS reçoit l’apostrophe UTF-8 bizarre qui n’est pas convertie en CP1252 (l’ASCII habituel).

Voici la section du journal de traitement MCEBuddy pour la version .TS du fichier. C’est celle qui semble être renommée et utilise le caractère apostrophe UTF8 incorrectement converti (je ne peux pas dire si c’est une apostrophe ou une « guillemet intelligent », c’est-à-dire une apostrophe fermante au lieu d’une vraie apostrophe).

INFORMATION> 2019-10-19T15:35:40 MCEBuddy.Engine.ConversionJob --> Conversion du fichier -> F:\Recorded TV\Tivo\Christopher Kimballs Milk Street Television-S03E06-Chicken Around the World-2019-10-11.TiVo
INFORMATION> 2019-10-19T15:35:43 MCEBuddy.Engine.ConversionJob --> Exécution des commandes personnalisées
INFORMATION> 2019-10-19T15:35:43 MCEBuddy.Transcode.CustomCommand --> Aucune commande personnalisée trouvée
INFORMATION> 2019-10-19T15:35:43 MCEBuddy.Engine.ConversionJob --> Récupération des informations de l’émission et de la bannière depuis les sources Internet
INFORMATION> 2019-10-19T15:35:43 MCEBuddy.MetaData.VideoMetaData --> Extraction des balises génériques
WARNING> 2019-10-19T15:35:43 MCEBuddy.MetaData.VideoMetaData --> Impossible d’extraire les métadonnées du fichier F:\Recorded TV\Tivo\Christopher Kimballs Milk Street Television-S03E06-Chicken Around the World-2019-10-11.TiVo. F:\Recorded TV\Tivo\Christopher Kimballs Milk Street Television-S03E06-Chicken Around the World-2019-10-11.TiVo (taglib/tivo)
INFORMATION> 2019-10-19T15:35:43 MCEBuddy.MetaData.FileExtractMetadata --> Extraction des métadonnées TiVo à l’aide de TDCat
INFORMATION> 2019-10-19T15:35:45 MCEBuddy.MetaData.FileExtractMetadata --> Extraction des balises XML
INFORMATION> 2019-10-19T15:35:45 MCEBuddy.MetaData.VideoMetaData --> Téléchargement des détails de la série
INFORMATION> 2019-10-19T15:35:45 MCEBuddy.MetaData.VideoMetaData --> Type d’enregistrement : Émission
INFORMATION> 2019-10-19T15:35:45 MCEBuddy.MetaData.VideoMetaData --> Vérification sur TheTVDB
WARNING> --> Aucune correspondance trouvée sur TVDB pour la langue fr
INFORMATION> 2019-10-19T15:35:46 MCEBuddy.Engine.ConversionJob --> Vérification du saut de retraitement du fichier de destination
INFORMATION> 2019-10-19T15:35:46 MCEBuddy.Engine.ConversionJob --> Le fichier de destination F:\Video\TV Shows\Christopher Kimball’s Milk Street Television\Season 03\Christopher Kimball’s Milk Street Television-S03E06-Chicken Around the World-2019-10-12.mkv n’existe pas, poursuite de la conversion

Notez que le fichier .TiVo original (.TS) ne contient pas d’apostrophe, mais celle-ci semble être insérée dans le nom de l’émission lors de l’extraction des métadonnées du fichier TiVo (.TS).

Dans les deux cas, il y a également des problèmes : 1) le remplacement du nom/de la correspondance TVDB n’est pas appliqué, et 2) le transcodage matériel GPU nVidia pour le codec H.265 HEVC n’est pas utilisé.

J’ai besoin du journal complet pour voir ce qui se passe. Cela vient très probablement de l’extraction des métadonnées TiVO. Avoir le fichier MPG original ainsi que la clé MAK serait encore mieux pour vérifier.