.srt and Merge Python Script

Hi all,

I’m hoping someone could give me a hand with a CLI command that I build from a Python Script. Example command follows:

/usr/bin/mkvmerge -o '/mnt/Media/Downloads/Ingest/Spider-Man Across the Spider-Verse (2023)/Test_ATSV.part-001.optimised.mkv' --no-subtitles --video-tracks 0 --audio-tracks 1 --language 0:eng --track-name 0:"English (SDH)" --default-track 0:False --forced-track 0:False '/mnt/Media/Downloads/Ingest/Spider-Man Across the Spider-Verse (2023)/6.srt' --language 0:eng --track-name 0:"English" --default-track 0:False --forced-track 0:False '/mnt/Media/Downloads/Ingest/Spider-Man Across the Spider-Verse (2023)/5.srt' '/mnt/Media/Downloads/Ingest/Spider-Man Across the Spider-Verse (2023)/Test_ATSV.part-001.mkv'

Heres how the script builds the above command:

If not already apparent, the track IDs for Video and Audio are just integers from my input/original file, and the subtitles are .srt files which are full blown filepaths that I’m applying properties to.

Whenever the command fires, I get this output and I’m unsure what I’m doing wrong.

When I strip out the .srt ‘parts’ of the remux CLI and just run the following, it selects my video and audio tracks perfectly fine so I think the issue is how I’ve structured the .srt ‘append’.

/usr/bin/mkvmerge -o '/mnt/Media/Downloads/Ingest/Spider-Man Across the Spider-Verse (2023)/Test_ATSV.part-001.optimised.mkv' --no-subtitles --video-tracks 0 --audio-tracks 1 '/mnt/Media/Downloads/Ingest/Spider-Man Across the Spider-Verse (2023)/Test_ATSV.part-001.mkv'

Output of the above:

If anyone has any idea what I have to do to modify the manual logic so that I can append the .srt file(s), I can probably reverse engineer the logic for the python script as I know its probably missing a lot of contextual information.

Thanks in advance!

Welcome!

I highly suggest you read the following pieces of documentation which are all applicable to your questions:

Additionally you can play around with MKVToolNix GUI. Set up different multiplex jobs the way you like them, then select “Multiplexer” → “Show command line”. That’ll show you the exact command line the GUI would execute for the current job.

You’re joking!

Didn’t even know show command line was an option using the GUI. Will defs have a play around with that and report back.

Thanks in advance!