Skip to main content

Closed caption converter

Project description

Build Status pre-commit

pycaption is a caption reading/writing module. Use one of the given Readers to read content into a CaptionSet object, and then use one of the Writers to output the CaptionSet into captions of your desired format.

Tested with Python versions 3.6, 3.7, 3.8 and 3.9. (for Python 2 use pycaption < 1.0.0)

For details, see the documentation.



  • Added newline between merged SRT captions with overlapping timestamps
  • Updated tests for SAMI format
  • Updated tests for SRT format
  • Added zero padding to 1-digit hours outputted by WebVTTWriter


  • Dropped support for Python 3.5
  • Updated tests to run using pytest
  • Added pre-commit config


  • Fixed issue with SCC paint-on buffer not being cleared after storing
  • Removed null DFXPReader captions from the resulting caption list
  • Updated SCCReader double command handling to include the positioning and tab offset case


  • Added MicroDVD format
  • Fix for missing end times when reading multiple SAMI paragraphs inside a SYNC
  • Fix for wrong order when multiple SRT captions have the same timestamp
  • Fix for DFXP timestamps adding leading zeros to 2-digit hours
  • Added support for BeautifulSoup 4.9
  • Added tests for SCC to DFXP conversion when the source contains ampersands
  • Added support for Python 3.9


  • Added language parameter to WebVTTWriter
  • Fix for TranscriptWriter merging words at caption boundary
  • Updated documentation with positioning information
  • Updated DFXP reader to fallback to the document’s language if no language is present on individual <div>
  • Introduced PYCAPTION_DEFAULT_LANG environment variable and set it to default to ‘und’
  • Fixed DFXPReader timestamp validation to accept frames and frames conversion to microseconds


  • Included tests in PyPI tarball
  • Ignore WebVTT empty cues instead of raising an exception
  • Updated BeautifulSoup version to >=4.8.1,<4.9 and fixed failing tests
  • Handled index error when sending bad timestamp for DFXP format


  • Fixed issue with SCC reader including both special characters and their potential substitute
  • Modified enum34 dependency to versions under Python 3.4
  • Removed Python 3.4 and added 3.6, 3.7 and 3.8 to Travis tests


  • Fixed typos in SCC positioning codes
  • Added missing SCC positioning codes to positioning map


  • Added Python 3 support


  • Added positioning support
  • Created documentation


This module is Copyright 2012 and is available under the Apache License, Version 2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pycaption, version 2.0.1
Filename, size File type Python version Upload date Hashes
Filename, size pycaption-2.0.1-py3-none-any.whl (267.9 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size pycaption-2.0.1.tar.gz (254.4 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page