{"library":"srt","title":"SRT (Subtitle Parsing)","type":"library","description":"SRT is a tiny, yet featureful Python library designed for robust parsing, modification, and composition of SRT subtitle files. It can handle many broken SRT files and has no dependencies beyond the Python Standard Library. The current version is 3.5.3, with an active, though not rapid, release cadence.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install srt"],"cli":null},"imports":["import srt","srt.parse(...)","srt.compose(...)","from srt import Subtitle"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":null,"github":"https://github.com/cdown/srt","docs":null,"changelog":null,"pypi":"https://pypi.org/project/srt/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import srt\n\nsrt_content = '''\\\n1\n00:01:00,000 --> 00:01:03,000\nHello, world!\n\n2\n00:01:04,000 --> 00:01:07,000\nThis is a test subtitle.\n'''\n\n# Parse an SRT string into Subtitle objects\nsubtitle_generator = srt.parse(srt_content)\nsubtitles = list(subtitle_generator)\n\nprint(f\"Parsed {len(subtitles)} subtitles.\")\nfor sub in subtitles:\n    print(f\"Index: {sub.index}, Start: {sub.start}, End: {sub.end}, Content: {sub.content}\")\n\n# Modify a subtitle\nif subtitles:\n    subtitles[0].content = \"Modified content!\"\n    subtitles[0].start.seconds = 5\n\n# Compose Subtitle objects back into an SRT string\ncomposed_srt = srt.compose(subtitles)\nprint(\"\\n--- Composed SRT ---\")\nprint(composed_srt)\n\n# Example of creating a new subtitle\nnew_sub = srt.Subtitle(index=3, start=srt.timedelta(seconds=10), end=srt.timedelta(seconds=12), content='A brand new subtitle.')\nsubtitles.append(new_sub)\ncomposed_with_new = srt.compose(srt.sort_and_reindex(subtitles))\nprint(\"\\n--- Composed with new and reindexed ---\")\nprint(composed_with_new)","lang":"python","description":"This quickstart demonstrates how to parse an SRT string into a list of `Subtitle` objects, access and modify their properties, and then compose them back into an SRT formatted string. It also shows how to create a new `Subtitle` object and use `srt.sort_and_reindex`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"3.5.3","pypi_latest":"3.5.3","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.6,"avg_import_s":0.05,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"srt","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.03,"mem_mb":1.3,"disk_size":"19.2M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"srt","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.02,"mem_mb":1.3,"disk_size":"20M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"srt","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.09,"mem_mb":1.5,"disk_size":"21.6M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"srt","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.3,"import_time_s":0.08,"mem_mb":1.5,"disk_size":"22M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"srt","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.06,"mem_mb":1.1,"disk_size":"11.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"srt","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3.2,"import_time_s":0.06,"mem_mb":1.1,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"srt","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.05,"mem_mb":1.4,"disk_size":"11.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"srt","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.9,"import_time_s":0.05,"mem_mb":1.2,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"srt","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.03,"mem_mb":1.1,"disk_size":"18.8M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"srt","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.6,"import_time_s":0.02,"mem_mb":1.1,"disk_size":"19M"}]}}