问答

怎么每天跟踪竞品的抖音账号?

简短回答

每天从 okdata 取一次每个竞品的作品列表第一页和账号信息:没见过的视频 ID 就是新发布的,同一页还会刷新最近 20 条视频的点赞和评论。每个账号每天 $0.004,10 个竞品跑 30 天共 $1.20。

市场负责人希望每周一早上,就十个竞品品牌的抖音账号回答三个问题:他们发了什么,哪条爆了,粉丝涨得是不是比我们快?手动看十个主页,会漏掉发了又删的视频,也拿不到可以逐周对比的数字。每天存一次快照,三个问题都能回答。每天取一次每个竞品的最新作品和账号信息,就足够攒出这份快照。

每天的流程

  1. 对每个竞品调账号作品列表,只取第一页(id 用对方的 sec_uid)。返回最新 20 条视频,带点赞、评论、分享和收藏。
  2. 之前没存过的视频 ID 就是新发布的,记下第一次看到它的时间。
  3. 已经存过的视频,同一页给出了今天的数字。每条视频每天存一行,第一周的增长曲线就自然有了。
  4. 每天调一次账号信息,记录粉丝数、获赞总数和作品数。

如果某个竞品一天发的视频超过 20 条,只给它多取一页,其他账号不需要。

费用

方案 每天调用 每天 30 天
1 个账号 2 {{cost:douyin.users.get1+douyin.users.videos.list1}} {{cost:douyin.users.get30+douyin.users.videos.list30}}
10 个账号 20 {{cost:douyin.users.get10+douyin.users.videos.list10}} {{cost:douyin.users.get300+douyin.users.videos.list300}}
另外给每条爆款取 2 页评论(假设每周 3 条) — — $0.048

脚本

import os, json, requests, datetime as dt

API, HEAD = "https://api.okdata.online", {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
rivals = {"BrandA": "MS4wLjABAAAA...", "BrandB": "MS4wLjABAAAA..."}
today = dt.date.today().isoformat()

with open("douyin_rivals.jsonl", "a", encoding="utf-8") as out:
    for name, sec_uid in rivals.items():
        prof = requests.get(API + "/v1/douyin/users/get", headers=HEAD, params={"id": sec_uid}, timeout=60).json()["data"]["item"]
        vids = requests.get(API + "/v1/douyin/users/videos/list", headers=HEAD, params={"id": sec_uid}, timeout=60).json()["data"]["items"]
        out.write(json.dumps({"date": today, "brand": name, "followers": prof["followers"],
                              "videos": [{"id": v["id"], "at": v["published_at"], **v["metrics"]} for v in vids]}, ensure_ascii=False) + "\n")

把 JSONL 导进表格或 notebook,按日期做差就行。

要记住的几点

  • 没有播放量:抖音不公开别的账号视频的播放数。用点赞、评论、分享和收藏来比。
  • 两天之间从列表里消失的视频,是被删了或设成私密了。你的快照就是仅存的记录。
  • 置顶视频可能一直排在最前面;判断新视频看 published_at,别看位置。
  • 粉丝历史只能从你开始记录那天算起。

其他选择

付费的抖音数据分析平台能用看板跟踪竞品账号,历史数据也比你自己记录的久,适合想要现成视图的团队。只盯两三个账号的话,每周手动看一次也行。覆盖抖音、小红书等平台的完整做法,见竞品监测方案。

更新于