Rosetta-AI / helpers /srt_generator.py
adeeb-khoja's picture
commit 2
9c1d41d verified
from datetime import timedelta
import json
# Sample list of subtitle objects
subtitles = [
{
"text": " The entire world has been suffering due to the climate change dilemma.",
"start": 0.0,
"end": 9.88,
"id": 0
},
# Add more subtitle objects here
]
class SRTGenerator(object):
@classmethod
def format_time(cls,seconds):
"""Convert seconds to SRT time format (hh:mm:ss,ms)"""
ms = int((seconds - int(seconds)) * 1000)
td = str(timedelta(seconds=int(seconds)))
return f"{td},{ms:03d}"
@classmethod
def generate_srt(cls,subtitles, output_file):
with open(output_file, 'w') as f:
for sub in subtitles:
start_time = cls.format_time(sub['start'])
end_time = cls.format_time(sub['end'])
text = sub['text'].strip()
srt_entry = f"{sub['id'] + 1}\n{start_time} --> {end_time}\n{text}\n\n"
f.write(srt_entry)
if __name__ == "__main__":
segments_file = "segments.json"
with open(segments_file, 'r') as f:
segments = json.load(f)
output_srt_file = "subtitles.srt"
SRTGenerator.generate_srt(segments, output_srt_file)