Introduction ============ ``pycaption`` is a caption reading/writing module. Use one of the given Readers to read content into a CaptionSet object, and then use one of the Writers to output the CaptionSet into captions of your desired format. Turn a caption into multiple caption outputs: :: srt_caps = '''1 00:00:09,209 --> 00:00:12,312 This is an example SRT file, which, while extremely short, is still a valid SRT file. ''' converter = CaptionConverter() converter.read(srt_caps, SRTReader()) print(converter.write(SAMIWriter())) print(converter.write(DFXPWriter())) print(converter.write(pycaption.transcript.TranscriptWriter())) print(converter.write(MicroDVDWriter())) Not sure what format the caption is in? Detect it: :: from pycaption import detect_format caps = '''1 00:00:01,500 --> 00:00:12,345 Small caption''' reader = detect_format(caps) if reader: print(SAMIWriter().write(reader().read(caps))) Or if you expect to have only a subset of the supported input formats: :: caps = '''1 00:00:01,500 --> 00:00:12,345 Small caption''' if SRTReader().detect(caps): print(SAMIWriter().write(SRTReader().read(caps))) elif DFXPReader().detect(caps): print(SAMIWriter().write(DFXPReader().read(caps))) elif SCCReader().detect(caps): print(SAMIWriter().write(SCCReader().read(caps))) elif MicroDVDReader().detect(caps) print(SAMIWriter().write(MicroDVDReader().read(caps))) Python Usage ------------ Example: Convert from SAMI to DFXP :: from pycaption import SAMIReader, DFXPWriter sami = '''NOVA3213

( clock ticking )

FRENCH LINE 1!

 

MAN:
When we think
of E equals m c-squared,

FRENCH LINE 2?

''' print DFXPWriter().write(SAMIReader().read(sami)) Which will output the following: ::