---
title: Overview
url: https://docs.kaltura.com/docs/rich-media-cms-apis/content-management/captions-overview
---

## Captions & Transcripts Overview

The Captions & Transcripts API manages subtitle files, closed captions, and transcripts attached to media entries. It supports five caption formats (SRT, DFXP/TTML, WebVTT, CAP, SCC), on-the-fly format conversion, HLS segmented delivery, JSON serving for AI/LLM integrations, caption parameter templates, and multi-language workflows. For automated captioning, translation, and dubbing, see the REACH API.

**Base URL:** `https://www.kaltura.com/api_v3` (may differ by region/deployment)  
**Auth:** KS passed as `ks` parameter in POST form data (see [Session Guide](/docs/getting-started/authentication/ks-overview))  
**Format:** Form-encoded POST, `format=1` for JSON responses  
**Services:** `caption_captionAsset` (12 actions), `caption_captionParams` (5 actions)  

**Important:** These are plugin services. The service names use underscore-prefixed compound names: `caption_captionAsset`, `caption_captionParams`.

### When to Use


- **Accessibility compliance teams** ensuring all video content meets WCAG, ADA, Section 508, or CVAA captioning requirements  
- **Content teams** adding searchable captions and transcripts to improve video discoverability across libraries  
- **Localization workflows** managing multi-language subtitle tracks for global audiences  
- **AI and automation pipelines** retrieving caption data as JSON for RAG, summarization, or knowledge-base ingestion  
- **LMS and training platforms** providing synchronized transcripts for lecture recordings and compliance training




### Prerequisites


- **KS type:** ADMIN KS (type=2) with `CAPTION_PLUGIN_PERMISSION` and `CONTENT_MANAGE_BASE` permissions  
- **Plugins:** Caption plugin enabled on the partner account  
- **Session guide:** Generate a KS using `session.start` or `appToken.startSession` (see [Session Guide](/docs/getting-started/authentication/ks-overview))




### Authentication


All endpoints require an ADMIN KS (type=2) with appropriate permissions:

- **Caption assets:** `CAPTION_PLUGIN_PERMISSION` + `CONTENT_MANAGE_BASE`
- **Caption parameters:** `CAPTION_PLUGIN_PERMISSION` + `ADMIN_BASE`

Generate an ADMIN KS via `session.start` (see [Session Guide](/docs/getting-started/authentication/ks-overview)) or `appToken.startSession` (see [AppTokens Guide](/docs/getting-started/authentication/app-tokens-overview)).


```bash
# Set up environment
export KALTURA_SERVICE_URL="https://www.kaltura.com/api_v3"
```
