(已废弃)创建智能微电影任务
您可以使用本接口创建智能微电影任务。
请在智能配乐、微电影、一键优化中查看本功能的简要介绍。
生成视频名称: video<timestamp>_smart_video_<index>.mp4。
该接口频控限制为:
| 等级{20%} | 秒级调用限制(QPS){20%} | 分钟级调用限制(QPM){20%} | 天级调用限制(QPD){20%} |
|---|---|---|
| 初级 | 1 | 30 | 5000 |
| 标准级 | 2 | 60 | 10000 |
| 高级 | 3 | 90 | 15000 |
版权声明
受音乐版权限制,使用我们提供的音乐制作的视频仅可在TikTok投放。 您不可下载视频或其中包含的音乐文件,不可在TikTok以外的任何媒介提供、传播、播放视频或其中包含的音乐文件,除非您已向音乐版权方另行获得许可。 因您违反上述规则而引发的投诉、纠纷,由您承担全部法律责任并应赔偿TikTok或TikTok关联公司因此遭受的损失。
v1.2与v1.3版本对比
以下表格概括了 v1.2与v1.3接口的变化。
``xtable
|变化内容{30%}|v1.2{35%}|v1.3{35%}|
|---|---|---|
|接口路径|/v1.2/creative/smart_video/create/|/v1.3/creative/smart_video/create/ |
|请求参数名称|video_list<br>image_list<br>text_list<br>value|videos<br>images<br>texts<br>text|
|请求参数类型|advertiser_id: number |advertiser_id`: string |
## 请求
**地址** https://business-api.tiktok.com/open_api/v1.3/creative/smart_video/create/
**方法** POST
**Header**
```xtable
|字段|类型|描述|
|--- |--- |--- |
|Content-Type {必填}|string|请求信息类型。<br>允许格式:`application/json`。|
|Access-Token {必填}|string|授权访问令牌。可以通过[获取访问令牌](https://ads.tiktok.com/marketing_api/docs?id=1738373164380162)接口获取。|
参数
| 字段 | 类型 | 描述 |
| ------------------------- | -------- | ------------------------------------------------------------ |
| advertiser_id{必填} |string | 广告主ID。 |
| videos{必填} | object[] | 视频列表。长度<=5。 <br>请注意`videos`和`images`二选其一即可,支持您为这两个字段都设值或只设置一个字段的值。 |
#| video_id{必填} | string | 视频ID。 |
#| tag | string | 素材标签。枚举值详见:[附录-枚举值-创意管理-素材标签](https://ads.tiktok.com/marketing_api/docs?id=1737174886619138)。|
| images{必填} | object[] | 图片列表。长度<=10。<br>请注意`vides`和`images`二选其一即可,支持您为这两个字段都设值或只设置一个字段的值。 |
#| image_id{必填} | string | 图片ID。 |
#| tag | string | 素材标签。枚举值详见:[附录-枚举值-创意管理-素材标签](https://ads.tiktok.com/marketing_api/docs?id=1737174886619138)。|
| texts | object[] | 字幕列表。 |
#| text{必填} | string | 字幕。 |
#| tag | string | 素材标签。枚举值详见:[附录-枚举值-创意管理-素材标签](https://ads.tiktok.com/marketing_api/docs?id=1737174886619138)。|
| layout{必填} | string | 横版或竖版。枚举值:`VERTICAL`,`HORIZONTAL`。 |
| style{必填} | string | 背景音乐风格。枚举值:`PEACEFUL`(舒缓平静),`DYNAMIC`(卡点动感),`CUSTOM`(自定义配乐)。 |
| music_id{+条件必填} | string | 音乐ID。当`style`为`CUSTOM`时必填。 |
| duration | number | 生成视频时长。最大长度60秒。 |
| frame | object[] | 关键帧。 |
#| frame_type | string |帧类型。目前仅支持`FINAL_FRAME`(尾帧)。 |
#| material_type | string | 素材类型。枚举值:`VIDEO`,`IMAGE`,`TEMPLATE`。 |
#| video_id{+条件必填} | string | 视频ID。当`material_type`为`VIDEO`时必填。 |
#| image_id{+条件必填} | string | 图片ID。当`material_type`为`IMAGE`时必填。 |
#| template_type{+条件必填} | string | 生成模板。当`material_type`为`TEMPLATE`时必填。枚举值详见:[枚举值-创意管理-关键帧模板类型](https://ads.tiktok.com/marketing_api/docs?id=1737174886619138)。|
#| logo{+条件必填} | string | 品牌logo的ID。当`material_type`为`TEMPLATE`时必填。 |
#| call_to_action{+条件必填} | string | 行动引导文案。当`material_type`为`TEMPLATE`时必填。建议长度不超过20个字符。您可以通过在广告的最后一帧中添加行动引导文案来提高广告的点击率。|
#| slogan{+条件必填} | string | 宣传语。当`material_type`为`TEMPLATE`时必填。建议长度不超过40个字符。 |
#| brand_name{+条件必填} | string | 品牌名称。当`material_type`为`TEMPLATE`时必填。建议长度不超过40个字符。<br><p><span style="color:darkred"><b>注意</b></span>: 若您将 `template_type` 设置为 `end_frame_vertical_3`,`end_frame_vertical_5`,`end_frame_horizontal_3`,或`end_frame_horizontal_5`, `brand_name`将会被忽略,因为这四种模板不支持显示品牌名称。 |
| callback_info | object | 回调信息。 |
#| callback_url{+条件必填} | string | 回调地址。当您设置`callback_info`时必填。 |
#| callback_extra_info | object | 回调附带信息。 |
示例
(code Python python)
# coding=utf-8
import json
import requests
from six import string_types
from six.moves.urllib.parse import urlencode, urlunparse # noqa
ACCESS_TOKEN = "xxx"
PATH = "/open_api/v1.3/creative/smart_video/create/"
def build_url(path, query=""):
# type: (str, str) -> str
"""
Build request URL
:param path: Request path
:param query: Querystring
:return: Request URL
"""
scheme, netloc = "https", "business-api.tiktok.com"
return urlunparse((scheme, netloc, path, "", query, ""))
def post(json_str):
# type: (str) -> dict
"""
Send POST request
:param json_str: Args in JSON format
:return: Response in JSON format
"""
url = build_url(PATH)
args = json.loads(json_str)
headers = {
"Access-Token": ACCESS_TOKEN,
"Content-Type": "application/json",
}
rsp = requests.post(url, headers=headers, json=args)
return rsp.json()
if __name__ == '__main__':
advertiser_id = ADVERTISER_ID
style = STYLE
layout = LAYOUT
video_list = [{"video_id":VIDEO_ID, "tag":VIDEO_TAG}]
videos = json.dumps(video_list)
image_list = [{"image_id": IMAGE_ID}]
images = json.dumps(image_list)
text_list = [{"text": TEXT1, "tag": TEXT_TAG1}, {"text": TEXT2, "tag": TEXT_TAG2}]
texts = json.dumps(text_list)
frame_list = [{"frame_type": "FINAL_FRAME", "material_type": "VIDEO", "video_id": VIDEO_ID}]
frame = json.dumps(frame_list)
callback_info={
"callback_url": "CALLBACK_URL",
"callback_extra_info": {
"info": "EXTRA_INFO",
"subject": "EXTRA_SUBJECT"
}
}
callback_info=json.dumps(callback_info)
# Args in JSON format
my_args = "{\"advertiser_id\": \"%s\", \"style\": \"%s\", \"layout\": \"%s\", \"videos\": %s, \"images\": %s, \"texts\": %s, \"frame\": %s, \"callback_info\":%s}" % (advertiser_id, style, layout, videos, images, texts, frame, callback_info)
print(post(my_args))
(/code)
(code curl http)
curl -H "Access-Token:xxx" -H "Content-Type:application/json" -X POST \
-d '{
"advertiser_id": "ADVERTISER_ID",
"style": "STYLE",
"layout": "LAYOUT",
"videos": [
{
"video_id": "VIDEO_ID",
"tag": "VIDEO_TAG"
}
],
"images": [
{
"image_id": "IMAGE_ID"
}
],
"texts": [
{
"text": "TEXT1",
"tag": "TEXT_TAG1"
},
{
"text": "TEXT2",
"tag":"TEXT_TAG2"
}
],
"frame": [
{
"frame_type": "FINAL_FRAME",
"material_type": "VIDEO",
"video_id": "VIDEO_ID"
}
],
"callback_info": {
"callback_url": "CALLBACK_URL",
"callback_extra_info": {
}
}
}' \
(/code)
返回
|字段|类型|描述|
|-|-|-|
|code |number|返回码,详见[附录-返回码](https://ads.tiktok.com/marketing_api/docs?id=1737172488964097)。|
|message |string|返回信息,详见[附录-返回码](https://ads.tiktok.com/marketing_api/docs?id=1737172488964097)。|
|data|object|返回数据。|
#|task_id |string|任务ID。 |
|request_id|string|请求日志ID。|
示例
S(code Success-Response python)
HTTPS/1.1 200 OK
{
"message": "OK",
"code": 0,
"data": {
"task_id": "1864502164429996038"
},
"request_id": "2020082410541601018904922344E10F07"
}
(/code)