A script that can generate a new SRT file by merging two existing SRT files, with commands and stuff.
Find a file
2025-04-11 12:06:59 +02:00
merge_srt.py fix: handle command file comments properly 2025-04-09 12:02:41 +02:00
README.md docs: fix incorrect documentation for the COPY command in README.md 2025-04-11 12:06:59 +02:00

SRTMerger

Overview

The SRTMerger script is designed to merge and manipulate subtitle files in the SRT format. It takes two SRT files and a set of commands to produce a merged output file. This tool can be particularly useful for re-aligning a translation for a slightly different edition of the same movie, where the new edition does not provide that translation. By using the commands, you can adjust the timing and mapping of subtitles to fit the new version.

Usage

The script is initialized with four parameters:

  • srt1_filename: The filename of the first SRT file.
  • srt2_filename: The filename of the second SRT file.
  • commands_filename: The filename containing the commands to process.
  • output_filename: The filename where the merged output will be saved.

Supported Commands

The script supports the following commands:

COPY

Copies a range of subtitles from one file to the output, preserving their original timing.

Syntax:

COPY <source> <start> <end>
  • <source>: The source SRT file (srt1 or srt2).
  • <start>: The starting index of the subtitles to copy.
  • <end>: The ending index of the subtitles to copy.

MAP

Maps text from one file to another with a time offset.

Syntax:

MAP <text_source> <text_start> <time_start> <count>
  • <text_source>: The source SRT file for text (srt1 or srt2).
  • <text_start>: The starting index of the text to map.
  • <time_start>: The starting index of the time to map.
  • <count>: The number of subtitles to map.

SYNC

Synchronizes subtitles between files.

Syntax:

SYNC <text_source> <text_index> <time_index>
  • <text_source>: The source SRT file for text (srt1 or srt2).
  • <text_index>: The index of the text to synchronize.
  • <time_index>: The index of the time to synchronize.

PUT

Puts a specific text at a given index.

Syntax:

PUT <source> <index> <text>
  • <source>: The source SRT file (srt1 or srt2).
  • <index>: The index where the text should be placed.
  • <text>: The text to insert.

Output

The processed commands will generate a merged SRT file saved to the specified output_filename.