-
-
Save fabricionaweb/1b1ead2635391d976dc4d1d7e5bb706a to your computer and use it in GitHub Desktop.
Simple OGM chapters generator for MKVToolNix
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Simple OGM chapters generator for MKV Video | |
| # ------------------------------------------- | |
| # Use it like this: | |
| # $ python ogm-chapters.py times.txt [chapters.txt] | |
| # Where times.txt contains timestamps separated by a whitespace or comma | |
| import sys | |
| from pathlib import Path | |
| import re | |
| prefix = 'Chapter ' | |
| if len(sys.argv) <= 1: | |
| print('Input file not specified') | |
| sys.exit(1) | |
| inputFileName = Path(sys.argv[1]) | |
| if not inputFileName.is_file(): | |
| print('Input file does not exist') | |
| sys.exit(1) | |
| outputFile = sys.stdout | |
| if len(sys.argv) > 2: | |
| outputFile = open(Path(sys.argv[2]), 'w', encoding='utf-8') | |
| with open(inputFileName, 'r', encoding='utf-8') as inputFile: | |
| times = re.split(r'[\s,]+', inputFile.read()) | |
| i = 0 | |
| digits = len(str(len(times))) | |
| for t in times: | |
| t = t.strip() | |
| if re.fullmatch(r'[0-9.:]{2,}', t): | |
| outputFile.write(f'CHAPTER{i:0{digits}d}={t}\n') | |
| outputFile.write(f'CHAPTER{i:0{digits}d}NAME={prefix}{i+1:0{digits}d}\n') | |
| i += 1 | |
| if outputFile != sys.stdout: | |
| outputFile.close() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment