A tiny library for parsing, modifying, and composing SRT files.
Project description
srt is a tiny Python library for parsing, modifying, and composing SRT files. Take a look at the quickstart for a basic overview of the library. Detailed API documentation is also available.
Want to see some examples of its use? Take a look at the tools shipped with the library.
Why choose this library?
Extremely lightweight, excluding docstrings/comments/etc around 200 SLOC
High quality test suite using Hypothesis
100% test coverage (including branches)
Well documented API, at both a high and low level
Native support for Python 2 and 3
No dependencies outside of the standard library
Tolerant of many common errors found in real-world SRT files
Completely Unicode compliant
Real world tested — used in production to process thousands of SRT files every day
Portable – runs on Linux, OSX, and Windows
Usage
Tools
There are a number of tools shipped with the library to manipulate, process, and fix SRT files. Here’s an example using hanzidentifier to strip out non-Chinese lines:
$ cat pe.srt
1
00:00:33,843 --> 00:00:38,097
Only 3% of the water on our planet is fresh.
地球上只有3%的水是淡水
2
00:00:40,641 --> 00:00:44,687
Yet, these previous waters are rich with surprise.
可是这些珍贵的淡水中却充满了惊奇
3
00:00:57,908 --> 00:01:03,414
All life on land is ultimately dependent on fresh water.
所有陆地生命归根结底都依赖於淡水
$ srt lines-matching -m hanzidentifier -f hanzidentifier.has_chinese -i pe.srt
1
00:00:33,843 --> 00:00:38,097
地球上只有3%的水是淡水
2
00:00:40,641 --> 00:00:44,687
可是这些珍贵的淡水中却充满了惊奇
3
00:00:57,908 --> 00:01:03,414
所有陆地生命归根结底都依赖於淡水
See the srt_tools/ directory for more information.
Library
Detailed API documentation is available, but here are the basics:
>>> # list() is needed as srt.parse creates a generator
>>> subs = list(srt.parse('''\
... 1
... 00:00:33,843 --> 00:00:38,097
... 地球上只有3%的水是淡水
...
... 2
... 00:00:40,641 --> 00:00:44,687
... 可是这些珍贵的淡水中却充满了惊奇
...
... 3
... 00:00:57,908 --> 00:01:03,414
... 所有陆地生命归根结底都依赖於淡水
...
... '''))
>>> subs
[Subtitle(index=1, start=datetime.timedelta(0, 33, 843000), end=datetime.timedelta(0, 38, 97000), content='地球上只有3%的水是淡水', proprietary=''),
Subtitle(index=2, start=datetime.timedelta(0, 40, 641000), end=datetime.timedelta(0, 44, 687000), content='可是这些珍贵的淡水中却充满了惊奇', proprietary=''),
Subtitle(index=3, start=datetime.timedelta(0, 57, 908000), end=datetime.timedelta(0, 63, 414000), content='所有陆地生命归根结底都依赖於淡水', proprietary='')]
>>> print(srt.compose(subs))
1
00:00:33,843 --> 00:00:38,097
地球上只有3%的水是淡水
2
00:00:40,641 --> 00:00:44,687
可是这些珍贵的淡水中却充满了惊奇
3
00:00:57,908 --> 00:01:03,414
所有陆地生命归根结底都依赖於淡水
Installation
To install the latest stable version from PyPi:
pip install -U srt
To install the latest development version directly from GitHub:
pip install -U git+https://github.com/cdown/srt.git@develop
Testing
pip install tox
tox -e quick
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.