Updated on 2025-12-18 GMT+08:00

Before You Start

Video on Demand (VOD) is a one-stop solution that uploads, transcodes, and manages media resources and distributes them to your users. VOD offers premium media processing to help you quickly build a secure and scalable VOD platform, eliminating the hassle of managing underlying infrastructure.

This document describes how to use application programming interfaces (APIs) to perform operations on VOD, such as uploading, transcoding, categorizing, and managing audio/video. API Overview lists all supported operations.

If you plan to access VOD through an API, ensure that you are familiar with VOD concepts. For details, see Service Overview.

Endpoints

VOD supports Representational State Transfer (REST) APIs, allowing you to call APIs using HTTPS. For details, see Calling APIs.

An endpoint is the request address for calling an API. Endpoints vary depending on regions. For the endpoints of all services, see Regions and Endpoints.

In addition, VOD provides software development kit (SDK) in multiple programming languages.

APIs Supporting Cross-Origin Requests

See Table 1.

Table 1 APIs supporting cross-origin requests

API

URI

Uploading Media Assets to VOD

/v1.0/{project_id}/asset

Confirming Media Asset Upload

/v1.0/{project_id}/asset/status/uploaded

Verifying the Upload

/v1.0/{project_id}/asset/duplication

Querying Media Assets

/v1.0/{project_id}/asset/info

Obtaining Authorization for Multipart Upload

/v1.0/{project_id}/asset/authority

API Request Throttling

API request throttling is configured for VOD to prevent service interruption caused by repeated API calls in a short period. See Table 2.

Table 2 API request throttling

Category

API

API Calls for a Single Tenant Per Minute

API Calls for All Tenants Per Minute

Media upload

  • Uploading media files to VOD
  • Obtaining authorization for multipart upload
  • Confirming media file upload
  • Authorizing access to OBS
  • Replicating media files in OBS to VOD

1,500

12,000

  • Pulling media files from URLs
  • Verifying the upload

100

1,000

Media processing

  • Updating a video
  • Media processing
  • Canceling a media asset transcoding task
  • Extracting audio
  • Canceling an audio extraction task
  • Creating a media asset review task
  • Setting a thumbnail

100

1,000

Media management

  • Deleting media files
  • Publishing media files
  • Canceling media publish
  • Modifying media asset attributes

100

1,000

Querying media asset information

1,500

24,000

  • Querying file details
  • Querying media files

1,500

12,000

Media pre-loading

CDN pre-loading

10

250

Querying pre-loading results

100

1,000

Media file refresh

  • CDN cache refresh
  • Querying CDN cache refresh results

100

1,000

Media category

  • Creating a media category
  • Modifying a media category
  • Deleting a media category
  • Querying media categories

100

1,000

Key query

Key query

1,500

12,000

Statistical analysis

  • Querying CDN statistics (V1)
  • Querying CDN statistics (V2)
  • Querying origin server statistics
  • Querying the most frequently requested content
  • Querying playback logs of a domain name
  • Querying daily playback statistics of a media asset

100

1,000

Watermark template management

  • Creating a watermark template
  • Modifying a watermark template
  • Querying watermark templates
  • Deleting a watermark template
  • Confirming watermark image upload

100

1,000

Subtitle management

Managing subtitles

100

1,000

Transcoding template management

  • Creating a custom transcoding template
  • Querying transcoding templates
  • Updating a transcoding template
  • Deleting a custom template

100

1,000

Transcoding template group management

  • Creating a transcoding template group
  • Modifying a transcoding template group
  • Querying custom template groups
  • Deleting a transcoding template group

100

1,000

Transcoded output management

Deleting transcoded outputs

100

1,000

Media asset storage mode management

  • Modifying the cold storage scope of a media asset
  • Changing the OBS storage class of a media asset
  • Querying the cold storage settings of a media asset

100

1,000

Concepts

  • Account

    An account is created upon successful registration with the cloud platform. The account has full access permissions for all of its cloud services and resources. It can be used to reset user passwords and grant user permissions. An account is a payment entity. Accounts should not be used directly to perform routine management. For security purposes, create IAM users and grant them permissions for routine management.

  • IAM user

    An IAM user is created using an account to use cloud services. Each IAM user has its own identity credentials (password and access keys).

    An IAM user can view the account ID and user ID on the My Credentials page of the console. The account, username, and password will be required for API authentication.

  • Region

    A region is a physical location where cloud resources are deployed. Availability zones (AZs) in the same region can communicate with each other over an intranet, but AZs in different regions cannot. Deploying cloud resources in different regions can better suit certain user requirements or comply with local laws or regulations.

  • AZ

    An AZ contains one or more physical data centers equipped with independent ventilation, fire, water, and electricity facilities. Compute, networking, storage, and other resources in an AZ are logically divided into multiple clusters. AZs within a region are interconnected using high-speed optical fibers to allow you to build cross-AZ, high-availability systems.

  • Project

    Projects group and isolate resources (including compute, storage, and networking resources) across physical regions. A default project is provided for each region, and subprojects can be created under each default project. Users can be granted permissions to access all resources in a specific project. For more refined access control, create subprojects under a project and purchase resources in the subprojects. Users can then be assigned permissions to access only specific resources in the subprojects.

    Figure 1 Project isolating model