Skip to main content

Pyzub: Manipulate subtitles

Pyzub is a small package and CLI for manipulating subtitles

Suported Formats:

  • SubRip [.srt].

Plans to Support:

  • SubStation Alpha [.ssa]
  • SubViewer [.sub]
  • Universal Subtitle Format [.usf]

Installation:

Run pip install pyzub

Command Line Interface:

At the moment only the slide command is available (arguably the most important feature). The slide command of pyzub lets you move your subtitles so you can synchronize them manually.

$ pyzub slide -h
Usage: pyzub slide [OPTIONS] FILEPATH

Options:
  --hours FLOAT
  --minutes FLOAT
  --seconds FLOAT
  --milliseconds FLOAT
  --microseconds FLOAT
  --overwrite           Modifies the subtitle file in place.
  --verbose             Displays a progress bar and a message when finished.
  --help, -h            Show this message and exit.

Example:

This will move your subtitles by 2.5 seconds (you can also give negative values):

$ pyzub slide Game_of_Thrones_s03ep09.srt --seconds 2 --milliseconds 500

By default pyzub will generate an output file named Game_of_Thrones_s03ep09_MODIFIED.srt, unless --overwrite is used. The output file will always be in utf-8 encoding and use your system new line character.

This is OK too:

$ pyzub slide Game_of_Thrones_s03ep09.srt --seconds -70.5 --milliseconds 5000

This would move your subtitles 65.5 seconds back in time.

Package:

You can read a subtitle file:

from pyzub.subfiles import SRTFile

filepath = '/home/user/mysubtitle.srt'
subfile = SRTFile(filepath)

Iterate over the file:

for subtitle in subfile:
	print(subtitle)

Print a SRTFile:

print(subfile)
Relative Path: /home/user/mysubtitle.srt
Codec: ISO-8859-1
No. of Subtitles: 451

Get a subtitle:

# idx could be a number from 1 to 451 in this case
subtitle = subfile.get_subtitle(idx)

Print the subtitle:

print(subtitle)
Index: 1
Start Time: 00:00:04,605
End Time: 00:00:06,105
Text: En un día cualquiera,

An of course modify anything you want directly:

# modify the text
subtile.text = 'modified subtitle'

# times use timedelta from the datetime package
subtitle.start_time = timedelta(minutes=10)
# also, you can assign directly a string
subtitle.end_time = '01:25:59,650'

# write the changes to disk
subfile.dump('/home/user/mysubtitle_modified.srt')

And finally:

print(len(subfile))
# output: 451 (i.e, the number of subtitles in the file)
print(len(subtitle))
# output: 21 (i.e, the number of chars in the subtitle's text attribute)

Planned features:

  • Insert, delete subtitles, etc.
  • Automatic grammar and syntax correction

License

MIT

Metadata

Release files for pyzub 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyzub 0.1.6
File Size Uploaded
pyzub-0.1.6.tar.gz 5.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyzub 0.1.6
File Interpreter ABI Platform
pyzub-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 11.2 kB

Release files / pyzub-0.1.6.tar.gz

Download URL pyzub-0.1.6.tar.gz
Size 5.2 kB
Tags Source
SHA-256 checksum
How to use checksums
6624030d1ed8297a691c48135b918ab27e5d9c57071a5d1ae1bbcd1a0513dcb6
BLAKE2b-256 checksum
How to use checksums
1081530078f3b4c85265859458e027b0ddb6f982d2b943f6c2c286dcff8c7f90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pyzub-0.1.6-py3-none-any.whl

Download URL pyzub-0.1.6-py3-none-any.whl
Size 6.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8923991e385579684391dd1378e74b814e6c503e45d7609d10606617a068436a
BLAKE2b-256 checksum
How to use checksums
af1dcf8c0109b15a9e591f395610c54fa39f08a266718a1647a949646ca3f783
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page