Index YouTube video transcripts into a collection.
Fetches transcripts from YouTube videos using auto-generated or manual captions,
formats them with inline timestamps, and indexes the text for semantic search.
Accepts either a single `url` string or a `urls` array of strings.
Transcripts are always processed as basic text (no OCR needed).
Headers:
- Authorization: Bearer {api_key} - Captain API key for authentication
- X-Organization-ID: Organization UUID
- Idempotency-Key: UUID for request deduplication (optional)
Args:
collection_name: Name of the collection (path parameter)
body: YouTube configuration with url or urls and optional language preferences
Returns:
{ job_id, status: "pending" }
Request
This endpoint expects an object.
custom_metadatamap from strings to optional strings or integers or doubles or booleans or lists of stringsOptional
Custom metadata to attach to all indexed chunks. Keys must be strings. Values: str, int, float, bool, or List[str].
languageslist of stringsOptional
Preferred transcript languages in priority order (ISO 639-1 codes). Defaults to English. Only specify if you need a non-English transcript (e.g., [‘fr’, ‘de’]). Falls back to auto-generated captions if manual transcript unavailable.
urlstringOptional
A single YouTube video URL (youtube.com/watch?v=, youtu.be/, youtube.com/shorts/). Provide either ‘url’ or ‘urls’, not both.
urlslist of stringsOptional
A list of YouTube video URLs to index. Provide either 'url' or 'urls', not both.
Response
Successful Response
statusstringDefaults to pending