Adobe Suite Translate and lip sync API

Endpoints for transcribing and dubbing audio/video content.

Operations 2

POST /v1/transcribe Transcribe media #
POST /v1/dub Dub audio or video #

Documentation

📖
Documentation
https://developer.adobe.com/photoshop/api/docs/
📖
Authentication
https://developer.adobe.com/developer-console/docs/guides/authentication/
📖
Documentation
https://developer.adobe.com/lightroom/api/docs/
📖
Documentation
https://developer.adobe.com/illustrator/api/docs/
📖
Documentation
https://developer.adobe.com/indesign/docs/
📖
Documentation
https://developer.adobe.com/document-services/docs/overview/pdf-services-api/
📖
Documentation
https://developer.adobe.com/document-services/docs/overview/pdf-extract-api/
📖
GettingStarted
https://developer.adobe.com/document-services/docs/overview/pdf-extract-api/gettingstarted/
📖
Documentation
https://developer.adobe.com/document-services/docs/overview/pdf-accessibility-auto-tag-api/
📖
Documentation
https://developer.adobe.com/analytics-apis/docs/
📖
APIReference
https://developer.adobe.com/analytics-apis/docs/2.0/
📖
Documentation
https://developer.adobe.com/firefly-services/docs/
📖
APIReference
https://developer.adobe.com/firefly-services/docs/api/
📖
Documentation
https://developer.adobe.com/audio-video-firefly-services/
📖
GettingStarted
https://developer.adobe.com/audio-video-firefly-services/getting-started/
📖
Documentation
https://developer.adobe.com/creative-cloud-libraries/docs/
📖
APIReference
https://developer.adobe.com/creative-cloud-libraries/docs/api/
📖
Documentation
https://developer.adobe.com/express/embed-sdk/docs/guides/
📖
APIReference
https://developer.adobe.com/express/embed-sdk/docs/v4/
📖
GettingStarted
https://developer.adobe.com/express/embed-sdk/docs/guides/quickstart/
📖
Documentation
https://developer.adobe.com/experience-platform-apis/
📖
GettingStarted
https://experienceleague.adobe.com/en/docs/experience-platform/landing/platform-apis/api-guide
📖
Documentation
https://developer.adobe.com/marketo-apis/
📖
Authentication
https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/authentication
📖
Documentation
https://developer.adobe.com/commerce/docs/
📖
GettingStarted
https://developer.adobe.com/commerce/webapi/get-started/
📖
Documentation
https://developer.adobe.com/experience-cloud/cloud-manager/
📖
Documentation
https://developer.adobe.com/journey-optimizer-apis/
📖
Documentation
https://developer.adobe.com/workfront-apis/
📖
Documentation
https://developer.adobe.com/firefly-services/docs/substance3d/
📖
Documentation
https://developer.adobe.com/data-collection-apis/
📖
Documentation
https://developer.adobe.com/adobe-status/
📖
Documentation
https://developer.adobe.com/vip-marketplace/

Specifications

Other Resources

🔗
Pricing
https://developer.adobe.com/document-services/pricing/
🔗
SDKs
https://developer.adobe.com/document-services/docs/overview/pdf-services-api/sdks/
🔗
ReleaseNotes
https://developer.adobe.com/document-services/docs/overview/pdf-services-api/releasenotes
🔗
Guides
https://developer.adobe.com/analytics-apis/docs/2.0/guides/
🔗
Guides
https://developer.adobe.com/firefly-services/docs/guides/
🔗
Usage Notes
https://developer.adobe.com/audio-video-firefly-services/getting_started/usage/
🔗
Overview
https://developer.adobe.com/creative-cloud-libraries/docs/overview/
🔗
Integration Guide
https://developer.adobe.com/creative-cloud-libraries/docs/integrate/
🔗
API Fundamentals
https://experienceleague.adobe.com/en/docs/experience-platform/landing/platform-apis/api-fundamentals
🔗
Developer Guide
https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/home
🔗
REST API
https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/rest-api
🔗
REST API
https://developer.adobe.com/commerce/webapi/rest/
🔗
GraphQL API
https://developer.adobe.com/commerce/webapi/graphql-api/
🔗
REST API Reference
https://developer.adobe.com/commerce/webapi/reference/rest/paas/
🔗
GraphQL
https://raw.githubusercontent.com/api-evangelist/adobe-suite/refs/heads/main/graphql/adobe-suite-graphql.md
🔗
Webhooks
https://developer.adobe.com/experience-cloud/cloud-manager/guides/getting-started/create-event-integration/
🔗
StatusPage
https://status.adobe.com/

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/adobe-suite-translate-and-lip-sync-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

adobe-suite-translate-and-lip-sync-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Firefly Services Audio and Video Translate and lip sync API
  description: This RESTful API provides resources to use Firefly Services AI for audio and video generation and processing.
  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 server.
security:
- AccessToken: []
  X-Api-Key: []
tags:
- name: Translate and lip sync
  description: Endpoints for transcribing and dubbing audio/video content.
paths:
  /v1/transcribe:
    post:
      tags:
      - Translate and lip sync
      summary: Transcribe media
      description: Generates transcripts and captions for the input audio or video in the source language or in a target language.
      operationId: transcribe
      requestBody:
        description: The transcribe request body.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TranscribeRequest'
            examples:
              AudioInputToGenerateTranscriptFromSourceAudio:
                $ref: '#/components/examples/AudioInputToGenerateTranscriptFromSourceAudio'
              VideoInputToGenerateTranscriptFromSourceVideo:
                $ref: '#/components/examples/VideoInputToGenerateTranscriptFromSourceVideo'
              AudioInputToGenerateTranscriptFromTargetLanguageAudio:
                $ref: '#/components/examples/AudioInputToGenerateTranscriptFromTargetLanguageAudio'
              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 For 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'
  /v1/dub:
    post:
      tags:
      - Translate and lip sync
      summary: Dub audio or video
      description: Generate dubbed video or audio. A composited lip sync can also be added for video dubbing.
      operationId: dub
      requestBody:
        description: The dub request body.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DubRequest'
            examples:
              DubRequestUsingAutoTranslatedTranscripts:
                $ref: '#/components/examples/DubRequestUsingAutoTranslatedTranscripts'
              DubRequestUsingAudioAutoTranslatedTranscripts:
                $ref: '#/components/examples/DubRequestUsingAudioAutoTranslatedTranscripts'
              DubRequestUsingEditedSourceTranscript:
                $ref: '#/components/examples/DubRequestUsingEditedSourceTranscript'
              DubRequestUsingAudioEditedSourceTranscript:
                $ref: '#/components/examples/DubRequestUsingAudioEditedSourceTranscript'
              DubRequestUsingEditedTranslatedTranscript:
                $ref: '#/components/examples/DubRequestUsingEditedTranslatedTranscript'
              DubRequestUsingAudioEditedTranslatedTranscript:
                $ref: '#/components/examples/DubRequestUsingAudioEditedTranslatedTranscript'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobStatusLinkResponse'
              examples:
                DubResponse:
                  $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'
                ValidationErrorInvalidTranscriptUrl:
                  $ref: '#/components/examples/ValidationErrorInvalidTranscriptUrl'
                ValidationErrorUnsupportedVideoMediaType:
                  $ref: '#/components/examples/ValidationErrorUnsupportedVideoMediaType'
                ValidationErrorUnsupportedAudioMediaType:
                  $ref: '#/components/examples/ValidationErrorUnsupportedAudioMediaType'
                ValidationErrorUnsupportedTargetLocaleCode:
                  $ref: '#/components/examples/ValidationErrorUnsupportedTargetLocaleCode'
                ValidationErrorMissingTargetLocaleCode:
                  $ref: '#/components/examples/ValidationErrorMissingTargetLocaleCode'
                ValidationErrorLocaleCodeNotRequiredForEditedTranscript:
                  $ref: '#/components/examples/ValidationErrorLocaleCodeNotRequiredForEditedTranscript'
                ValidationErrorEitherTargetLocaleCodesOrTranscriptionRequired:
                  $ref: '#/components/examples/ValidationErrorEitherTargetLocaleCodesOrTranscriptionRequired'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              examples:
                ErrorBodyTooManyRequests:
                  $ref: '#/components/examples/ErrorBodyTooManyRequests'
        '451':
          description: Unauthorized For 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'
components:
  examples:
    DubRequestUsingAudioEditedTranslatedTranscript:
      summary: Dub request using audio edited translated transcript
      value:
        audio:
          source:
            url: <pre_signed_url_for_downloading_the_audio_input>
          mediaType: audio/wav
        transcripts:
        - source:
            url: <pre_signed_url_for_downloading_the_edited_translated_transcript>
    ValidationErrorUnsupportedTargetLocaleCode:
      summary: Unsupported target locale code error
      value:
        error_code: validation_error
        message: Unsupported target locale code
    DubRequestUsingAutoTranslatedTranscripts:
      summary: Dub request using auto-translated transcripts
      value:
        video:
          source:
            url: <pre_signed_url_for_downloading_the_video_input>
          mediaType: video/mp4
        targetLocaleCodes:
        - es-ES
        lipSync: true
    ErrorBodyForbidden:
      summary: Api Key is required
      value:
        error_code: '403000'
        message: Api Key is required
    ValidationErrorMissingTargetLocaleCode:
      summary: Missing target locale code error
      value:
        error_code: validation_error
        message: Target locale code is required
    DubRequestUsingAudioAutoTranslatedTranscripts:
      summary: Dub request using audio auto-translated transcripts
      value:
        audio:
          source:
            url: <pre_signed_url_for_downloading_the_audio_input>
          mediaType: audio/wav
        targetLocaleCodes:
        - es-ES
    ErrorBodyLegalReasons:
      summary: Legal Restrictions
      value:
        error_code: unauthorized_legal_reasons
        message: 'Unauthorized access: Legal restrictions prevent you from accessing this resource.'
    ErrorBodyUnauthorized:
      summary: Invalid Token
      value:
        error_code: '401013'
        message: Oauth token is not valid
    ErrorBodyInternalServerError:
      summary: Internal Server Error
      value:
        error_code: internal_server_error
        message: An unexpected error occurred while processing the request.
    ValidationErrorLocaleCodeNotRequiredForEditedTranscript:
      summary: Locale code not required for edited transcript error
      value:
        error_code: validation_error
        message: Locale code is not required for edited transcript
    ValidationErrorInvalidTranscriptUrl:
      summary: Invalid transcript URL error
      value:
        error_code: validation_error
        message: Invalid transcript URL format
    ValidationErrorBlankTranscriptSourceField:
      summary: Blank transcript source field error
      value:
        error_code: validation_error
        message: Transcript source field cannot be blank
    ValidationErrorUnsupportedVideoMediaType:
      summary: Unsupported video media type error
      value:
        error_code: validation_error
        message: Unsupported video media type
    AudioInputToGenerateTranscriptFromSourceAudio:
      summary: Generate transcript from source audio
      value:
        audio:
          source:
            url: <pre_signed_url_for_downloading_the_audio_input>
          mediaType: audio/wav
    JobStatusLinkResponse:
      summary: Job status link response
      value:
        jobId: <jobId>
        statusUrl: https://<baseUrl>/v1/status/<jobId>
    VideoInputToGenerateTranscriptAndCaptionsFromTargetFormatsFromSourceVideo:
      summary: Generate transcript and captions from source video
      value:
        video:
          source:
            url: <pre_signed_url_for_downloading_the_video_input>
          mediaType: video/mp4
        targetLocaleCodes:
        - en-US
        captions:
          targetFormats:
          - SRT
    DubRequestUsingEditedSourceTranscript:
      summary: Dub request using edited source transcript
      value:
        video:
          source:
            url: <pre_signed_url_for_downloading_the_video_input>
          mediaType: video/mp4
        transcripts:
        - source:
            url: <pre_signed_url_for_downloading_the_edited_transcript>
        targetLocaleCodes:
        - es-ES
        lipSync: true
    ErrorBodyBadRequest:
      summary: Bad Request
      value:
        error_code: bad_request
        message: The request was invalid or cannot be served.
    ValidationErrorCaptionGenerationNotSupportedWithTranslation:
      summary: Caption generation not supported with translation error
      value:
        error_code: validation_error
        message: Caption generation is not supported with translation
    ValidationErrorAudioInputMediaTypeMissing:
      summary: Audio input media type missing error
      value:
        error_code: validation_error
        message: Audio input media type is required
    VideoInputToGenerateTranscriptFromSourceVideo:
      summary: Generate transcript from source video
      value:
        video:
          source:
            url: <pre_signed_url_for_downloading_the_video_input>
          mediaType: video/mp4
    ValidationErrorInvalidVideoAudioSourceUrl:
      summary: Invalid video/audio source URL error
      value:
        error_code: validation_error
        message: Invalid video/audio source URL format
    ValidationErrorVideoAndAudioSimultaneous:
      summary: Video and audio simultaneous error
      value:
        error_code: validation_error
        message: Cannot provide both video and audio input simultaneously
    DubRequestUsingEditedTranslatedTranscript:
      summary: Dub request using edited translated transcript
      value:
        video:
          source:
            url: <pre_signed_url_for_downloading_the_video_input>
          mediaType: video/mp4
        transcripts:
        - source:
            url: <pre_signed_url_for_downloading_the_edited_translated_transcript>
        lipSync: true
    ValidationErrorEitherTargetLocaleCodesOrTranscriptionRequired:
      summary: Either target locale codes or transcription required error
      value:
        error_code: validation_error
        message: Either target locale codes or transcription is required
    VideoInputToGenerateTranscriptFromTargetLanguageVideo:
      summary: Generate transcript from video in target language (Spanish)
      value:
        video:
          source:
            url: <pre_signed_url_for_downloading_the_video_input>
          mediaType: video/mp4
        targetLocaleCodes:
        - es-ES
    ValidationErrorInputSourceBlank:
      summary: Input source blank error
      value:
        error_code: validation_error
        message: Input source URL cannot be blank
    ErrorBodyTooManyRequests:
      summary: Too many requests
      value:
        error_code: '429050'
        message: Too many requests
    ValidationErrorSourceUrlEmpty:
      summary: Source URL empty error
      value:
        error_code: validation_error
        message: Source URL cannot be empty
    ErrorBodyMethodNotAllowed:
      summary: Method Not Allowed
      value:
        error_code: method_not_allowed
        message: The HTTP method is not supported for this endpoint.
    ErrorBodyResourceNotFound:
      summary: Not Found
      value:
        error_code: unknown_job_id
        message: The requested resource was not found.
    ValidationErrorVideoInputMediaTypeMissing:
      summary: Video input media type missing error
      value:
        error_code: validation_error
        message: Video input media type is required
    ValidationErrorAudioSourceBlank:
      summary: Audio source blank error
      value:
        error_code: validation_error
        message: Audio source URL cannot be blank
    ValidationErrorUnsupportedAudioMediaType:
      summary: Unsupported audio media type error
      value:
        error_code: validation_error
        message: Unsupported audio media type
    AudioInputToGenerateTranscriptFromTargetLanguageAudio:
      summary: Generate transcript from audio in target language (Spanish)
      value:
        audio:
          source:
            url: <pre_signed_url_for_downloading_the_audio_input>
          mediaType: audio/wav
        targetLocaleCodes:
        - es-ES
    AudioInputToGenerateTranscriptAndCaptionsFromTargetFormatsFromSourceAudio:
      summary: Generate transcript and captions from source audio
      value:
        audio:
          source:
            url: <pre_signed_url_for_downloading_the_audio_input>
          mediaType: audio/wav
        targetLocaleCodes:
        - en-US
        captions:
          targetFormats:
          - SRT
    ValidationErrorBlankTargetLocaleCode:
      summary: Blank target locale code error
      value:
        error_code: validation_error
        message: Target locale code cannot be blank
    ValidationErrorVideoSourceBlank:
      summary: Video source blank error
      value:
        error_code: validation_error
        message: Video source URL cannot be blank
    DubRequestUsingAudioEditedSourceTranscript:
      summary: Dub request using audio edited source transcript
      value:
        audio:
          source:
            url: <pre_signed_url_for_downloading_the_audio_input>
          mediaType: audio/wav
        transcripts:
        - source:
            url: <pre_signed_url_for_downloading_the_edited_transcript>
        targetLocaleCodes:
        - es-ES
  schemas:
    TargetLocaleCodes:
      type: string
      description: Locale code for dubbing target.
      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
    TranscribeVideoInput:
      type: object
      properties:
        video:
          $ref: '#/components/schemas/VideoInput'
      required:
      - video
      description: The request body for transcribing video.
    VideoInputMediaType:
      type: string
      description: Media type of the video input.
      enum:
      - video/mp4
      - video/mov
      - video/quicktime
      - video/x-msvideo
      - video/x-matroska
    AudioInputMediaType:
      type: string
      description: Media type of the audio input.
      enum:
      - audio/mp3
      - audio/wav
      - audio/mpeg
      - audio/x-m4a
      - audio/aac
    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
    DubVideoRequest:
      type: object
      title: Video dub request
      properties:
        targetLocaleCodes:
          type: array
          items:
            $ref: '#/components/schemas/TargetLocaleCodes'
          description: This determines the language used in the processed output. See the usage notes for more about [the supported languages](https://developer.adobe.com/audio-video-firefly-services/getting-started/usage/#language-support).
        transcripts:
          type: array
          items:
            $ref: '#/components/schemas/TranscriptInput'
        video:
          $ref: '#/components/schemas/VideoInput'
        lipSync:
          type: boolean
          description: If `true`, a high-quality composited lip sync will be used in the video output.
          default: 'false'
      required:
      - video
      description: The video dub request body.
    DubRequest:
      type: object
      oneOf:
      - $ref: '#/components/schemas/DubAudioRequest'
      - $ref: '#/components/schemas/DubVideoRequest'
      description: The dub request body.
    Source:
      type: object
      properties:
        url:
          type: string
          format: uri
          description: The pre-signed URL pointing to the input source.
      required:
      - url
      description: Source details including a pre-signed URL for accessing the input media. See the [list of allowed domains for storage](https://developer.adobe.com/audio-video-firefly-services/getting-started/storage-solutions/).
    DubAudioRequest:
      type: object
      title: Audio dub request
      properties:
        targetLocaleCodes:
          type: array
          items:
            $ref: '#/components/schemas/TargetLocaleCodes'
          description: This determines the language used in the processed output. See the usage notes for more about [the supported languages](https://developer.adobe.com/audio-video-firefly-services/getting-started/usage/#language-support).
        transcripts:
          type: array
          items:
            $ref: '#/components/schemas/TranscriptInput'
        audio:
          $ref: '#/components/schemas/AudioInput'
      required:
      - audio
      description: The audio dub request body.
    TranscriptInput:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/Source'
          description: The pre-signed URL to download the translated/edited transcripts. See the [list of allowed domains for storage](https://developer.adobe.com/audio-video-firefly-services/getting-started/storage-solutions/).
      required:
      - source
      description: Transcript input details for a transcribe request.
    TargetCaptionFormats:
      type: string
      description: Target caption format.
      enum:
      - SRT
    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
          description: This determines the language used in the processed output. See the usage notes for more about [the supported languages](https://developer.adobe.com/audio-video-firefly-services/getting-started/usage/#language-support).
          items:
            $ref: '#/components/schemas/TargetLocaleCodes'
        captions:
          $ref: '#/components/schemas/Captions'
          description: Details to generate captions.
      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
      description: The Adobe-generated access token, S2S format.
    X-Api-Key:
      type: apiKey
      name: x-api-key
      in: header
      description: The client ID for authentication.