pysrt
pysrt is a Python library used to edit or create SubRip files.
Foreword
pysrt is mainly designed as a library, but if you are experiencing troubles with bad subtitles you can first try to use ruby-osdb which will try to find the best subtitle for your movie. If you are still unlucky pysrt also provide an srt command useful for either shift, split, or rescale a .srt file.
Command Usage
Shifting:
$ srt -i shift 2s500ms movie.srt
Spliting:
$ srt split 58m26s movie.srt
Rescaling:
$ srt -i rate 23.9 25 movie.srt
Installation
pysrt is available on pypi. To intall it you can use either
pip:
$ sudo pip install pysrt
or distutils:
$ sudo easy_install pysrt
It is compatible with python >= 2.6 and 3.
Library Usage
Import:
>>> import pysrt
Parsing:
>>> subs = pysrt.open('some/file.srt')
# If you get a UnicodeDecodeError try to specify the encoding
>>> subs = pysrt.open('some/file.srt', encoding='iso-8859-1')
SubRipFile are list-like objects of SubRipItem instances:
>>> len(subs) >>> first_sub = subs[0]
SubRipItem instances are editable just like pure Python objects:
>>> first_sub.text = "Hello World !" >>> first_sub.start.seconds = 20 >>> first_sub.end.minutes = 5
Shifting:
>>> subs.shift(seconds=-2) # Move all subs 2 seconds earlier
>>> subs.shift(minutes=1) # Move all subs 1 minutes later
>>> subs.shift(ratio=25/23.9) # convert a 23.9 fps subtitle in 25 fps
>>> first_sub.shift(seconds=1) # Move the first sub 1 second later
>>> first_sub.start += {'seconds': -1} # Make the first sub start 1 second earlier
Removing:
>>> del subs[12]
Slicing:
>>> part = subs.slice(starts_after={'minutes': 2, 'seconds': 30}, ends_before={'minutes': 3, 'seconds': 40})
>>> part.shift(seconds=-2)
Saving changes:
>>> subs.save('other/path.srt', encoding='utf-8')
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pysrt-1.1.2.tar.gz.
File metadata
- Download URL: pysrt-1.1.2.tar.gz
- Upload date:
- Size: 104.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4f844ba33e4e7743e9db746492f3a193dc0bc112b153914698e7c1cdeb9b0b9
|
|
| MD5 |
df8da2dcf345810899bf92396e22bb68
|
|
| BLAKE2b-256 |
311a0d858da1c6622dcf16011235a2639b0a01a49cecf812f8ab03308ab4de37
|