for line in lines: match = re.match(r'[(\d2:\d2:\d2)]\s*(.+)', line) if match: time_str, text = match.groups() # Simple conversion: assume each subtitle lasts 3 seconds start = time_str h, m, s = map(int, start.split(':')) end_seconds = h 3600 + m 60 + s + 3 end = f"end_seconds//3600:02:(end_seconds%3600)//60:02:end_seconds%60:02" srt_output.append(f"counter\nstart,000 --> end,000\ntext\n") counter += 1
srt_output = [] counter = 1
Below is a complete guide to converting TXT to SRT, from manual editing to automated tools. | Feature | TXT | SRT | |---------|-----|-----| | Content | Just plain text | Text + timestamps + subtitle index | | Timing | No time information | Start and end times for each subtitle | | Use case | Notes, transcripts | Video subtitles, captions | how to convert txt to srt file
import re with open('input.txt', 'r') as f: lines = f.readlines() for line in lines: match = re
[00:00:01] Hello world [00:00:04] This is a test You can write a simple Python script: line) if match: time_str
1 00:00:01,000 --> 00:00:04,000 This is the first subtitle. 2 00:00:04,500 --> 00:00:07,200 And here's the second one.