All Products
Search
Document Center

ApsaraVideo VOD:SubmitTranscodeJobs

Last Updated:Dec 09, 2025

You can call this operation to submit media transcoding jobs for asynchronous processing.

Operation description

Usage notes

  • Before you call this operation, make sure that you understand the billing methods and pricing of ApsaraVideo VOD. Transcoding is a paid feature. For more information about billing, see Media transcoding billing.

  • You can transcode videos only if their status is Uploaded, Normal, or Under Review.

  • To obtain the transcoding results, you can receive callback messages for the following events: Transcoding for a single definition is complete and All transcoding jobs are complete.

  • This operation supports dynamic replacement of subtitle URLs in HTTP Live Streaming (HLS) adaptive bitrate streaming packaging jobs. For packaging jobs that do not involve subtitles, do not call this operation. Instead, set the packaging template group ID when you upload the video to automatically start the packaging process.

Try it now

Try this API in OpenAPI Explorer, no manual signing needed. Successful calls auto-generate SDK code matching your parameters. Download it with built-in credential security for local usage.

Test

RAM authorization

The table below describes the authorization required to call this API. You can define it in a Resource Access Management (RAM) policy. The table's columns are detailed below:

  • Action: The actions can be used in the Action element of RAM permission policy statements to grant permissions to perform the operation.

  • API: The API that you can call to perform the action.

  • Access level: The predefined level of access granted for each API. Valid values: create, list, get, update, and delete.

  • Resource type: The type of the resource that supports authorization to perform the action. It indicates if the action supports resource-level permission. The specified resource must be compatible with the action. Otherwise, the policy will be ineffective.

    • For APIs with resource-level permissions, required resource types are marked with an asterisk (*). Specify the corresponding Alibaba Cloud Resource Name (ARN) in the Resource element of the policy.

    • For APIs without resource-level permissions, it is shown as All Resources. Use an asterisk (*) in the Resource element of the policy.

  • Condition key: The condition keys defined by the service. The key allows for granular control, applying to either actions alone or actions associated with specific resources. In addition to service-specific condition keys, Alibaba Cloud provides a set of common condition keys applicable across all RAM-supported services.

  • Dependent action: The dependent actions required to run the action. To complete the action, the RAM user or the RAM role must have the permissions to perform all dependent actions.

Action

Access level

Resource type

Condition key

Dependent action

vod:SubmitTranscodeJobs

create

*All Resource

*

None None

Request parameters

Parameter

Type

Required

Description

Example

VideoId

string

No

The ID of the video. You can obtain the video ID in one of the following ways:

  • For videos uploaded to the ApsaraVideo VOD console, log on to the ApsaraVideo VOD console and choose Media Library > Audio/Video to view the video ID.

  • If you upload videos by calling the CreateUploadVideo operation, the video ID is the value of the VideoId parameter in the response.

  • After a video is uploaded, you can call the SearchMedia operation to query the video ID. The video ID is the value of the VideoId parameter in the response.

142710f878bd42508932f660d7b1****

TemplateGroupId

string

Yes

The ID of the transcoding template group that is used for video transcoding. To view the template group ID, log on to the ApsaraVideo VOD console and choose Configuration Management > Media Processing Settings > Transcoding Template Groups.

0e408c803baf658ee637790c5d9f****

PipelineId

string

No

The ID of the pipeline.

d3e680e618708erf45fbf2cae7c****

EncryptConfig

string

No

The encryption configurations. This parameter is a JSON string and is required only for HLS standard encryption.

Note
  • The CipherText parameter in the EncryptConfig struct must be the AES_128 ciphertext key that is generated by calling the GenerateKMSDataKey operation. Otherwise, the standard encrypted transcoding fails. For more information about how to perform standard encryption, see HLS standard encryption.

  • For both standard and private encryption, the HLS encryption option must be selected for the templates that are specified by TemplateGroupId. Otherwise, the videos are not encrypted.

{"CipherText":"ZjJmZGViNzUtZWY1Mi00Y2RlLTk3****", "DecryptKeyUri":"http://demo.aliyundoc.com?CipherText=ZjJmZGViNzUtZWY1Mi00Y2RlLTk3****","KeyServiceType":"KMS"}

OverrideParams

string

No

The override parameters, which are a JSON string. You can use this parameter to overwrite the image watermark file, text watermark content, subtitle file URL, and subtitle file encoding format that are associated with the transcoding template. For more information about the parameter structure, see OverrideParams.

{"Watermarks":[{"WatermarkId":"af2afe4761992c47dae973374****","FileUrl":"http://developer.aliyundoc.com/image/image.png"},{"WatermarkId":"e8e5b8038d7ada85b376c2707****","Content":"watermark test"}]}

Priority

string

No

The priority of the transcoding job in all queued jobs.

  • Valid values: 1 to 10.

  • The highest priority is 10.

  • Default value: 6.

Note

The Priority parameter affects the priority of only the current transcoding job among all queued jobs. It does not affect the priority of jobs that are being transcoded.

6

UserData

string

No

Custom settings. This parameter is a JSON string and supports settings such as message callbacks. For more information, see UserData.

Note

To use the message callback feature, you must configure a webhook address and select the corresponding event types in the ApsaraVideo VOD console. Otherwise, the callback settings do not take effect.

{"Extend":{"localId":"****","test":"***"}}

SessionId

string

No

A custom deduplication ID. If a request with the same deduplication ID is made within 7 days, an error is returned. The ID can be up to 50 characters in length and can contain uppercase and lowercase letters, digits, hyphens (-), and underscores (_). If you do not specify this parameter or leave it empty, deduplication is not performed.

5c62d40299034bbaa4c195da330****

ReferenceId

string

No

A custom ID. The ID can be 6 to 64 characters in length and can contain lowercase letters, uppercase letters, digits, hyphens (-), and underscores (_). The ID must be unique for each user.

123-123

Response elements

Element

Type

Description

Example

object

The returned result.

TranscodeTaskId

string

The ID of the submitted transcoding job.

9f4a0df7da2c8a81c8c0408c84****

RequestId

string

The ID of the request.

E4EBD2BF-5EB0-4476-8829-9D94E1B1****

TranscodeJobs

object

TranscodeJob

array<object>

The information about the media job.

Note

This parameter is not returned for HLS adaptive bitrate streaming packaging jobs. You must receive an asynchronous callback to obtain the result.

object

The details of the media job.

JobId

string

The ID of the job.

Note

This parameter is not returned for HLS adaptive bitrate streaming packaging jobs. You must receive an asynchronous callback to obtain the result.

d8921ce8505716cfe86fb112c4****

Examples

Success response

JSON format

{
  "TranscodeTaskId": "9f4a0df7da2c8a81c8c0408c84****",
  "RequestId": "E4EBD2BF-5EB0-4476-8829-9D94E1B1****",
  "TranscodeJobs": {
    "TranscodeJob": [
      {
        "JobId": "d8921ce8505716cfe86fb112c4****"
      }
    ]
  }
}

Error codes

See Error Codes for a complete list.

Release notes

See Release Notes for a complete list.