Get a subtitle file
const url = 'https://api.braiv.co/v1/videos/vid_01JZ8M6A/subtitles/es?format=srt';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.braiv.co/v1/videos/vid_01JZ8M6A/subtitles/es?format=srt' \ --header 'Authorization: Bearer <token>'Generates a temporary download URL for an SRT or WebVTT file in the requested source or translated language. Required scope: transcripts:read.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Braiv library video document ID.
Example
vid_01JZ8M6AISO-style language or locale code accepted by the underlying product.
Target language code used by the video, such as es or pt-BR.
Example
esQuery Parameters
Section titled “Query Parameters ”srt returns SubRip text; vtt returns WebVTT text.
Subtitle file format: srt returns a SubRip file for editors and
general playback tools; vtt returns a WebVTT file for HTML5 players
and web applications.
Responses
Section titled “ Responses ”Subtitle file is ready.
object
Confirms the subtitle artifact is ready.
Parent library video ID.
Subtitle language.
Returned subtitle serialization.
Temporary subtitle file URL.
Example
{ "status": "ready", "videoId": "vid_01JZ8M6A", "language": "es", "format": "srt", "downloadUrl": "https://storage.googleapis.com/..."}Source transcription is still processing.
object
Indicates transcription prerequisites are incomplete.
Parent library video ID.
Example
{ "status": "processing", "videoId": "vid_01JZ8M6A"}A supported authentication header is missing or contains an invalid Public API key.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Examples
Authentication header missing
{ "error": { "code": "UNAUTHENTICATED", "message": "Missing API key.", "details": {} }}API key invalid
{ "error": { "code": "INVALID_API_KEY", "message": "Invalid API key", "details": {} }}Authentication succeeded, but the required scope, workspace role, or resource permission is missing.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Examples
{ "error": { "code": "INSUFFICIENT_SCOPE", "message": "The API key lacks the required scope.", "details": {} }}Video or requested subtitle file was not found.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Example
{ "error": { "code": "UNAUTHENTICATED" }}Transcription failed, so subtitles cannot be produced.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Example
{ "error": { "code": "UNAUTHENTICATED" }}The API key exceeded its allowed concurrency or request rate. Retry after in-flight work completes or the limit resets.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Example
{ "error": { "code": "RATE_LIMITED", "message": "API key concurrency limit reached", "details": {} }}An unexpected server error occurred.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Example
{ "error": { "code": "INTERNAL", "message": "An unexpected error occurred.", "details": {} }}