A pure Python library and CLI tool for converting between subtitle and caption formats like STL, SRT, TTML, SCC, and WebVTT.
ttconv is a Python library and command-line tool designed for converting between various timed text formats used in subtitles and captions, such as STL, SRT, TTML, SCC, and WebVTT. It solves the problem of format interoperability in media workflows, enabling seamless translation of subtitle files across different standards and applications.
Media engineers, subtitle translators, and developers working on video processing pipelines, accessibility tools, or localization platforms that require reliable subtitle format conversion.
Developers choose ttconv for its pure Python implementation, support for industry-standard formats, and flexible architecture based on a canonical TTML model, which ensures accurate conversions and optional filtering for specific output requirements.
Subtitle conversion library and CLI tool. Converts between STL, SRT, TTML, SCC, TTML and WebVTT files.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Converts between key industry standards like SCC, STL, SRT, WebVTT, and IMSC, enabling interoperability in media workflows, as detailed in the Format support section.
Uses a canonical model inspired by TTML 2 and IMSC profiles for consistent processing, ensuring reliable conversions and extensibility, as emphasized in the Philosophy.
Offers extensive JSON parameters for readers, writers, and filters, such as frame rate settings for IMSC output or text alignment for SCC, allowing precise control over conversions.
Includes filters like LCD for simplifying styling and IMSC 1.1 validation for compliance checks, adapting content for specific use cases without manual editing.
Missing support for popular formats like .ass (Advanced SubStation Alpha), which are common in fan-subbing and some applications, limiting its versatility.
The extensive JSON configuration with numerous options (e.g., 'fps', 'time_format', filter parameters) can be overwhelming for simple conversions or beginners.
Being a CLI and library tool, it lacks a user-friendly GUI, making it less accessible for non-developers or quick edits compared to tools like Subtitle Edit.
The IMSC 1.1 Text Profile filter is not a substitute for a full validator, as admitted in the README, reducing its effectiveness for strict compliance testing.