Caption conversion

Convert SRT to iTT

SubRip Subtitle (SRT) to iTunes Timed Text (iTT). Convert in the web app, automate with the REST API, or run it offline with the CLI.

Converting SRT to iTT is the usual final step before delivering subtitles to Apple, or before importing captions into Final Cut Pro. iTT times everything in SMPTE timecode at a declared frame rate, so the most important setting is the video’s frame rate. A mismatch is the most common cause of rejected iTT deliveries.

What carries over

  • Subtitle text and line breaks
  • Italics, bold and underline
  • Timing, converted from milliseconds to frames at the target frame rate

What changes

  • You must set the frame rate (for example 23.976 fps), because SRT has none
  • Times are rounded to the nearest frame
  • A language must be declared with xml:lang, set in the encoding options
  • Position overrides such as {\an8} are not carried over

How to convert SRT to iTT

The same conversion engine powers all three, so a job you set up in the web app produces identical output from the API or CLI.

In the web app

  1. Sign in to the web app, or start a free trial.
  2. Upload your .srt file and select SubRip Video Subtitle Script as the source profile.
  3. Select iTunes Timed Text as the target profile.
  4. Review the recommended settings for this conversion.
  5. Run the conversion and download your .itt file.

With the API

POST /jobs
curl -X POST https://api.closedcaptionconverter.com/jobs \
  -H "x-api-key: YOUR_API_KEY" \
  -F "source=@input.srt" \
  -F 'config={
    "job_type": "convert",
    "source_profile": "SubRip Video Subtitle Script",
    "target_profile": "iTunes Timed Text",
    "target_frameRate": 23.976,
    "fix_overlap": true,
    "encoding_options": [
      {
        "name": "Language Code",
        "selected": "en"
      }
    ]
  }'

See API Getting Started for authentication and response handling.

With the CLI

Command line
ccconverter \
  --source input.srt \
  --target output.itt \
  --source_profile "SubRip Video Subtitle Script" \
  --target_profile "iTunes Timed Text" \
  --target_frameRate 23.976 \
  --fix_overlap true

The CLI runs fully offline on macOS, Windows and Linux. See the CLI docs for every flag.

Recommended settings

Target frame rateMatch the video exactly: 23.976, 24, 25, 29.97 and so on.
Language CodeSet it to the subtitle language. It is written as xml:lang.
Fix overlapApple’s spec does not allow overlapping subtitles.

Format-specific options are covered in Encoding & Decoding Options and Profiles & Formats.

SRT to iTT questions

The frame rate of the video you are delivering with it. For a 23.976 fps film, set 23.976. The converter writes the matching ttp:frameRate and ttp:frameRateMultiplier.

Yes. Final Cut Pro imports iTT files as a caption role.

It depends on the asset type and Apple’s current specification. Closed captions and subtitles have different requirements. Closed Caption Converter writes both, so you can match whatever the spec requires.

Free trial

Convert SRT to iTT now

Upload your .srt file and download iTT in seconds, or automate it with the API and CLI.