Spaces:
Running
Running
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): | |
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}" | |
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) |