Understøt flere SRT'er for samme sprog til CC og tvungen filnavngivning

Anmodningstype:
NY FUNKTION

Resumé af problemet eller forslaget:
Før jeg behandler videoer gennem MCEBuddy, sørger jeg for at have omdøbt SRT-filerne, så de matcher det, som Plex understøtter med hensyn til Forced og SDH. (Adding Local Subtitles to Your Media | Plex Support)

Jeg ønsker, at MCEBuddy skal finde matchende SRT-filer baseret på den første del af filnavnet til behandling og bevare dette, når de eksporteres.

For eksempel:
Hvis de oprindelige filer ser sådan ud
Title.mp4
Title.eng.srt
Title.eng.cc.srt
Title.eng.forced.srt

Så skal outputtet være som følger
Title (2021).mkv
Title (2021).eng.srt
Title (2021).eng.cc.srt
Title (2021).eng.forced.srt

Er der en chance for, at dette kan tilføjes snart? Den manuelle indsats med at omdøbe disse srt-filer efter behandlingen er besværlig.

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).(lang code 2 or 3 character)(.cc or .sdh or .forced).srt

Tak

Jeg ville også elske og byde denne funktion velkommen!!!
Jeg har mange rips, der indeholder 3 sæt undertekster opsat til brug på min Plex-server:
.eng.
.eng.sdh.
.eng.forced

Selvom ovenstående mulighed virker ved manuelt at omdøbe alle de eksterne srt-filer, så de matcher videofilnavnet genereret af MCEBuddy, fusionerer den stadig ikke de ekstra subs ind i videoen (.mkv)
Sidst og vigtigst virker ovenstående løsning KUN, hvis jeg “kopierer” (bruger Unprocessed-profilen). Andre profiler, som beskærer starten af hver video, matcher ikke længere videofilen oprettet af MCEBuddy.
Jeg har fundet en app på GitHub, som lader mig fusionere mine eksterne srt-subs ind i en mkv-fil, så MCEBuddy kan behandle video og srt på samme tid, men denne app beholder ikke srt-navngivningen og indsætter dem i stedet som 01, 02, 03. Mkvtoolnix Batch Tool

alternativt, findes der eller kunne der være en måde for MCEBuddy til (i det mindste) at beskære, omdøbe og flytte de ekstra srt-filer til outputmappen – og beholde .eng.forced.srt-navngivningen?

Da jeg ikke længere trimmer mine filer, har jeg skrevet et PowerShell Core-script, som jeg udfører som en PreCustomCommand. Jeg sender kildestien, kildefilnavnet, destinationsstien og destinationsfilnavnet som parametre. Det kopierer enhver srt- eller vtt-fil, der matcher kilde-videofilen, omdøber den til at matche det endelige videonavn (uden filtypenavn) og bevarer sproget (dog ændrer jeg det til eng, hvis det er en-US eller en) og typen, hvis nogen.
Jeg gjorde det til en PreCustomCommand, fordi MCEBuddy-processen på det tidspunkt endnu ikke har ledt efter undertekstfiler, men har metadataene, der skal bruges til omdøbning eller brugerdefineret omdøbning.
Processen kopierer i stedet for at flytte, så den kan verificere, at undertekstfilen er i destinationen korrekt, og hvis den er, sletter den kilde-undertekstfilen.

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]
}

Denne funktion er blevet tilføjet til dagens 2.5.7 beta-build. Den bør kunne registrere kvalifikatorer i SRT-filnavne og beholde dem i destinations-SRT-filnavnene.

Prøv det og lad os vide, hvordan det går.

downloader den opdaterede beta nu! tak.!!!

Vil funktionen ovenfor, der er tilføjet til dagens MCEBuddy Beta, også trimme de ekstra eng.xxx.srt-filer samt omdøbe og kopiere dem til deres destination?

MCEBuddy synkroniserer srt-filen med konverteringen. Så hvis for eksempel de første 60 sekunder er beskåret i den konverterede fil, vil den gøre det samme med srt-filen. Hvis den konverterede fil har fjernet nogle reklameafsnit, vil den også opdatere srt-filerne til at fjerne disse afsnit.