{ "openapi" : "3.1.0", "info" : { "version" : "", "title" : "Translate and Lip Sync 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" : [ ] } ], "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" } } } } } } } }, "/v1/dub" : { "post" : { "summary" : "Dub audio or video", "description" : "Generate dubbed video or audio.

A composited lip sync can be added for video dubbing.", "operationId" : "dub", "requestBody" : { "description" : "The dub request body is used to specify either an audio dubbing or a video dubbing.", "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 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" } } } } } } } }, "/v1/status/{jobId}" : { "get" : { "summary" : "Get the result for a job", "description" : "Provides the result for an async dub job.", "operationId" : "jobResult", "parameters" : [ { "name" : "jobId", "in" : "path", "description" : "The job id to get status for an async dub job", "required" : true, "schema" : { "type" : "string" } } ], "responses" : { "200" : { "description" : "Successful Response", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/FireflyJobResponse" }, "examples" : { "TranscribeJobSucceeded" : { "$ref" : "#/components/examples/TranscribeJobSucceeded" }, "TranslateJobSucceeded" : { "$ref" : "#/components/examples/TranslateJobSucceeded" }, "TranslateJobPartiallySucceeded" : { "$ref" : "#/components/examples/TranslateJobPartiallySucceeded" }, "DubJobSucceeded" : { "$ref" : "#/components/examples/DubJobSucceeded" }, "DubJobPartiallySucceeded" : { "$ref" : "#/components/examples/DubJobPartiallySucceeded" }, "JobFailed" : { "$ref" : "#/components/examples/JobFailed" }, "JobIsStillRunning" : { "$ref" : "#/components/examples/JobIsStillRunning" }, "JobIsInPendingState" : { "$ref" : "#/components/examples/JobIsInPendingState" }, "Access_error" : { "$ref" : "#/components/examples/Access_error" }, "ValidationError_AudioVideo_Required" : { "$ref" : "#/components/examples/ValidationError_AudioVideo_Required" }, "ValidationErrorTargetOrTranscripts" : { "$ref" : "#/components/examples/ValidationErrorTargetOrTranscripts" }, "ValidationErrorMissingLocale" : { "$ref" : "#/components/examples/ValidationErrorMissingLocale" }, "LanguageNotSupported" : { "$ref" : "#/components/examples/LanguageNotSupported" }, "AudioSpeechNotDetectedSingle" : { "$ref" : "#/components/examples/AudioSpeechNotDetectedSingle" }, "ValidationErrorRedubbing" : { "$ref" : "#/components/examples/ValidationErrorRedubbing" }, "ValidationErrorProprietaryContent" : { "$ref" : "#/components/examples/ValidationErrorProprietaryContent" }, "ValidationErrorUnrecognizedLanguage" : { "$ref" : "#/components/examples/ValidationErrorUnrecognizedLanguage" }, "AudioSpeechNotDetectedMulti" : { "$ref" : "#/components/examples/AudioSpeechNotDetectedMulti" }, "ValidationErrorDialogTrackNumber" : { "$ref" : "#/components/examples/ValidationErrorDialogTrackNumber" }, "ValidationErrorDownloadFailure" : { "$ref" : "#/components/examples/ValidationErrorDownloadFailure" }, "VideoNotDetected" : { "$ref" : "#/components/examples/VideoNotDetected" }, "AudioNotDetectedUnsupported" : { "$ref" : "#/components/examples/AudioNotDetectedUnsupported" }, "ValidationErrorVideoDuration" : { "$ref" : "#/components/examples/ValidationErrorVideoDuration" }, "InputMediaIndecipherableFaces" : { "$ref" : "#/components/examples/InputMediaIndecipherableFaces" }, "ValidationErrorCodecUnsupported" : { "$ref" : "#/components/examples/ValidationErrorCodecUnsupported" }, "ValidationErrorMaxSupportedResolution" : { "$ref" : "#/components/examples/ValidationErrorMaxSupportedResolution" }, "ValidationErrorInvalidMediaProvided" : { "$ref" : "#/components/examples/ValidationErrorInvalidMediaProvided" } } } } }, "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" } } } } }, "429" : { "description" : "Too many requests", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/ErrorBody" }, "examples" : { "ErrorBodyTooManyRequests" : { "$ref" : "#/components/examples/ErrorBodyTooManyRequests" } } } } }, "500" : { "description" : "Internal Server Error", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/ErrorBody" }, "examples" : { "ErrorBodyInternalServerError" : { "$ref" : "#/components/examples/ErrorBodyInternalServerError" }, "ErrorBodyOFServiceInternalServerError" : { "$ref" : "#/components/examples/ErrorBodyServiceInternalServerError" } } } } } } } } }, "components" : { "securitySchemes" : { "AccessToken" : { "type" : "http", "scheme" : "bearer" }, "X-Api-Key" : { "type" : "apiKey", "name" : "x-api-key", "in" : "header" } }, "schemas" : { "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." }, "VideoInputMediaType" : { "type" : "string", "enum" : [ "video/mp4", "video/quicktime", "video/mov" ], "description" : "The video media type of the input file. Use a supported type." }, "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." }, "DubTargetLocaleCodes" : { "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" : "Supported target locale codes for dubbing" }, "TargetCaptionFormats" : { "type" : "string", "enum" : [ "SRT" ], "description" : "Supported target formats for caption generation" }, "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." }, "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." }, "TranscriptInput" : { "type" : "object", "properties" : { "source" : { "$ref" : "#/components/schemas/Source", "description" : "The pre-signed URL to download the translated/edited transcripts." }, "localeCode" : { "$ref" : "#/components/schemas/TranscriptInputLocale" } }, "required" : [ "source" ], "description" : "Transcript input details for transcribe 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." }, "TranscribeVideoInput" : { "type" : "object", "properties" : { "video" : { "$ref" : "#/components/schemas/VideoInput" } }, "required" : [ "video" ], "description" : "The request body for transcribing video." }, "Captions" : { "type" : "object", "properties" : { "targetFormats" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/TargetCaptionFormats" }, "description" : "Accepted values: ['SRT']" } } }, "Source" : { "type" : "object", "properties" : { "url" : { "type" : "string", "format" : "uri", "description" : "The pre-signed URL pointing to the input source." } } }, "Destination" : { "type" : "object", "properties" : { "url" : { "type" : "string", "description" : "The pre-signed URL pointing to the output source." } } }, "DubRequest" : { "type" : "object", "oneOf" : [ { "$ref" : "#/components/schemas/DubAudioRequest" }, { "$ref" : "#/components/schemas/DubVideoRequest" } ], "description" : "The dub request body." }, "DubAudioRequest" : { "type" : "object", "properties" : { "targetLocaleCodes" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/DubTargetLocaleCodes" }, "description" : "Accepted values: [ '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']" }, "transcripts" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/TranscriptInput" } }, "audio" : { "$ref" : "#/components/schemas/AudioInput" } }, "required" : [ "audio" ], "description" : "The audio dub request body." }, "DubVideoRequest" : { "type" : "object", "properties" : { "targetLocaleCodes" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/DubTargetLocaleCodes" }, "description" : "Accepted values: [ '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']" }, "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." }, "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." }, "FireflyJobApiResponseStatus" : { "type" : "string", "enum" : [ "pending", "running", "failed", "succeeded" ], "description" : "Status of the job." }, "FireflyJobResponse" : { "type" : "object", "description" : "Firefly job response.", "oneOf" : [ { "$ref" : "#/components/schemas/FireflyJobApiResponse" }, { "$ref" : "#/components/schemas/FireflyJobErrorResponse" } ] }, "FireflyJobApiResponse" : { "type" : "object", "description" : "Firefly job success response.", "properties" : { "status" : { "$ref" : "#/components/schemas/FireflyJobApiResponseStatus" }, "jobId" : { "type" : "string", "description" : "Associated job ID." }, "outputs" : { "description" : "Job response details.", "type" : "array", "items" : { "oneOf" : [ { "$ref" : "#/components/schemas/DubJobResponse" }, { "$ref" : "#/components/schemas/TranscribeOutput" } ] } } }, "required" : [ "jobId", "status" ] }, "FireflyJobErrorResponse" : { "type" : "object", "description" : "Firefly job error response.", "properties" : { "status" : { "$ref" : "#/components/schemas/FireflyJobApiResponseStatus" }, "jobId" : { "type" : "string", "description" : "Associated job ID." }, "message" : { "type" : "string", "description" : "The error message." }, "error_code" : { "type" : "string", "description" : "Associated error code." } }, "required" : [ "jobId", "status" ] }, "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" ] }, "TranscribeOutput" : { "type" : "array", "description" : "Transcribe success response", "items" : { "type" : "object", "properties" : { "destination" : { "$ref" : "#/components/schemas/Destination" }, "captions" : { "$ref" : "#/components/schemas/CaptionOutput" }, "localeCode" : { "$ref" : "#/components/schemas/TranscriptInputLocale" } } } }, "CaptionOutput":{ "type":"array", "description": "Captions output", "items":{ "type":"object", "properties":{ "destination":{ "$ref" : "#/components/schemas/Destination" }, "format": { "type":"string", "$ref" : "#/components/schemas/TargetCaptionFormats", "description": "Format of the caption" } } } }, "DubJobResponse" : { "type" : "object", "description" : "Dubbing success response", "oneOf" : [ { "$ref" : "#/components/schemas/DubSuccess" }, { "$ref" : "#/components/schemas/DubPartialFailure" } ] }, "DubSuccess" : { "type" : "object", "description" : "Dubbing success", "properties" : { "audioOutput" : { "$ref" : "#/components/schemas/AudioOutput" }, "videoOutput" : { "$ref" : "#/components/schemas/VideoOutput" }, "transcriptOutput" : { "$ref" : "#/components/schemas/TranscribeOutput" } } }, "AudioOutputMediaType" : { "type" : "string", "enum" : [ "audio/wav" ], "description" : "Media type of the audio output" }, "VideoOutputMediaType" : { "type" : "string", "enum" : [ "video/mp4", "video/mov" ], "description" : "Media type of the video output" }, "AudioOutput" : { "type" : "object", "description" : "Audio output in dubbing response.", "properties" : { "mediaType" : { "$ref" : "#/components/schemas/AudioOutputMediaType" }, "destination" : { "$ref" : "#/components/schemas/Destination" } } }, "VideoOutput" : { "type" : "object", "description" : "Video output in dubbing response.", "properties" : { "mediaType" : { "$ref" : "#/components/schemas/VideoOutputMediaType" }, "destination" : { "$ref" : "#/components/schemas/Destination" } } }, "DubPartialFailure" : { "type" : "object", "description" : "Dubbing failure for specific language.", "properties" : { "error" : { "$ref" : "#/components/schemas/ErrorBody" } } } }, "examples" : { "JobStatusLinkResponse" : { "summary" : "Successful Submission", "value" : { "jobId" : "", "statusUrl" : "https:///v1/status/" } }, "AudioInputToGenerateTranscriptFromSourceAudio" : { "summary" : "Generate transcript for audio input", "value" : { "audio" : { "source" : { "url" : "" }, "mediaType" : "audio/mp3" } } }, "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" ] } }, "VideoInputToGenerateTranscriptFromSourceVideo" : { "summary" : "Generate transcript for video input", "value" : { "video" : { "source" : { "url" : "" }, "mediaType" : "video/mp4" } } }, "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" ] } }, "AudioInputToGenerateTranscriptAndCaptionsFromTargetFormatsFromSourceAudio" : { "summary" : "Generate transcript and captions from target formats for Audio input", "value" : { "audio" : { "source" : { "url" : "" }, "mediaType" : "audio/mp3" }, "captions" : { "targetFormats": [ "SRT" ] } } }, "VideoInputToGenerateTranscriptAndCaptionsFromTargetFormatsFromSourceVideo" : { "summary" : "Generate transcript and captions from target formats for Video input", "value" : { "video" : { "source" : { "url" : "" }, "mediaType" : "video/mp4" }, "captions" : { "targetFormats": [ "SRT" ] } } }, "DubRequestUsingAutoTranslatedTranscripts" : { "summary" : "Automated dubbing (Video)", "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" ], "lipSync" : true } }, "DubRequestUsingAudioAutoTranslatedTranscripts" : { "summary" : "Automated dubbing (Audio)", "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" ], "lipSync" : false } }, "DubRequestUsingEditedSourceTranscript" : { "summary" : "Dubbing with an edited transcript (Video)", "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" ], "transcripts" : [ { "source" : { "url" : "" } } ], "lipSync" : true } }, "DubRequestUsingAudioEditedSourceTranscript" : { "summary" : "Dubbing with an edited transcript (Audio)", "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" ], "transcripts" : [ { "source" : { "url" : "" } } ], "lipSync" : false } }, "DubRequestUsingEditedTranslatedTranscript" : { "summary" : "Dubbing with Pre-Existing Translations (Video)", "value" : { "video" : { "source" : { "url" : "" }, "mediaType" : "video/mp4" }, "transcripts" : [ { "source" : { "url" : "" }, "localeCode" : "en-US" }, { "source" : { "url" : "" }, "localeCode" : "fr-FR" } ], "lipSync" : true } }, "DubRequestUsingAudioEditedTranslatedTranscript" : { "summary" : "Dubbing with Pre-Existing Translations (Audio)", "value" : { "audio" : { "source" : { "url" : "" }, "mediaType" : "audio/mp3" }, "transcripts" : [ { "source" : { "url" : "" }, "localeCode" : "en-US" }, { "source" : { "url" : "" }, "localeCode" : "fr-FR" } ], "lipSync" : false } }, "TranscribeJobSucceeded" : { "summary" : "Transcribe job succeeded", "value" : { "status" : "succeeded", "jobId" : "123e4567-e89b-12d3-a456-426614174002", "outputs" : [ { "destination" : { "url" : "" }, "captions": [ { "destination": { "url": "" }, "format": "SRT" } ] }] } }, "TranslateJobSucceeded" : { "summary" : "Translate job succeeded", "value" : { "status" : "succeeded", "jobId" : "123e4567-e89b-12d3-a456-426614174002", "outputs" : [ { "destination" : { "url" : "" }, "localeCode" : "en-UK" }, { "destination" : { "url" : "" }, "localeCode" : "en-US" }, { "destination" : { "url" : "" }, "localeCode" : "en-Fr" } ] } }, "TranslateJobPartiallySucceeded" : { "summary" : "Translate job partially succeeded", "value" : { "status" : "partially_succeeded", "jobId" : "123e4567-e89b-12d3-a456-426614174002", "outputs" : [ { "destination" : { "url" : "" }, "localeCode" : "en-UK" }, { "destination" : { "url" : "" }, "localeCode" : "en-US" }, { "error" : { "error_code" : "validation_error", "message" : "The transcript for localeCode en-Fr is incorrectly formatted.", "localeCode" : "en-Fr" } } ] } }, "DubJobSucceeded" : { "summary" : "Dub job succeeded", "value" : { "status" : "succeeded", "jobId" : "123e4567-e89b-12d3-a456-426614174002", "outputs" : [ { "localeCode" : "en-US", "audio" : { "mediaType" : "audio/wav", "destination" : { "url" : "Pre signed url for audio-en-US" } }, "video" : { "mediaType" : "video/mp4", "destination" : { "url" : "Pre signed url for video-en-US" } }, "transcript" : { "destination" : { "url" : "Pre signed url for text-en-US" } } }, { "localeCode" : "fr-FR", "audio" : { "mediaType" : "audio/wav", "destination" : { "url" : "Pre signed url for audio-fr-FR" } }, "video" : { "mediaType" : "video/mp4", "destination" : { "url" : "Pre signed url for video-fr-FR" } }, "transcript" : { "destination" : { "url" : "Pre signed url for text-fr-FR" } } } ] } }, "DubJobPartiallySucceeded" : { "summary" : "Dub job partially succeeded", "value" : { "status" : "partially_succeeded", "jobId" : "123e4567-e89b-12d3-a456-426614174002", "outputs" : [ { "localeCode" : "en-US", "error" : { "error_code" : "validation_error", "message" : "Incorrectly formatted transcript for localeCode en-US" } }, { "localeCode" : "fr-FR", "audio" : { "mediaType" : "audio/wav", "destination" : { "url" : "
"
              }
            },
            "video" : {
              "mediaType" : "video/mp4",
              "destination" : {
                "url" : "
"
              }
            },
            "transcript" : {
              "destination" : {
                "url" : "
"
              }
            }
          } ]
        }
      },
      "JobFailed" : {
        "summary" : "Job failed",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "validation_error",
              "message" : "Incorrectly formatted transcript for localeCode en-US"
            }
          }, {
            "localeCode" : "fr-FR",
            "error" : {
              "error_code" : "validation_error",
              "message" : "Incorrectly formatted transcript for localeCode fr-FR"
            }
          } ]
        }
      },
      "JobIsStillRunning" : {
        "summary" : "Job is still running",
        "value" : {
          "status" : "running",
          "jobId" : "123e4567-e89b-12d3-a456-426614174003"
        }
      },
      "JobIsInPendingState" : {
        "summary" : "Job is in pending state",
        "value" : {
          "status" : "pending",
          "jobId" : "123e4567-e89b-12d3-a456-426614174003"
        }
      },
      "ErrorBodyBadRequest" : {
        "summary" : "Error Body Bad Request",
        "value" : {
          "error_code" : "400001",
          "message" : "Invalid request. Please check the input data."
        }
      },
      "ErrorBodyUnauthorized" : {
        "summary" : "Error Body Unauthorized",
        "value" : {
          "error_code" : "401013",
          "message" : "Oauth token is not valid"
        }
      },
      "ErrorBodyForbidden" : {
        "summary" : "Error Body Forbidden",
        "value" : {
          "error_code" : "403220",
          "message" : "Token not allowed in the current context"
        }
      },
      "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."
        }
      },
      "ErrorBodyMethodNotAllowed" : {
        "summary" : "Error Body Method Not Allowed",
        "value" : {
          "error_code" : "405001",
          "message" : "The requested method is not allowed on this endpoint."
        }
      },
      "ErrorBodyLegalReasons" : {
        "summary" : "Unauthorized due to legal reasons",
        "value" : {
          "message" : "Unauthorized due to legal reasons",
          "error_code" : "unauthorized_legal_reasons"
        }
      },
      "ErrorBodyTooManyRequests" : {
        "summary" : "Error Body Too Many Requests",
        "value" : {
          "message" : "Too Many Requests",
          "error_code" : "429011"
        }
      },
      "ErrorBodyInternalServerError" : {
        "summary" : "Error Body Internal Server Error",
        "value" : {
          "error_code" : "500001",
          "message" : "An internal server error occurred. Please try again later."
        }
      },
      "ErrorBodyServiceInternalServerError" : {
        "summary" : "Error Body Internal Server Error by service",
        "value" : {
          "error_code" : "runtime_error",
          "message" : "Internal Server Error."
        }
      },
      "Access_error" : {
        "summary" : "Error Body for unauthorized access",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "access_error",
              "message" : "Not authorized. See X-Access-Error header for details"
            }
          } ]
        }
      },
      "ValidationError_AudioVideo_Required" : {
        "summary" : "Error Body for missing audio or video property",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "validation_error",
              "message" : "The body of the request must contain an \"audio\" property or a \"video\" property"
            }
          } ]
        }
      },
      "ValidationErrorTargetOrTranscripts" : {
        "summary" : "Error for request including both targetLocaleCodes and transcripts array",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "validation_error",
              "message" : "Request must include either targetLocaleCodes or transcripts array, not both"
            }
          } ]
        }
      },
      "ValidationErrorMissingLocale" : {
        "summary" : "Error for missing or unsupported localeCode",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "validation_error",
              "message" : "The request does not contain a localeCode property, or the value of the property is not a supported localCode"
            }
          } ]
        }
      },
      "LanguageNotSupported" : {
        "summary" : "Error for unsupported source language",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "language_not_supported",
              "message" : "Source language unsupported"
            }
          } ]
        }
      },
      "AudioSpeechNotDetectedSingle" : {
        "summary" : "Error for no speech detected in single audio track",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "audio_speech_not_detected",
              "message" : "No speech detected in audio track"
            }
          } ]
        }
      },
      "ValidationErrorRedubbing" : {
        "summary" : "Error for attempting re-dubbing of already dubbed content",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "validation_error",
              "message" : "Re-dubbing is not allowed for already dubbed content"
            }
          } ]
        }
      },
      "ValidationErrorProprietaryContent" : {
        "summary" : "Error for input media with proprietary content",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "validation_error",
              "message" : "Input media contains proprietary content; service not licensed for such content"
            }
          } ]
        }
      },
      "ValidationErrorUnrecognizedLanguage" : {
        "summary" : "Error for unrecognized language in audio track",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "validation_error",
              "message" : "Unrecognized language in audio track"
            }
          } ]
        }
      },
      "AudioSpeechNotDetectedMulti" : {
        "summary" : "Error for no speech detected in any audio track",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "audio_speech_not_detected",
              "message" : "No speech detected in any audio track"
            }
          } ]
        }
      },
      "ValidationErrorDialogTrackNumber" : {
        "summary" : "Error for invalid dialogTrackNumber property",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "audio_speech_not_detected",
              "message" : "Invalid dialogTrackNumber; should be an integer between 1 and 7"
            }
          } ]
        }
      },
      "ValidationErrorDownloadFailure" : {
        "summary" : "Error for failure in downloading data from input URL",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "audio_speech_not_detected",
              "message" : "Error downloading data from input URL"
            }
          } ]
        }
      },
      "VideoNotDetected" : {
        "summary" : "Error for invalid video file",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "video_not_detected",
              "message" : "Downloaded media is not a valid video file"
            }
          } ]
        }
      },
      "AudioNotDetectedUnsupported" : {
        "summary" : "Error for unsupported audio format",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "audio_not_detected",
              "message" : "Downloaded media is not a supported audio format"
            }
          } ]
        }
      },
      "ValidationErrorVideoDuration" : {
        "summary" : "Error for video duration exceeding limit",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "validation_error",
              "message" : "Video duration should be under 30 minutes"
            }
          } ]
        }
      },
      "InputMediaIndecipherableFaces" : {
        "summary" : "Error for no faces detected in the video",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "input_media_indecipherable",
              "message" : "Lip-Sync validation failed, no faces detected in the video"
            }
          } ]
        }
      },
      "ValidationErrorCodecUnsupported" : {
        "summary" : "Error for unsupported video codec",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "validation_error",
              "message" : "Unsupported video codec"
            }
          } ]
        }
      },
      "ValidationErrorMaxSupportedResolution" : {
        "summary" : "Error for video resolution exceeding maximum supported resolution",
        "value" : {
          "status" : "failed",
          "jobId" : "123e4567-e89b-12d3-a456-426614174002",
          "outputs" : [ {
            "localeCode" : "en-US",
            "error" : {
              "error_code" : "validation_error",
              "message" : "Video resolution should not be greater than maximum supported resolution 1920x1080"
            }
          } ]
        }
      },
      "ValidationErrorBlankTranscriptSourceField" : {
        "summary" : "Transcript source field cannot be blank",
        "value" : {
          "error_code" : "validation_error",
          "message" : "Transcript source field cannot be blank"
        }
      },
      "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"
        }
      },
      "ValidationErrorAudioSourceBlank" : {
        "summary" : "Error for blank audio source field",
        "value" : {
          "error_code" : "validation_error",
          "message" : "Audio source field cannot be blank"
        }
      },
      "ValidationErrorInputSourceBlank" : {
        "summary" : "Error for blank input source field",
        "value" : {
          "error_code" : "validation_error",
          "message" : "Input source field cannot be blank"
        }
      },
      "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"
        }
      },
      "ValidationErrorVideoInputMediaTypeMissing" : {
        "summary" : "Error for missing video input media type",
        "value" : {
          "error_code" : "validation_error",
          "message" : "Video input media type must be specified"
        }
      },
      "ValidationErrorAudioInputMediaTypeMissing" : {
        "summary" : "Error for missing audio input media type",
        "value" : {
          "error_code" : "validation_error",
          "message" : "Audio input media type must be specified"
        }
      },
      "ValidationErrorSourceUrlEmpty" : {
        "summary" : "Error for empty source URL field",
        "value" : {
          "error_code" : "validation_error",
          "message" : "Source URL field cannot be empty"
        }
      },
      "ValidationErrorInvalidVideoAudioSourceUrl" : {
        "summary" : "Error for invalid video/audio input source URL",
        "value" : {
          "error_code" : "validation_error",
          "message" : "Invalid video/audio input source URL: <>"
        }
      },
      "ValidationErrorInvalidTranscriptUrl" : {
        "summary" : "Error for invalid transcript input source URL",
        "value" : {
          "error_code" : "validation_error",
          "message" : "Invalid transcript input source URL: <>"
        }
      },
      "ValidationErrorUnsupportedVideoMediaType" : {
        "summary" : "Error for unsupported video media type",
        "value" : {
          "error_code" : "validation_error",
          "message" : "Unsupported input video media type: <>"
        }
      },
      "ValidationErrorUnsupportedAudioMediaType" : {
        "summary" : "Error for unsupported audio media type",
        "value" : {
          "error_code" : "validation_error",
          "message" : "Unsupported input audio media type: <>"
        }
      },
      "ValidationErrorUnsupportedTargetLocaleCode" : {
        "summary" : "Error for unsupported target locale code",
        "value" : {
          "error_code" : "validation_error",
          "message" : "Unsupported target locale code: <>"
        }
      },
      "ValidationErrorInvalidMediaProvided" : {
        "summary" : "Error for invalid media provided as input",
        "value" : {
          "error_code" : "validation_error",
          "message" : "Invalid media provided"
        }
      },
      "ValidationErrorMissingTargetLocaleCode" : {
        "summary" : "Error for missing target locale code",
        "value" : {
          "error_code" : "validation_error",
          "message" : "At least one target locale code required"
        }
      },
      "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"
        }
      },
      "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"
        }
      },
      "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"
        }
      }
    }
  }
}