stable本次发布有变化全部展示
来自 Shopee 官方资料快照 ·
- 当前资料结构化阅读页
- 固定快照已留存,可追溯
- 官方原文可核对
资料正文
§1 v2.video.edit_video_info
You need to call v2.media.init_video_upload, v2.media.upload_video_part, and v2.media.complete_video_upload to upload the video, and call the v2.media.get_video_upload_result to get the video_upload_id of uploaded video first, then call this API to set video post information. After submit, the video is still draft status, you need to call v2.video.post_video to post the video to Shopee Video. You can only set and update post information before the video is post.
§2 Overview
Overview
| Field | Value |
|---|---|
| Module | Video |
| API type | User |
| HTTP method | POST |
| Path | /api/v2/video/edit_video_info |
| Production URL | https://partner.shopeemobile.com/api/v2/video/edit_video_info |
| Sandbox URL | https://partner.test-stable.shopeemobile.com/api/v2/video/edit_video_info |
| Permission | Shopee Video Management |
§3 Request parameters
Request parameters
| Name | Type | Required | Sample | Description |
|---|---|---|---|---|
| video_upload_list | object[] | Yes | Video information collection, no more than 5. | |
| video_upload_list.video_upload_id | string | Yes | sg-11110199-6v99e-mgezdwct5eyya0 | ID of uploaded video. Obtain from v2.media.get_video_upload_result. |
| video_upload_list.caption | string | No | this is a test video | Description of the Shopee Video. |
| video_upload_list.cover_image_url | string | Yes | https://down-sg.img.susercontent.com/sg-11110199-6v99e-mgezdwct5eyya0_pack_v1_1000001_1 | Selected cover image url of the Shopee Video. Obtain from v2.video.get_cover_list. |
| video_upload_list.item_info | object[] | No | List of products to be linked with the Shopee Video, no more than 6. | |
| video_upload_list.item_info.item_id | int64 | Yes | 2 | Shopee's unique identifier for an item. |
| video_upload_list.item_info.custom_item_name | string | No | item display name | Product display name in Shopee Video. |
| video_upload_list.allow_info | object | Yes | Whether allow stitch and duet. | |
| video_upload_list.allow_info.allow_duet | boolean | Yes | true | Whether allow duet. |
| video_upload_list.allow_info.allow_stitch | boolean | Yes | true | Whether allow stitch. |
| video_upload_list.scheduled_info | object | Yes | When scheduled_post is true, scheduled_post_time must not empty.; When scheduled_post is false, scheduled_post_time must empty. | |
| video_upload_list.scheduled_info.scheduled_post | boolean | Yes | true | Whether post it to Shopee Video at scheduled time. |
| video_upload_list.scheduled_info.scheduled_post_time | timestamp | No | 1761734929450 | Scheduled post time, millisecond timestamp. When scheduled_post is true, scheduled_post_time must not empty. |
| aigc_label | boolean | Yes | true | Indicates whether the video contains AI-generated or AI-assisted content, such as visuals, voice, avatars, or scripts. Set to true if it does; otherwise, set to false. An AI label will be shown to viewers when set to true. |
§4 Response parameters
Response parameters
| Name | Type | Required | Sample | Description |
|---|---|---|---|---|
| error | string | Indicate error type if hit error. Empty if no error happened. | ||
| message | string | Indicate error details if hit error. Empty if no error happened. | ||
| request_id | string | 07af0e73-f806-4b09-af22-d28a72eae63a | The identifier for an API request for error tracking. | |
| response | object | Detail informations you are querying. | ||
| response.success_list | string[] | [ "sg-11110199-6v99e-mgezdwct5eyya0"] | The list of video_upload_id edit successfully. | |
| response.failure_list | object[] | The list of video_upload_id edit failed. | ||
| response.failure_list.fail_video_upload_id | string | sg-11110199-6v99e-mgezdwct5eyya0 | Failed video_upload_id. | |
| response.failure_list.failed_reason | string | can not edit video info,please retry | Failed reason of the corresponding video_upload_id. |
§5 Common parameters
Common parameters
| Name | Type | Required | Sample | Description |
|---|---|---|---|---|
| partner_id | int | 1 | Partner ID is assigned upon registration is successful. Required for all requests. | |
| timestamp | timestamp | 1610000000 | This is to indicate the timestamp of the request. Required for all requests. Expires in 5 minutes. | |
| access_token | string | c09222e3fc40ffb25fc947f738b1abf1 | The token for API access, using to identify your permission to the api. Valid for multiple use and expires in 4 hours. | |
| user_id | int | 1 | Shopee's unique identifier for a user. | |
| sign | string | e318d3e932719916a9f9ebb57e2011961bd47abfa54a36e040d050d8931596e2 | Signature generated by(depends on different APIs) partner_id, api path, timestamp, access_token, user_id and partner_key via HMAC-SHA256 hashing algorithm. |
§6 Request samples
Request samples
§7 Payload
Payload
{
"video_upload_list": [
{
"video_upload_id": "sg-11110199-6v99e-mgezdwct5eyya0",
"caption": "this is a test video",
"cover_image_url": "https://down-sg.img.susercontent.com/sg-11110199-6v99e-mgezdwct5eyya0_pack_v1_1000001_1",
"item_info": [
{
"item_id": 2,
"custom_item_name": "item display name"
}
],
"allow_info": {
"allow_duet": true,
"allow_stitch": true
},
"scheduled_info": {
"scheduled_post": true,
"scheduled_post_time": 1761734929450
}
}
],
"aigc_label": true
}
§8 Java
Java
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://partner.shopeemobile.com/api/v2/video/edit_video_info?access_token=access_token&partner_id=partner_id&sign=sign×tamp=timestamp&user_id=user_id")
.header("Content-Type","application/json")
.body("{
\"aigc_label\": true,
\"video_upload_list\": [
{
\"allow_info\": {
\"allow_duet\": true,
\"allow_stitch\": true
},
\"caption\": \"this is a test video\",
\"cover_image_url\": \"https://down-sg.img.susercontent.com/sg-11110199-6v99e-mgezdwct5eyya0_pack_v1_1000001_1\",
\"item_info\": [
{
\"custom_item_name\": \"item display name\",
\"item_id\": 2
}
],
\"scheduled_info\": {
\"scheduled_post\": true,
\"scheduled_post_time\": 1761734929450
},
\"video_upload_id\": \"sg-11110199-6v99e-mgezdwct5eyya0\"
}
]
}")
.asString();
§9 PHP
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://partner.shopeemobile.com/api/v2/video/edit_video_info?access_token=access_token&partner_id=partner_id&sign=sign×tamp=timestamp&user_id=user_id',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => '{
"aigc_label": true,
"video_upload_list": [
{
"allow_info": {
"allow_duet": true,
"allow_stitch": true
},
"caption": "this is a test video",
"cover_image_url": "https://down-sg.img.susercontent.com/sg-11110199-6v99e-mgezdwct5eyya0_pack_v1_1000001_1",
"item_info": [
{
"custom_item_name": "item display name",
"item_id": 2
}
],
"scheduled_info": {
"scheduled_post": true,
"scheduled_post_time": 1761734929450
},
"video_upload_id": "sg-11110199-6v99e-mgezdwct5eyya0"
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
§10 cURL
cURL
curl --location --request POST 'https://partner.shopeemobile.com/api/v2/video/edit_video_info?access_token=access_token&partner_id=partner_id&sign=sign×tamp=timestamp&user_id=user_id' \
--header 'Content-Type: application/json' \
--data-raw '{
"aigc_label": true,
"video_upload_list": [
{
"allow_info": {
"allow_duet": true,
"allow_stitch": true
},
"caption": "this is a test video",
"cover_image_url": "https://down-sg.img.susercontent.com/sg-11110199-6v99e-mgezdwct5eyya0_pack_v1_1000001_1",
"item_info": [
{
"custom_item_name": "item display name",
"item_id": 2
}
],
"scheduled_info": {
"scheduled_post": true,
"scheduled_post_time": 1761734929450
},
"video_upload_id": "sg-11110199-6v99e-mgezdwct5eyya0"
}
]
}'
§11 Python
Python
import requests
import json
url = "https://partner.shopeemobile.com/api/v2/video/edit_video_info?access_token=access_token&partner_id=partner_id&sign=sign×tamp=timestamp&user_id=user_id"
payload=json.dumps({
"aigc_label": True,
"video_upload_list": [
{
"allow_info": {
"allow_duet": True,
"allow_stitch": True
},
"caption": "this is a test video",
"cover_image_url": "https://down-sg.img.susercontent.com/sg-11110199-6v99e-mgezdwct5eyya0_pack_v1_1000001_1",
"item_info": [
{
"custom_item_name": "item display name",
"item_id": 2
}
],
"scheduled_info": {
"scheduled_post": True,
"scheduled_post_time": 1761734929450
},
"video_upload_id": "sg-11110199-6v99e-mgezdwct5eyya0"
}
]
})
headers = {
'Content-Type': 'application/json'
}
response = requests.RPCRequest("POST",url,headers=headers, data=payload, allow_redirects=False)
print(response.text)
§12 Response sample
Response sample
§13 JSON
JSON
{
"error": "-",
"message": "-",
"request_id": "07af0e73-f806-4b09-af22-d28a72eae63a",
"response": {
"success_list": [
"sg-11110199-6v99e-mgezdwct5eyya0"
],
"failure_list": [
{
"fail_video_upload_id": "sg-11110199-6v99e-mgezdwct5eyya0",
"failed_reason": "can not edit video info,please retry"
}
]
}
}
§14 Error example
Error example
§15 JSON
JSON
{
"error": "error_param",
"message": "video_upload_list is empty",
"response": null,
"request_id": "cc18a505-a03e-4e83-b519-15c360701a26"
}
§16 Errors
Errors
| Error | Description | Solution |
|---|---|---|
| batch_process_failed | Please check failure_list for detailed reason | |
| error-param | video_upload_id is illegal | |
| error_param | allowInfo is empty | |
| error_param | Invalid video source. Please re-upload the video using v2.media.init_video_upload with correct business & scene. | |
| error_param | caption length is more than 150 | |
| error_param | cover is illegal | |
| error_param | item size can not over 6 | |
| error_param | can not find item info {item_id} | |
| error_param | video_upload_list can not over 5 | |
| error_param | scheduledPostTime must be 15 minutes after the current time and within 30 days of the current time | |
| error_param | can not handle video meta video duration must within {postDuration}s and greater than 3s | |
| error_param | can not find video meta | |
| unauthorized | The user is not authorized and needs to be in toggle |
§17 Common errors
Common errors
| Error | Description | Solution |
|---|---|---|
| error_auth | partner_id is invalid | |
| error_auth | The App is deleted, and you'll be unable to make any API call. | |
| error_auth | App developer’s permissions for authorizations have been restricted. If you’re a seller, contact the developer for more information. If you’re the developer, refer to the Open Platform Console for details. | |
| error_param | There is no partner_id in query. | |
| error_param | Invalid partner_id. | |
| error_param | no timestamp | |
| error_param | Invalid timestamp | |
| error_param | There is no sign in query. | |
| error_sign | Wrong sign. | |
| invalid_partner_id | Invalid partner_id, please have a check. | |
| error_auth | No permission to current api. | |
| error_api_call_restricted | The App permission for api call have been restricted. If you’re a seller, contact the developer for more information. If you’re the developer, refer to the Open Platform Console for details. | |
| api_suspended | The API is offline. Please call v2 API instead. | |
| error_limit | The total API call number made by your APP has reached the daily API call limit, please try again after 00: 00 (UTC+08:00) | |
| error_rate_limit | Too many requests. You have reached the rate limit. Please try again later. | |
| source_ip_undeclared | Request Source IP ({ip}) is undeclared. Please declare all your IP addresses in the Shopee Open Platform Console > App list > IP Address Whitelist | |
| error_param | Permission denied. This API is currently offline or the request path is incorrect. | |
| error_param | Partner_id is invalid, should be an integer between 0 and 4294967295. | |
| error_param | no timestamp. | |
| error_param | Timestamp is invalid, should be an integer between 0 and 4294967295. | |
| error_param | Timestamp is expired. | |
| error_partner_key_expired | Your API partner key has expired, please reset the Live API Partner Key in Console to get a new valid partner key to call open api. | |
| error_api_permission | This app type has no permission to this API. | |
| error_param | There is no access_token in query. | |
| error_auth | Invalid access_token. | |
| user_no_linked | Partner and user has no linked. | |
| user_banned | This user account has been banned. Permissions for user authorization and API calls have been suspended until the user account is restored. | |
| invalid_acceess_token | Invalid access_token, please have a check. | |
| error_param | There is no user_id in query. | |
| error_param | user_id is invalid, should be an integer between 0 and 4294967295. |
§18 Update log
Update log
| Date | Change |
|---|---|
| 2026-09-03 | add request parameter “aigc_label” |
| 2025-09-02 | New API |
