gladia-pre-recorded-transcription

Transcribe pre-recorded audio files or URLs with Gladia. Use when the user needs batch/async transcription, speaker diarization, subtitles (SRT/VTT), PII redaction, translation, NE…

Gladia

@gladiaio

Install

$ openclaw skills install @gladiaio/gladia-pre-recorded-transcription

Pre-Recorded Transcription

Gladia's pre-recorded API transcribes audio and video files asynchronously.

SDK-first: always use the official SDK — see gladia-sdk-integration for policy, setup, and fallback criteria.

When to Use

  • Existing audio/video files or URLs (including social/video links)
  • Batch or asynchronous transcription workflows
  • Pre-recorded-only features: diarization, PII redaction, subtitles

When NOT to use: If the user needs real-time / live transcription of a stream, microphone, or ongoing audio feed, use the gladia-live-transcription skill instead. Live transcription uses WebSocket sessions, not the pre-recorded API. If the user has gladia-cli installed and wants a quick terminal workflow without writing code, use gladia-using-cli instead.

References

Consult these resources as needed:

  • ./references/transcription-options.md -- Full options (JS + Python)
  • ./references/managing-jobs.md -- get, list, getFile, delete
  • ./references/delivery-and-response.md -- Response shape and events
  • ../gladia-audio-intelligence/SKILL.md -- Feature availability and config
  • ../gladia-using-cli/SKILL.md -- Terminal workflow with gladia-cli
  • ../gladia-sdk-integration/SKILL.md -- Setup, config, SDK vs raw API
  • ../gladia-sdk-integration/references/sdk-versions.md -- Current SDK versions
  • ../gladia-troubleshooting/SKILL.md -- Errors and diagnostics

API Endpoints (reference — prefer SDK methods instead)

EndpointMethodSDK equivalent
/v2/uploadPOSTtranscribe() auto-uploads local files
/v2/pre-recordedPOSTcreate() / transcribe()
/v2/pre-recordedGETlist()
/v2/pre-recorded/:idGETget() / poll() / transcribe()
/v2/pre-recorded/:idDELETEdelete()
/v2/pre-recorded/:id/fileGETgetFile()

Workflow

Recommended (SDK)

The SDK transcribe() method handles upload, job creation, and polling in one call. Use this by default.

const result = await client.preRecorded().transcribe("./audio.mp3", {
  language_config: { languages: ["en"] },
  diarization: true,
});

console.log(result.result?.transcription?.full_transcript);
result = client.prerecorded().transcribe(
    "audio.mp3",
    {"language_config": {"languages": ["en"]}, "diarization": True},
)

print(result.result.transcription.full_transcript)

Audio input can be a local file path, HTTP(S) URL, social/video URL, or binary file object. For full input types, see gladia-sdk-integration.

Fallback (raw REST — only when SDK is not feasible)

Use raw REST only when SDK use is not possible.

  1. Upload (if local file): POST /v2/upload with multipart form data → get audio_url
  2. Create job: POST /v2/pre-recorded with audio_url and config → get id
  3. Poll: GET /v2/pre-recorded/:id until status: "done" (or use webhooks/callbacks)
  4. Parse results: Extract transcription, diarization, translation, etc. from response

Managing Jobs

Use SDK methods for post-processing operations:

  • JavaScript: client.preRecorded().get(id), .list(filters), .getFile(id), .delete(id)
  • Python: client.prerecorded().get(id), .list(filters), .get_file(id), .delete(id)

For full JS/Python examples, pagination filters, and REST equivalents, see ./references/managing-jobs.md.

Transcription Options

All options are passed as the second argument to transcribe(). Key options:

OptionDescription
language_configExpected languages, code switching
diarizationSpeaker identification (pre-recorded only)
translationTranslate to target languages
summarizationGenerate bullet points or paragraph summary
subtitlesGenerate SRT/VTT files
pii_redactionRedact PII (pre-recorded only)
audio_to_llmRun custom LLM prompts on transcript
callback_urlAsync webhook delivery

For full option details, see ./references/transcription-options.md. For audio intelligence config, see gladia-audio-intelligence. For client-level retry/timeouts, see gladia-sdk-integration.

Response and Delivery

For full response JSON and event names, see ./references/delivery-and-response.md.

Limits and Specifications

ConstraintValue
Max file size1000 MB
Max duration135 minutes (120 min for YouTube)
Enterprise max duration4h15
Concurrency (paid)25 concurrent jobs
Concurrency (free)3 concurrent jobs

Polling Best Practices

The SDK handles polling automatically — transcribe() polls until the job completes with configurable interval and timeout:

const result = await client.preRecorded().transcribe(audio, options, {
  interval: 5000, // Poll every 5s
  timeout: 600000, // Timeout after 10 minutes
});

If using raw REST instead of the SDK:

  • Use webhooks or callbacks instead of polling when possible
  • If polling, implement exponential backoff (start at 3s, max 30s)

Common Mistakes

  • Code switching without language list: enabling code_switching: true with empty languages triggers 100+ language evaluation. Always provide 3-5 expected languages.
  • Polling without backoff: rapid polling wastes requests and may trigger 429s. The SDK handles this; for raw REST, use webhooks or exponential backoff.
  • Expecting live-only features: diarization, PII redaction, and subtitles are pre-recorded only — not available in live mode.
  • Wrong audio file path: the audio download endpoint is /v2/pre-recorded/:id/file, not /v2/pre-recorded/:id/audio.

For the full list of gotchas and diagnostics, see the gladia-troubleshooting skill.

Further Reading

Top skills in this category

Video Subtitles

@ngutman

Generate SRT subtitles from video/audio with translation support. Transcribes Hebrew (ivrit.ai) and English (whisper), translates between languages, burns subtitles into video. Use for creating captions, transcripts, or hardcoded subtitles for WhatsApp/social media.

1710k

Summarizer

@ivangdavila

Summarizes any source without losing the claim: documents, meetings, papers, threads, transcripts, data, and code changes. Use when asked to summarize, condense, shorten, recap, distill, or write a TLDR, abstract, or executive summary; when a source is too long to read or must hit a word count; when summarizing a call, interview, Slack channel, pull request, contract, earnings report, podcast, or a stack of sources on one topic; when a summary dropped something important, invented a detail, turned a hedge into a fact, or reads like the headings; and when the same material must be re-cut for another audience, length, or channel. Covers compression ratios, chunking, faithfulness and omission audits. Not for recurring external feeds (`digest`), decision documents whose point is the recommendation (`brief`), cross-source insight generation rather than compression (`synthesize`), or pulling text or a transcript out of a file or video first (`extract-pdf-text`, `youtube-video-transcript`).

57.7k

Humanizer

@biostartechnology

Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.

714132k

SuperDesign

@mpociot

Expert frontend design guidelines for creating beautiful, modern UIs. Use when building landing pages, dashboards, or any user interface.

19442k

Video Frames

@steipete

Extract frames or short clips from videos using ffmpeg.

13359k