前提知识
抖音的每一条作品都有一个独一的aweme_id,如https://www.douyin.com/video/7505653022479977779中7505653022479977779就是作品的aweme_id。
子工作流
douyin_video_copywriter
输入
{
"aweme_id": "7505653022479977779"
}
输出
{
"author": "Milo智能助手",
"author_uid": "96587446100",
"collects": 0,
"comments": 2,
"copywriter": "内心强大的父母不是永远正确的完美家长,而是能在育儿祈福中保持情绪稳定的人。他们不会因孩子成绩波动就崩溃指责,也不会因自己偶尔的急躁而过度自责。接纳不完美是他们的底色,更重要的是他们相信孩子有自我成长的生命力,遇到问题时不替孩子解决所有麻烦,而蹲下来问你想怎么试试用信任拖住孩子的世错空间。这种强大是给孩子安全感的底气,也是让自己松弛养育的智慧。",
"douyin_video_download_url": "https://v3-web.douyinvod.com/006cae040235eb9f9a94c9d23db70a3b/68529959/video/tos/cn/tos-cn-ve-15/ooI2pQeB9Cu4kA7Z0fEAcXQBAcM5BUMLh8fjIE/?a=6383&ch=26&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=205&bt=205&cs=0&ds=3&ft=LjhJEL998xl8uEePQ0P5NdvaUFiXIVwlRVJEH7PKIbPD-Ipz&mime_type=video_mp4&qs=0&rc=N2VoOGlkNTlmODNmZTw8N0BpajN5NXg5cjdxMzMzNGkzM0A2NTYyYTViX2ExXzFhLi9gYSNzcm1mMmRjLWhhLS1kLS9zcw%3D%3D&btag=c0000e00018000&cquery=100w_100B_100H_100K_100o&dy_q=1750232841&feature_id=fea919893f650a8c49286568590446ef&l=202506181547206F65F29D290E0E557C6D",
"douyin_video_url": "https://www.iesdouyin.com/share/video/7505653022479977779/?region=CN&mid=7505653905347758886&u_code=-1&did=MS4wLjABAAAAMU9AeohZhu9FfysqNKL3VqdATW2zRXl87xAIZSo3AcETn_YpOX2UhNtcua1gEjjk&iid=MS4wLjABAAAANwkJuWIRFOzg5uCpDRpMj4OX-QryoDgn-yYlXQnRwQQ&with_sec_did=1&video_share_track_ver=&titleType=title&share_sign=.PvTpMri_gupV6A9nx4nfGiq5WdgKdl.NQzj3l_odRE-&share_version=290100&ts=1750232841&from_aid=6383&from_ssr=1",
"duration": 32043,
"forwards": 0,
"likes": 8,
"title": "什么是内心强大的父母? #心理学 #焦虑 #亲子关系 #独立思考"
}
阿里百炼API密钥,获取地址:https://bailian.console.aliyun.com/?tab=model#/api-key
主工作流概括:
输入抖音作品链接
使用HTTP根据该作品作者的uid,即sec_uid
通过抖音数据获取-get_all_videos插件,获取抖音作者首页40条作品数据。
使用批处理将获取到的40条作品数据中的aweme_id收集并且制作成数组。
创建飞书多维表格。
在循环体中,调用子工作流douyin_video_copywriter,使用前序工作流中获取到的aweme_id,输出抖音作品具体信息,并且写入到飞书表格。
结束节点输出飞书表格的链接。
输入抖音作品链接
节点:输入
变量名:video_url
类型:string
使用HTTP根据该作品作者的uid,即sec_uid
节点:HTTP 请求
API模式:GET
引入变量:为开始节点的video_url,即{{video_url}}
请求头:变量名:User-Agent,变量值:Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X)
节点:代码,重命名为【代码-sec_uid输出】
输入:
变量名:input,
变量值:引用HTTP请求的body
代码:
async function main({ params }: Args): Promise<{ output: string | null }> {
const input = params.input;
const match = input.match(/"sec_uid":"([^"]+)"/);
return { output: match ? match[1] : null };
}
输出:
变量名:output
变量类型:string
通过抖音数据获取-get_all_videos插件,获取抖音作者首页40条作品数据。
节点:抖音数据获取-get_all_videos
输入:
sec_user_id:引用【代码-sec_uid输出】的output
max_page:1
topn:留空
使用批处理将获取到的40条作品数据中的aweme_id收集并且制作成数组。
节点:批处理
输入:
变量名:input
变量值:get_all_videos-data
输出:
变量名:output
变量值:文本处理-output
批处理体:
节点:文本处理
输入:string
变量值:批处理-item(in input)-aweme_id
字符串拼接:{{String1}}
创建飞书多维表格
节点:时间工具-get_current_time,重命名为【报时员】
节点:文本处理,重命名为【文件名生成员】
输入:
string1:报时员-data-time
string2:get_all_videos-data-author
字符串拼接:【{{String2}}】抖音文案获取{{String1}}
节点:飞书多维表格-create_base
输入:
name:文件名生成员-output
节点:代码,重命名为【代码-抖音作品数据表头生成】
输入:空
代码:
async function main({ params }: Args): Promise<Output> {
// 构建输出对象
const ret = {
output: [
{
"field_name": "标题",
"type": 1
},
{
"field_name": "文案",
"type": 1
},
{
"field_name": "点赞数",
"type": 2
},
{
"field_name": "转发数",
"type": 2
},
{
"field_name": "收藏数",
"type": 2
},
{
"field_name": "评论数",
"type": 2
},
{
"field_name": "作者",
"type": 1
},
{
"field_name": "作品时长",
"type": 2
},
{
"field_name": "作品链接",
"type": 1
},
{
"field_name": "作品下载链接",
"type": 1
},
],
};
return ret;
}
输出:
变量名:output
变量类型:array<object>
节点:飞书多维表格-create_table
输入:
app_token:create_base-data-app-app_token
name:数据表1
default_view_name:留空
fields:代码-抖音作品数据表头生成-output
节点:代码,重命名为【代码-输出默认table_ids】
输入:
变量名:input
变量值:create_base-data-app-default_table_id
代码:
async function main({ params }: Args): Promise<Output> {
// 构建输出对象
const ret = {
output: [params.input],
};
return ret;
}
输出:
变量名:output
变量类型:array<string>
节点:飞书多维表格-delete_tables
输入:
变量名:
app_token
变量值:create_base-data-app-app_token
变量名:
table_ids
变量值:【代码-输出默认table_ids】-output
这一步最终有用的数据为:
create_base-app-data-app-app_token
create_base-app-data-table_id
create_base-app-data-url
在循环体中,调用子工作流douyin_video_copywriter,使用前序工作流中获取到的aweme_id,输出抖音作品具体信息,并且写入到飞书表格。
节点:循环,重命名为【抖音文案写入文档循环】
循环类型:使用数组循环
循环数组:
变量名:input
变量值:批处理-output
输出:add_records-msg
循环体:
引入子工作流【douyin_video_copywriter】
输入:
变量值:【抖音文案写入文档循环】-item(in input)
节点:代码,重命名为【代码-构建抖音作品数据】
输入:
copywriter
likes
title
author
forwards
collects
comments
duration
douyin_video_url
video_download_url
代码:
async function main({ params }: Args): Promise<Output> {
// 构建输出对象
const ret = {
output: [
{
"fields": {
"标题": params.title,
"文案": params.copywriter,
"点赞数": params.likes,
"转发数": params.forwards,
"收藏数": params.collects,
"评论数": params.comments,
"作者": params.author,
"作品时长": params.d uration,
"作品链接": params.douyin_video_url,
"作品下载链接": params.douyin_video_download_url
}
},
],
};
return ret;
}
输出:
变量名:output
变量类型:array<object>
节点:飞书多维表格-add_records
输入:
变量名:变量值
app_token:
records:【代码-构建抖音作品数据】-output
table_id:
结束节点输出飞书表格的链接。
输出:create_base-url
评论