openapi: 3.2.0
info:
version: ''
title: Translate and Lip Sync Transcribe API
description: This RESTful API offers dubbing and lip sync resources for enterprise use. With this API an audio or video input can be dubbed to new language(s).
termsOfService: https://www.adobe.com/content/dam/cc/en/legal/terms/enterprise/pdfs/PSLT-AdobeCreativeAPI-WW-2024v2.pdf
servers:
- url: https://audio-video-api.adobe.io
description: Production environment
- url: https://audio-video-api-stage.adobe.io
description: Staging environment
security:
- AccessToken: []
X-Api-Key: []
tags:
- name: Transcribe
paths:
/v1/transcribe:
post:
summary: Transcribe media
description: Generates transcripts for the input audio or video.
operationId: transcribe
requestBody:
description: Transcribe request body.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TranscribeRequest'
examples:
AudioInputToGenerateTranscriptFromSourceAudio:
$ref: '#/components/examples/AudioInputToGenerateTranscriptFromSourceAudio'
AudioInputToGenerateTranscriptFromTargetLanguageAudio:
$ref: '#/components/examples/AudioInputToGenerateTranscriptFromTargetLanguageAudio'
VideoInputToGenerateTranscriptFromSourceVideo:
$ref: '#/components/examples/VideoInputToGenerateTranscriptFromSourceVideo'
VideoInputToGenerateTranscriptFromTargetLanguageVideo:
$ref: '#/components/examples/VideoInputToGenerateTranscriptFromTargetLanguageVideo'
AudioInputToGenerateTranscriptAndCaptionsFromTargetFormatsFromSourceAudio:
$ref: '#/components/examples/AudioInputToGenerateTranscriptAndCaptionsFromTargetFormatsFromSourceAudio'
VideoInputToGenerateTranscriptAndCaptionsFromTargetFormatsFromSourceVideo:
$ref: '#/components/examples/VideoInputToGenerateTranscriptAndCaptionsFromTargetFormatsFromSourceVideo'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/JobStatusLinkResponse'
examples:
TranscribeResponse:
$ref: '#/components/examples/JobStatusLinkResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBody'
examples:
ErrorBodyBadRequest:
$ref: '#/components/examples/ErrorBodyBadRequest'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBody'
examples:
ErrorBodyUnauthorized:
$ref: '#/components/examples/ErrorBodyUnauthorized'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBody'
examples:
ErrorBodyForbidden:
$ref: '#/components/examples/ErrorBodyForbidden'
'404':
description: Resource Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBody'
examples:
ErrorBodyResourceNotFound:
$ref: '#/components/examples/ErrorBodyResourceNotFound'
'405':
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBody'
examples:
ErrorBodyMethodNotAllowed:
$ref: '#/components/examples/ErrorBodyMethodNotAllowed'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBody'
examples:
ErrorBodyMethodNotAllowed:
$ref: '#/components/examples/ErrorBodyMethodNotAllowed'
ValidationErrorVideoSourceBlank:
$ref: '#/components/examples/ValidationErrorVideoSourceBlank'
ValidationErrorAudioSourceBlank:
$ref: '#/components/examples/ValidationErrorAudioSourceBlank'
ValidationErrorInputSourceBlank:
$ref: '#/components/examples/ValidationErrorInputSourceBlank'
ValidationErrorVideoAndAudioSimultaneous:
$ref: '#/components/examples/ValidationErrorVideoAndAudioSimultaneous'
ValidationErrorVideoInputMediaTypeMissing:
$ref: '#/components/examples/ValidationErrorVideoInputMediaTypeMissing'
ValidationErrorAudioInputMediaTypeMissing:
$ref: '#/components/examples/ValidationErrorAudioInputMediaTypeMissing'
ValidationErrorSourceUrlEmpty:
$ref: '#/components/examples/ValidationErrorSourceUrlEmpty'
ValidationErrorInvalidVideoAudioSourceUrl:
$ref: '#/components/examples/ValidationErrorInvalidVideoAudioSourceUrl'
ValidationErrorBlankTranscriptSourceField:
$ref: '#/components/examples/ValidationErrorBlankTranscriptSourceField'
ValidationErrorInvalidTranscriptUrl:
$ref: '#/components/examples/ValidationErrorInvalidTranscriptUrl'
ValidationErrorUnsupportedVideoMediaType:
$ref: '#/components/examples/ValidationErrorUnsupportedVideoMediaType'
ValidationErrorUnsupportedAudioMediaType:
$ref: '#/components/examples/ValidationErrorUnsupportedAudioMediaType'
ValidationErrorUnsupportedTargetLocaleCode:
$ref: '#/components/examples/ValidationErrorUnsupportedTargetLocaleCode'
ValidationErrorBlankTargetLocaleCode:
$ref: '#/components/examples/ValidationErrorBlankTargetLocaleCode'
ValidationErrorMissingTargetLocaleCode:
$ref: '#/components/examples/ValidationErrorMissingTargetLocaleCode'
ValidationErrorLocaleCodeNotRequiredForEditedTranscript:
$ref: '#/components/examples/ValidationErrorLocaleCodeNotRequiredForEditedTranscript'
ValidationErrorEitherTargetLocaleCodesOrTranscriptionRequired:
$ref: '#/components/examples/ValidationErrorEitherTargetLocaleCodesOrTranscriptionRequired'
ValidationErrorCaptionGenerationNotSupportedWithTranslation:
$ref: '#/components/examples/ValidationErrorCaptionGenerationNotSupportedWithTranslation'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBody'
examples:
ErrorBodyTooManyRequests:
$ref: '#/components/examples/ErrorBodyTooManyRequests'
'451':
description: Unauthorized due to legal reasons
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBody'
examples:
ErrorBodyLegalReasons:
$ref: '#/components/examples/ErrorBodyLegalReasons'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorBody'
examples:
ErrorBodyInternalServerError:
$ref: '#/components/examples/ErrorBodyInternalServerError'
tags:
- Transcribe
components:
examples:
ValidationErrorUnsupportedTargetLocaleCode:
summary: Error for unsupported target locale code
value:
error_code: validation_error
message: 'Unsupported target locale code: <>'
ErrorBodyForbidden:
summary: Error Body Forbidden
value:
error_code: '403220'
message: Token not allowed in the current context
ValidationErrorMissingTargetLocaleCode:
summary: Error for missing target locale code
value:
error_code: validation_error
message: At least one target locale code required
ErrorBodyLegalReasons:
summary: Unauthorized due to legal reasons
value:
message: Unauthorized due to legal reasons
error_code: unauthorized_legal_reasons
ErrorBodyUnauthorized:
summary: Error Body Unauthorized
value:
error_code: '401013'
message: Oauth token is not valid
ErrorBodyInternalServerError:
summary: Error Body Internal Server Error
value:
error_code: '500001'
message: An internal server error occurred. Please try again later.
ValidationErrorLocaleCodeNotRequiredForEditedTranscript:
summary: Error indicating locale code is not required with edited transcript
value:
error_code: validation_error
message: Locale code not needed when providing an edited transcript
ValidationErrorInvalidTranscriptUrl:
summary: Error for invalid transcript input source URL
value:
error_code: validation_error
message: 'Invalid transcript input source URL: <>'
ValidationErrorBlankTranscriptSourceField:
summary: Transcript source field cannot be blank
value:
error_code: validation_error
message: Transcript source field cannot be blank
ValidationErrorUnsupportedVideoMediaType:
summary: Error for unsupported video media type
value:
error_code: validation_error
message: 'Unsupported input video media type: <>'
AudioInputToGenerateTranscriptFromSourceAudio:
summary: Generate transcript for audio input
value:
audio:
source:
url:
mediaType: audio/mp3
JobStatusLinkResponse:
summary: Successful Submission
value:
jobId:
statusUrl: https:///v1/status/
VideoInputToGenerateTranscriptAndCaptionsFromTargetFormatsFromSourceVideo:
summary: Generate transcript and captions from target formats for Video input
value:
video:
source:
url:
mediaType: video/mp4
captions:
targetFormats:
- SRT
ErrorBodyBadRequest:
summary: Error Body Bad Request
value:
error_code: '400001'
message: Invalid request. Please check the input data.
ValidationErrorAudioInputMediaTypeMissing:
summary: Error for missing audio input media type
value:
error_code: validation_error
message: Audio input media type must be specified
VideoInputToGenerateTranscriptFromSourceVideo:
summary: Generate transcript for video input
value:
video:
source:
url:
mediaType: video/mp4
ValidationErrorCaptionGenerationNotSupportedWithTranslation:
summary: Error indicating captions generation not supported with translation request
value:
error_code: validation_error
message: Captions generation is not supported with translation request
ValidationErrorInvalidVideoAudioSourceUrl:
summary: Error for invalid video/audio input source URL
value:
error_code: validation_error
message: 'Invalid video/audio input source URL: <>'
ValidationErrorVideoAndAudioSimultaneous:
summary: Error for providing both video and audio inputs simultaneously
value:
error_code: validation_error
message: Cannot provide both video and audio input simultaneously
ValidationErrorEitherTargetLocaleCodesOrTranscriptionRequired:
summary: Error for missing target locale codes or transcription input
value:
error_code: validation_error
message: Provide either target locale codes or transcription input for dubbing
VideoInputToGenerateTranscriptFromTargetLanguageVideo:
summary: Generate transcript for video input in specified languages
value:
video:
source:
url:
mediaType: video/mp4
targetLocaleCodes:
- da-DK
- en-IN
- en-GB
- es-AR
- es-419
- fr-CA
- hi-IN
- ja-JP
- ko-KR
- nb-NO
- nl-NL
- pt-BR
- sv-SE
- zh-CN
- en-US
- es-ES
- de-DE
- fr-FR
- it-IT
- pt-PT
ValidationErrorInputSourceBlank:
summary: Error for blank input source field
value:
error_code: validation_error
message: Input source field cannot be blank
ErrorBodyTooManyRequests:
summary: Error Body Too Many Requests
value:
message: Too Many Requests
error_code: '429011'
ValidationErrorSourceUrlEmpty:
summary: Error for empty source URL field
value:
error_code: validation_error
message: Source URL field cannot be empty
ErrorBodyMethodNotAllowed:
summary: Error Body Method Not Allowed
value:
error_code: '405001'
message: The requested method is not allowed on this endpoint.
ErrorBodyResourceNotFound:
summary: Error Body Resource Not Found
value:
error_code: unknown_job_id
message: The requested resource 123e4567-e89b-12d3-a456-426614174002 was not found.
ValidationErrorVideoInputMediaTypeMissing:
summary: Error for missing video input media type
value:
error_code: validation_error
message: Video input media type must be specified
ValidationErrorAudioSourceBlank:
summary: Error for blank audio source field
value:
error_code: validation_error
message: Audio source field cannot be blank
ValidationErrorUnsupportedAudioMediaType:
summary: Error for unsupported audio media type
value:
error_code: validation_error
message: 'Unsupported input audio media type: <>'
AudioInputToGenerateTranscriptFromTargetLanguageAudio:
summary: Generate transcript for audio input in specified languages
value:
audio:
source:
url:
mediaType: audio/mp3
targetLocaleCodes:
- da-DK
- en-IN
- en-GB
- es-AR
- es-419
- fr-CA
- hi-IN
- ja-JP
- ko-KR
- nb-NO
- nl-NL
- pt-BR
- sv-SE
- zh-CN
- en-US
- es-ES
- de-DE
- fr-FR
- it-IT
- pt-PT
AudioInputToGenerateTranscriptAndCaptionsFromTargetFormatsFromSourceAudio:
summary: Generate transcript and captions from target formats for Audio input
value:
audio:
source:
url:
mediaType: audio/mp3
captions:
targetFormats:
- SRT
ValidationErrorBlankTargetLocaleCode:
summary: Target locale codes cannot be empty
value:
error_code: validation_error
message: Target locale codes cannot be empty
ValidationErrorVideoSourceBlank:
summary: Error for blank video source field
value:
error_code: validation_error
message: Video source field cannot be blank
schemas:
TranscribeVideoInput:
type: object
properties:
video:
$ref: '#/components/schemas/VideoInput'
required:
- video
description: The request body for transcribing video.
VideoInputMediaType:
type: string
enum:
- video/mp4
- video/quicktime
- video/mov
description: The video media type of the input file. Use a supported type.
AudioInputMediaType:
type: string
enum:
- audio/mp3
- audio/mpeg
- audio/x-wav
- audio/wav
- audio/vnd.dlna.adts
- audio/aac
description: The audio media type of the input file. Use a supported type.
Captions:
type: object
properties:
targetFormats:
type: array
items:
$ref: '#/components/schemas/TargetCaptionFormats'
description: 'Accepted values: [''SRT'']'
JobStatusLinkResponse:
type: object
properties:
statusUrl:
type: string
description: URL to download the results of the job.
jobId:
type: string
description: The job ID.
required:
- statusUrl
- jobId
description: Job status response.
AudioInput:
type: object
properties:
source:
$ref: '#/components/schemas/Source'
mediaType:
$ref: '#/components/schemas/AudioInputMediaType'
required:
- url
- mediaType
description: The audio input details for a dub request.
ErrorBody:
type: object
description: The error response object.
properties:
message:
type: string
description: The error message.
error_code:
type: string
description: Associated error code.
required:
- error_code
- message
TranscriptInputLocale:
type: string
enum:
- da-DK
- en-IN
- en-GB
- es-AR
- es-419
- fr-CA
- hi-IN
- ja-JP
- ko-KR
- nb-NO
- nl-NL
- pt-BR
- sv-SE
- zh-CN
- en-US
- es-ES
- de-DE
- fr-FR
- it-IT
- pt-PT
description: The languages that the transcript will be generated in. Use supported locale codes.
Source:
type: object
properties:
url:
type: string
format: uri
description: The pre-signed URL pointing to the input source.
TargetCaptionFormats:
type: string
enum:
- SRT
description: Supported target formats for caption generation
VideoInput:
type: object
properties:
source:
$ref: '#/components/schemas/Source'
mediaType:
$ref: '#/components/schemas/VideoInputMediaType'
metadata:
type: object
properties:
dialogTrackNumber:
type: integer
required:
- url
- mediaType
description: The video input details for a dub request.
TranscribeRequest:
type: object
oneOf:
- $ref: '#/components/schemas/TranscribeAudioInput'
- $ref: '#/components/schemas/TranscribeVideoInput'
properties:
targetLocaleCodes:
type: array
items:
$ref: '#/components/schemas/TranscriptInputLocale'
captions:
$ref: '#/components/schemas/Captions'
description: Captions related details to generate captions for transcribe request
description: Transcribe request body.
TranscribeAudioInput:
type: object
properties:
audio:
$ref: '#/components/schemas/AudioInput'
required:
- audio
description: The request body for transcribing audio.
securitySchemes:
AccessToken:
type: http
scheme: bearer
X-Api-Key:
type: apiKey
name: x-api-key
in: header