前提知识

抖音的每一条作品都有一个独一的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

主工作流概括:

  1. 输入抖音作品链接

  2. 使用HTTP根据该作品作者的uid,即sec_uid

  3. 通过抖音数据获取-get_all_videos插件,获取抖音作者首页40条作品数据。

  4. 使用批处理将获取到的40条作品数据中的aweme_id收集并且制作成数组。

  5. 创建飞书多维表格。

  6. 在循环体中,调用子工作流douyin_video_copywriter,使用前序工作流中获取到的aweme_id,输出抖音作品具体信息,并且写入到飞书表格。

  7. 结束节点输出飞书表格的链接。

输入抖音作品链接

节点:输入

变量名: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