Prise en charge de multiples SRT pour la même langue pour les sous-titres et nommage de fichiers Forcé

Type de demande :
NOUVELLE FONCTIONNALITÉ

Résumé du problème ou de la suggestion :
Avant de traiter les vidéos avec MCEBuddy, je m’assure que les fichiers SRT sont nommés selon ce que Plex prend en charge pour les sous-titres forcés et SDH. (Adding Local Subtitles to Your Media | Plex Support)

Je souhaiterais que MCEBuddy trouve les SRT correspondants en se basant sur la première partie du nom de fichier pour le traitement et les conserve lors de la sortie.

Par exemple :
Si les fichiers originaux sont ainsi
Title.mp4
Title.eng.srt
Title.eng.cc.srt
Title.eng.forced.srt

Que la sortie soit
Title (2021).mkv
Title (2021).eng.srt
Title (2021).eng.cc.srt
Title (2021).eng.forced.srt

Une chance que cela soit ajouté bientôt ? L’effort manuel de renommage de ces fichiers srt après le traitement est fastidieux.

INFORMATION> 2021-10-30T13:06:27 MCEBuddy.Engine.ConversionJob --> Found SRT file, moving to destination SRT:D:\Temp\working0\Cowboy Bebop - S01E17 - Mushroom Samba.eng.forced.srt Destination:\\NAS\Video\TV\Cowboy Bebop (1998)\Season 01\Cowboy Bebop - S01E17 - Mushroom Samba.eng.srt
2021-10-30T13:06:27 MCEBuddy.Engine.ConversionJob --> Subtitle file \\NAS\Video\TV\Cowboy Bebop (1998)\Season 01\Cowboy Bebop - S01E17 - Mushroom Samba.eng.srt exists, creating a new unique SRT filename
INFORMATION> 2021-10-30T13:06:27 MCEBuddy.Engine.ConversionJob --> Found SRT file, moving to destination SRT:D:\Temp\working0\Cowboy Bebop - S01E17 - Mushroom Samba.eng.srt Destination:\\NAS\Video\TV\Cowboy Bebop (1998)\Season 01\Cowboy Bebop - S01E17 - Mushroom Samba.eng0.srt

(match title).(code langue 2 ou 3 caractères)(.cc ou .sdh ou .forced).srt

Merci

Moi aussi, j’adorerais et je souhaiterais vivement cette fonctionnalité !!!
J’ai de nombreux rips qui incluent 3 jeux de sous-titres configurés pour mon serveur Plex :
.eng.
.eng.sdh.
.eng.forced

Bien que l’option ci-dessus fonctionne en renommant manuellement tous les fichiers srt externes pour qu’ils correspondent au nom du fichier vidéo généré par MCEBuddy, cela ne fusionne toujours pas les sous-titres supplémentaires dans la vidéo (.mkv)
enfin et surtout, la solution ci-dessus NE fonctionne QUE si je « copie » (en utilisant le profil Non traité). Les autres profils qui coupent le début de chaque vidéo ne correspondent plus au fichier vidéo créé par MCEBuddy.
J’ai trouvé une application sur GitHub qui me permet de fusionner mes sous-titres srt externes dans un fichier mkv afin que MCEBuddy puisse traiter la vidéo et le srt en même temps, mais cette application ne conserve pas le nommage des srt et les insère simplement comme 01, 02, 03. Mkvtoolnix Batch Tool

autrement dit, existe-t-il ou pourrait-il exister un moyen pour MCEBuddy de (au minimum) couper, renommer et déplacer les fichiers srt supplémentaires vers le dossier de sortie — en conservant le nommage .eng.forced.srt ?

Comme je ne rogne plus mes fichiers, j’ai écrit un script PowerShell Core que j’exécute comme PreCustomCommand. Je lui transmets le chemin source, le nom de fichier source, le chemin de destination et le nom de fichier destination en paramètres. Il copie tout fichier srt ou vtt correspondant au fichier vidéo source, le renomme pour correspondre au nom final de la vidéo (sans extension) et conserve la langue (je passe à « eng » si c’est « en-US » ou « en ») ainsi que le type s’il existe.
Je l’ai fait en PreCustomCommand car, à ce moment, le processus MCEBuddy normal n’a pas encore cherché de fichier de sous-titres mais possède déjà les métadonnées nécessaires au renommage personnalisé.
Le processus copie plutôt que de déplacer afin de vérifier que le fichier de sous-titres est bien dans la destination ; si c’est le cas, il supprime le fichier source.

profile.config :

PreCustomCommandPath="C:\Program Files\PowerShell\7\pwsh.exe"
PreCustomCommandParameters="\\NAS\Video\Temp\Subtitle-Copy.ps1" -SourcePath "%originalfilepath%" -SourceFileBaseName "%originalfilename%" -DestinationPath "%destinationpath%" -DestinationFileBaseName "%convertedfilename%"
PreCustomCommandPeriod=0
PreCustomCommandCritical=false
PreCustomCommandUiSession=false
PreCustomCommandUiSession=false
PreCustomCommandShowWindows=false
PreCustomCommandExitCodeCheck=false

Subtitle-Copy.ps1 :

[CmdletBinding()]
Param(
    [Parameter(Mandatory = $true)]
    [string]$SourcePath,
    [Parameter(Mandatory = $true)]
    [string]$SourceFileBaseName,
    [Parameter(Mandatory = $true)]
    [string]$DestinationPath,
    [Parameter(Mandatory = $true)]
    [string]$DestinationFileBaseName
)
try {
    $subtitleFileSuffix = ''
    $subtitleFiles = Get-ChildItem -Path $SourcePath -Filter "$($SourceFileBaseName)*" | Where-Object Extension -Match '\.(vtt|srt)'
    if ($subtitleFiles) {
        foreach ($subtitleFile in $subtitleFiles) {
            Write-Host "Subtitle File: $($subtitleFile.Name)"
            $subtitleFileSuffix = $subtitleFile.Name -replace "$([Regex]::Escape($SourceFileBaseName))\.(en-US|en)", '.eng'
            Write-Host "Subtitle File Suffix: $subtitleFileSuffix"
            if (!(Test-Path -Path $DestinationPath)) {
                Write-Host "Create Destination Directory: $DestinationPath"
                New-Item $DestinationPath -Type Directory | Out-Null
            }
            Write-Host "Copy $($subtitleFile.FullName) to $($DestinationPath)\$($DestinationFileBaseName)$($subtitleFileSuffix)"
            Copy-Item -Path $subtitleFile.FullName -Destination "$($DestinationPath)\$($DestinationFileBaseName)$($subtitleFileSuffix)" -Force
            $copyVerify = Test-Path -Path "$($DestinationPath)\$($DestinationFileBaseName)$($subtitleFileSuffix)"
            if ($copyVerify) {
                Write-Host "Delete $($subtitleFile.FullName)"
                Remove-Item -Path $subtitleFile.FullName -Force
            } else {
                Write-Host "Unable to verify $($subtitleFile.FullName) was copied to $($DestinationPath)\$($DestinationFileBaseName)$($subtitleFileSuffix)."
            }
        }
    } else {
        Write-Host 'No subtitle files found that match $($SourcePath)\$($SourceFileBaseName)* with extension srt or vtt.'
    }
} catch {
    $error[0]
}

Cette fonctionnalité a été ajoutée à la version bêta 2.5.7 d’aujourd’hui. Elle devrait détecter les qualificateurs dans les noms de fichiers SRT et les conserver dans les noms de fichiers SRT de destination.

Essayez-la et faites-nous savoir comment cela se passe.

téléchargement de la bêta mise à jour en cours ! merci.!!!

La fonctionnalité ci-dessus ajoutée à la bêta MCEBuddy d’aujourd’hui va-t-elle également rogner les fichiers eng.xxx.srt supplémentaires, les renommer et les copier vers leur destination ?

MCEBuddy synchronise le srt avec la conversion. Donc, par exemple, si les fichiers convertis ont les 60 premières secondes coupées, il en fera de même pour le srt. Si le fichier converti a des sections de publicités supprimées, il mettra également à jour les fichiers srt pour supprimer ces sections.