pysrt
SubRip (.srt) subtitle parser and writer
Decision gist · record as of 2026-08-14
Yes, if your use case is stable and read-only (parsing, shifting, rescaling existing .srt files). The library is mature, dependency-free, and widely used. No, if you need active maintenance, bug fixes, or support for modern Python versions beyond what the classifiers claim. The GPLv3 license is a hard blocker for proprietary software. The high install friction (source-only) may complicate deployment on some platforms.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- No runtime dependencies, but source-only distribution requires a C compiler or pre-built wheel availability on your platform.
- High install friction due to source-only distribution (pysrt-1.1.2.tar.gz).
- Maintenance is abandoned—last release was 2020-01-20 and last commit 2023-05-09, with no active development.
License · maintenance · safety
GPLv3 (copyleft) — GPLv3 copyleft license requires that any derivative work or bundled distribution also be licensed under GPLv3. Acceptable for internal tools and open-source projects, but incompatible with proprietary software that cannot adopt copyleft terms.
last release 2020-01-20 (2398 days) · last repo commit 2023-05-09 · 491 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 508,478 downloads/mo, #6,278 on PyPI
Alternatives
Verify before relying
pip install pysrt
import pysrt
subs = pysrt.open('movie.srt')
subs.shift(seconds=-2)
subs.save('movie_shifted.srt')- Whether the package works reliably on modern Python versions (3.10+) despite classifiers only listing up to 3.5.
- Current state of encoding handling and whether it handles modern subtitle edge cases (emoji, complex markup).
What it is and what it does
pysrt is a Python library for reading, modifying, and writing SubRip subtitle files. It exposes subtitles as a list-like collection of editable items, each with text, start time, and end time properties. You can shift all subtitles forward or backward in time, rescale them to match different frame rates, slice ranges, or edit individual entries. The package also includes an srt command-line tool for common operations like time-shifting and frame-rate conversion without writing code.
The library is mature and stable but abandoned—the last release was in January 2020 and the repository shows no recent commits. It has no external runtime dependencies, making installation straightforward on systems with build tools. The GPLv3 license is copyleft, so derivative works must also be open-source. It is suitable for stable, read-only subtitle workflows but not recommended for projects requiring active maintenance or bug fixes.
Use it for
- Batch-shift subtitle timing across a media library to correct sync issues with video files.
- Rescale subtitles from one frame rate to another (e.g., 23.9 fps to 25 fps) for format conversion.
- Programmatically edit or filter subtitle text and timing in video processing pipelines.
- Extract and manipulate subtitle metadata (start/end times, text) for analysis or re-encoding.
- Command-line subtitle adjustment without writing code (srt shift, split, rate commands).
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if your use case is stable and read-only (parsing, shifting, rescaling existing .srt files).
The library is mature, dependency-free, and widely used. No, if you need active maintenance, bug fixes, or support for modern Python versions beyond what the classifiers claim. The GPLv3 license is a hard blocker for proprietary software. The high install friction (source-only) may complicate deployment on some platforms.
Install
pysrt on PyPI
Before you install
High install friction due to source-only distribution (pysrt-1.1.2.tar.gz). Maintenance is abandoned—last release was 2020-01-20 and last commit 2023-05-09, with no active development. Suitable only for stable, read-only subtitle workflows.
No runtime dependencies, but source-only distribution requires a C compiler or pre-built wheel availability on your platform.
License in practice
GPLv3 copyleft license requires that any derivative work or bundled distribution also be licensed under GPLv3. Acceptable for internal tools and open-source projects, but incompatible with proprietary software that cannot adopt copyleft terms.
Quickstart
pip install pysrt
import pysrt
subs = pysrt.open('movie.srt')
subs.shift(seconds=-2)
subs.save('movie_shifted.srt')
Verify before relying
- Whether the package works reliably on modern Python versions (3.10+) despite classifiers only listing up to 3.5.
- Current state of encoding handling and whether it handles modern subtitle edge cases (emoji, complex markup).
Package facts
| License | GPLv3 copyleft |
| Python support | Not specified |
| Install friction | High. Source build required |
| Runtime dependencies | None |
| Maintenance | Abandoned 2,398 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 508,478 / month, #6,278 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: GNU General Public License (GPL)Operating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Topic :: Multimedia :: VideoTopic :: Software Development :: LibrariesTopic :: Text Processing :: Markup |
Evidence: pysrt-1.1.2.tar.gz
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “subrip file editor”
- pysrtpysrt parses, edits, and writes SubRip (.srt) subtitle files,…
- pysubs2pysubs2 loads, edits, and saves subtitle files in multiple formats…
- srtParse, modify, and compose SRT subtitle files with support for broken…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also pysubs2 · srt · aeidon · trakit · webvtt-py · python-stretch · subliminal · pyrubberband · scenedetect · editor