tencent cloud

Creating Templates
Last updated:2025-09-09 17:30:17
Creating Templates
Last updated: 2025-09-09 17:30:17

Feature Description

Create a video to GIF template.

Authorization Description

When using with a sub-account, the ci:CreateMediaTemplate permission is required. For details, see Cloud Infinite actions.

Activating a Service

Using this feature requires enabling Cloud Infinite in advance and binding a bucket. For details, see Bind bucket.
Use this feature requires enabling Media Processing Service in advance via console or API. For details, see Enable Media Processing Service.

Use Limits

When using this API, please first confirm the relevant restrictions. For details, see Usage Limits.


Request

Request sample

POST /template HTTP/1.1
Host: <BucketName-APPID>.ci.<Region>.myqcloud.com
Date: <GMT Date>
Authorization: <Auth String>
Content-Length: <length>
Content-Type: application/xml

<body>
Note:
Authorization: Auth String. For details, see Request Signature document.

Request header.

This API only uses common request headers. For details, see Common Request Headers documentation.

Request body.

The implementation of this request operation requires the following request body.
<Request>
<Tag>Animation</Tag>
<Name>TemplateName</Name>
<Container>
<Format>gif</Format>
</Container>
<Video>
<Codec>gif</Codec>
<Width>1280</Width>
<Height></Height>
<Fps>15</Fps>
<AnimateOnlyKeepKeyFrame>true</AnimateOnlyKeepKeyFrame>
</Video>
<TimeInterval>
<Start>0</Start>
<Duration>60</Duration>
</TimeInterval>
</Request>
The data are described as follows:
Node Name (Keyword)
Parent Node
Description
Type
Required or Not
Request
None.
Container for saving requests
Container
Yes
The specific data description for the
Request
Container type is as follows:
Node Name (Keyword)
Parent Node
Description
Type
Required or Not
Tag
Request
Template type: Animation
String
Yes
Name
Request
Template name only supports Chinese, English, digits, _, -, and *, with length not exceeding 64.
String
Yes
Container
Request
container format
Container
Yes
Video
Request
video information
Container
No
TimeInterval
Request
time interval
Container
No
The specific data description for the
Container
Request node is as follows:
Node Name (Keyword)
Parent Node
Description
Type
Default Value
Required or Not
Format
Request.Container
Muxing formats: gif, hgif, webp
String
None.
Yes
Note:
hgif is a high-quality GIF, meaning a GIF format image with relatively high clarity.
The specific data description for the
Video
Request node is as follows:
Node Name (Keyword)
Parent Node
Description
Type
Default Value
Required or Not
Codec
Request.Video
Encoding/decoding format, parameter values: gif, webp
String
None.
Yes
Width
Request.Video
Wide
Value range: [128, 4096]
unit: px
If only Width is set, calculate Height based on the original aspect ratio of the video.
String
Original width of video
No
Height
Request.Video
High
Value range: [128, 4096]
unit: px
If only Height is set, calculate Width based on the original aspect ratio of the video.
String
Original height of video
No
Fps
Request.Video
Frame Rate
Value range: (0, 60]
Unit: fps
If not set, the playback speed will follow the original timestamp. Here, set fps as the playback frame rate of the animated image.
String
Original frame rate of video
No
AnimateOnlyKeepKeyFrame
Request.Video
Animated GIF retains only key frames
true: AnimateTimeIntervalOfFrame and AnimateFramesPerSecond are invalid
false: AnimateTimeIntervalOfFrame and AnimateFramesPerSecond are required
String
false
No
AnimateTimeIntervalOfFrame
Request.Video
Animated GIF frame extraction interval time
Value range: (0, video duration]
If you set TimeInterval.Duration, it must be less than this value.
String
None.
No
AnimateFramesPerSecond
Request.Video
Number of frames extracted per second, value range: (0, video frame rate)
String
None.
No
Quality
Request.Video
Relative quality
Value range: [1, 100)
webp image quality setting takes effect gif has no quality parameter
String
None.
No
The specific data description for the
TimeInterval
Request node is as follows:
Node Name (Keyword)
Parent Node
Description
Type
Default Value
Required or Not
Start
Request.TimeInterval
Start Time
video duration
in seconds
Support float format, with execution accuracy accurate to milliseconds
String
0
No
Duration
Request.TimeInterval
Duration
video duration
Unit: seconds
Support float format, with execution accuracy accurate to milliseconds
String
Video duration
No

Response

Response Headers

This response uses common response headers. For details, see Common Response Headers.

Response Body

The response body is returned as application/xml. An example including the complete node data is shown below:
<Response>
<Template>
<Name>TemplateName</Name>
<TemplateId>t1f16e1dfbdc994105b31292d45710642a</TemplateId>
<Tag>Animation</Tag>
<BucketId>test-1234567890</BucketId>
<Category>Custom</Category>
<TransTpl>
<Container>
<Format>gif</Format>
</Container>
<Video>
<Codec>gif</Codec>
<Width>1280</Width>
<Height></Height>
<Fps>15</Fps>
<AnimateOnlyKeepKeyFrame>true</AnimateOnlyKeepKeyFrame>
</Video>
<TimeInterval>
<Start>0</Start>
<Duration>60</Duration>
</TimeInterval>
</TransTpl>
<CreateTime>2020-08-05T11:35:24+0800</CreateTime>
<UpdateTime>2020-08-31T16:15:20+0800</UpdateTime>
</Template>
</Response>
The data are as follows:
Node Name (Keyword)
Parent Node
Description
Type
Response
None.
Container for saving results
Container
Container node
Response
content:
Node Name (Keyword)
Parent Node
Description
Type
TemplateId
Response
template ID
String
Name
Response
template name
String
BucketId
Response
template's bucket
String
Category
Response
template property, Custom or Official
String
Tag
Response
Template Tag
String
UpdateTime
Response
Update time
String
CreateTime
Response
Creation time
String
TransTpl
Response
Detailed template parameters
Container
Container node
TransTpl
content:
Node Name (Keyword)
Parent Node
Description
Type
Container
Request
In the request body's Request.Container
Container
Video
Request
Same as the Request.Video in the request body
Container
TimeInterval
Request
Request.TimeInterval
Container

Error Codes

This request has no specific error messages. For common error information, please refer to the Error Codes document.

Examples

Request

POST /template HTTP/1.1
Authorization:q-sign-algorithm=sha1&q-ak=**********************************&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=**************************************
Host:test-1234567890.ci.ap-chongqing.myqcloud.com
Content-Length: 1666
Content-Type: application/xml

<Request>
<Tag>Animation</Tag>
<Name>TemplateName</Name>
<Container>
<Format>gif</Format>
</Container>
<Video>
<Codec>gif</Codec>
<Width>1280</Width>
<Height></Height>
<Fps>15</Fps>
<AnimateOnlyKeepKeyFrame>true</AnimateOnlyKeepKeyFrame>
</Video>
<TimeInterval>
<Start>0</Start>
<Duration>60</Duration>
</TimeInterval>
</Request>

Response

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 100
Connection: keep-alive
Date: Thu, 14 Jul 2022 12:37:29 GMT
Server: tencent-ci
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYz****=

<Response>
<Template>
<Name>TemplateName</Name>
<TemplateId>t1f16e1dfbdc994105b31292d45710642a</TemplateId>
<Tag>Animation</Tag>
<BucketId>test-1234567890</BucketId>
<Category>Custom</Category>
<TransTpl>
<Container>
<Format>gif</Format>
</Container>
<Video>
<Codec>gif</Codec>
<Width>1280</Width>
<Height></Height>
<Fps>15</Fps>
<AnimateOnlyKeepKeyFrame>true</AnimateOnlyKeepKeyFrame>
</Video>
<TimeInterval>
<Start>0</Start>
<Duration>60</Duration>
</TimeInterval>
</TransTpl>
<CreateTime>2020-08-05T11:35:24+0800</CreateTime>
<UpdateTime>2020-08-31T16:15:20+0800</UpdateTime>
</Template>
</Response>

Was this page helpful?
You can also Contact Sales or Submit a Ticket for help.
Yes
No

Feedback