A command-line tool to merge multiple SRT subtitle files with customizable colors, positions, and encodings.
Subtitle merger is a tool for merging two or more subtitles for videos. SRT Merger allows you to merge subtitle files, no matter what language are the subtitles encoded in. The result of this merge will be a new subtitle file which will display subtitles from each merged file.
- Merge multiple SRT subtitle files into one
- Customize subtitle colors for each input file
- Set subtitle position (top/bottom) individually
- Support for different file encodings
- Set global defaults for all files
- Simple and intuitive command-line interface
pip install srtmergerRunning in your Python script:
from srtmerger import Merger
m = Merger(output_path="new.srt")
m.add('fa.srt', color="yellow", encoding="windows-1256")
m.add('en.srt')
m.merge()The basic syntax is:
srtmerger [global options] file1.srt[:options] file2.srt[:options] ...Each subtitle file can have its own configuration using colon-separated options:
e=VALUE,encoding=VALUE: Set the file encoding (e.g., utf-8, utf-16)c=VALUE,color=VALUE: Set the subtitle colortop: Position the subtitles at the top of the screen
-o,--output: Set path for the output file-e,--output-encoding: Set encoding for the output file-E,--default-encoding: Set default encoding for all files-C,--default-color: Set default color for all files-T,--default-top: Set default top position for all files
- Basic merge of two subtitle files:
srtmerger sub1.srt sub2.srt -o output.srt- Set specific options for each file:
srtmerger sub1.srt:encoding=utf-8:color=yellow:top sub2.srt:color=blue --output output.srtThe above command is equivalent to:
srtmerger sub1.srt:e=utf-8:c=yellow:top sub2.srt:c=blue -o output.srt- Use global defaults with some overrides:
srtmerger -o output.srt -E utf-8 -C white sub1.srt sub2.srt:color=blue- Python 3.11 or higher
- Clone the repository:
git clone https://github.com/iraj-jelo/srtmerger.git
cd srtmerger- Install in editable mode with test dependencies:
pip install -e .Run all tests:
python -m unittest discover -s tests -vRun a specific test file:
python -m unittest tests/test_main.py -v- Fork the repository
- Create your feature branch:
git checkout -b feature/my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature/my-new-feature - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- iraj-jelo - Initial work - GitHub
- Initial release
- Basic subtitle merging functionality
- Support for custom colors and positioning
- File encoding options
- Command-line interface
- Bug fix for importing
ColorandMergerclasses in Python
