Skip to main content

Build with AI

If you use an AI coding assistant such as Claude, ChatGPT, Cursor, or GitHub Copilot to write your integration, give it the Closed Caption Converter API documentation as plain markdown. Assistants produce far more accurate code when they work from the real reference instead of guessing endpoint names, headers, and profile names.

The files below follow the llms.txt convention and are regenerated every time these docs are published, so they always match this site.

Available Files​

FileContentsBest for
llms.txtA short index: key facts about the API and links to each page as markdown.Agents that can fetch URLs themselves.
llms-full.txtThe complete API documentation, including profiles, filters, and encoding options, in one file.Pasting into a chat or adding to a project's context.
llms-small.txtGetting Started, Job Descriptions, an example Job Description, and Presets only.Smaller context windows and quick tasks.

Each documentation page is also available as markdown by adding .md to its path, for example /docs/api/getting-started.md.

How to Use Them​

  • Chat assistants — click Copy full docs above and paste the result into your conversation before describing what you want to build.
  • Coding agents and IDE assistants — point the agent at https://www.closedcaptionconverter.com/docs/llms.txt, or save llms-full.txt into your repository (for example as docs/cc-converter-api.md) and reference it from your agent's instructions file.

Starter Prompt​

Paste this after the documentation and adapt it to your project:

Using the Closed Caption Converter API documentation above, write a Node.js module that:

1. Reads the API key and account email from the CCC_API_KEY and CCC_USERNAME environment variables
and sends them as the x-api-key and username headers.
2. Uploads a local caption file to POST /jobs as multipart/form-data with a `config` Job Description
that converts it from "SubRip Video Subtitle Script" to "WebVTT".
3. If the response status is "queued" or "in progress", polls GET /jobs/{id} every 10 seconds
until the status is "passed" or "failed".
4. Downloads the output file from the `target` URL and saves it next to the input file.
5. Surfaces the plain-text error body for any non-200 response.

Tips for Accurate Results​

  • Keep the API key server-side. Ask the assistant to read it from an environment variable or secrets manager, never from client-side code.
  • Use exact profile names. Profile names such as SubRip Video Subtitle Script must match exactly. The assistant can fetch the valid lists from GET /help/profiles/source and GET /help/profiles/target, which do not require authentication.
  • Download from target. The job response contains a signed download URL, not the file content.
  • Handle asynchronous jobs. Transcription, alignment, and very large jobs return before they finish. Make sure generated code polls GET /jobs/{id}.
  • Only send what you need. A Job Description only needs the fields you want to change; everything else uses defaults. GET /help/schemas/job returns every field with its default value.