In [1]: import srt, pysrt In [2]: with open('/dev/shm/John Wick 2.srt') as f: ...: srt_data = f.read() In [3]: len(srt_data) Out[3]: 31832 In [4]: %timeit -n 1000 list(srt.parse(srt_data)) 7.09 ms ± 90.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) In [5]: %timeit -n 1000 pysrt.SubRipFile.from_string(srt_data) 9.9 ms ± 116 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) In [6]: %timeit -n 1000 pysrt.open('/dev/shm/John Wick 2.srt') 15.8 ms ± 280 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)