Subtitles and transcripts API

Subtitles and transcripts API for VTT and SRT files

Create subtitle or transcript jobs for supported videos, request VTT or SRT output, poll progress, and return the final file URL through the same API account used for downloads, with the key sent as the api query parameter.

Endpoint

Create subtitle job

GET
curl "https://p.savenow.to/ajax/subtitles?url=VIDEO_URL&api=YOUR_API_KEY&lang=en&format=vtt"

p.savenow.to is the default shared API host used in public examples. If your dashboard shows a custom API hostname, use that account-specific host instead.

Formats
VTT and SRT
Language
lang parameter
Delivery
Poll progress

Accepted job response

{
  "success": true,
  "id": "subtitle-job-123",
  "title": "Amazing Video Title",
  "progress_url": "https://p.savenow.to/ajax/progress.php?id=subtitle-job-123"
}

Poll the returned progress_url until the Progress endpoint reports progress: 1000, then fetch the final subtitle file from download_url. The subtitles endpoint returns success: true, while the Progress endpoint returns success: 1.

{
  "success": 1,
  "progress": 1000,
  "download_url": "https://p.savenow.to/storage/downloads/subtitle-job-123/captions.vtt",
  "text": "Finished"
}

Common failure checks

  • api: use the dashboard-issued API key and send it as api, not apikey, on subtitle requests.
  • lang: request an available caption language code, such as en; unsupported languages can be rejected or return no captions.
  • format: use vtt or srt only.
  • Unavailable captions: some source videos do not expose captions or transcripts for the requested language, so try another language or source video before retrying the same request.

Workflow

One subtitle endpoint, then the same polling pattern

The subtitles flow is intentionally close to the download flow: create a job, watch progress, and use the result URL when the file is ready.

GET https://p.savenow.to/ajax/subtitles

Submit a subtitle job

Send a supported video URL, your API key as the `api` query parameter, the target language, and the output format to the subtitles endpoint.

format=vtt or format=srt

Request VTT or SRT

Use the format parameter to choose VTT captions or SRT subtitle output for your product workflow.

progress_url -> download_url

Poll until ready

Use the returned progress URL to poll job state, then store or display the final download URL.

Use cases

Capture subtitle buyers without sending them straight into the full reference

Developers searching for subtitle extraction usually need confirmation that the API handles formats, language, polling, pricing, and account setup before they read the full docs.

Add captions to downloader, editor, education, or media library products.

Generate transcript files for search, summaries, review queues, and accessibility workflows.

Keep subtitle extraction inside the same API key, pricing, docs, and polling flow as downloads.

Offer language-specific subtitle requests without building extraction infrastructure.

API key

Start with a dashboard key

Create an account, copy your API key, and use it in subtitle job requests.

Create API key

Pricing

Estimate text workflow usage

Model subtitle and transcript volume alongside video and audio jobs before launch.

View pricing

Documentation

Use OpenAPI for exact fields

Review parameters, response fields, errors, and progress polling in the reference.

Open subtitles docs

FAQ

Subtitles and transcripts API FAQ

Which endpoint creates subtitle and transcript jobs?

Use GET /ajax/subtitles with a video URL, your API key in the `api` query parameter, a language, and a format. The endpoint accepts the job and returns a progress URL for polling.

Can the API return VTT and SRT files?

Yes. The subtitles endpoint supports VTT and SRT output through the format parameter, depending on availability for the source video and requested language.

Do subtitle jobs use the same API account and pricing path?

Yes. Subtitle and transcript workflows use the same dashboard-issued API key, usage-based pricing model, OpenAPI docs, and support path as the download API, but subtitle requests send that key as the `api` query parameter.

Ready to test subtitle output?

Create a key, open the docs, and run one VTT or SRT request.