问答

怎么监控抖音上的品牌提及,每天拿到新发布的视频?

简短回答

每天用 okdata 按 sort=latest 搜一次每个关键词,翻到比上次运行更早的视频就停。一个关键词通常一到两页,每页 $0.02,10 个关键词每天各 2 页,一个月共 $12.00;之后想刷新某条新视频的数据,每次 $0.002。

品牌团队希望每天早上拿到一份报告,列出所有新发布的、提到品牌名、主打产品或活动话题的抖音视频,正在起量的排在最前,这样就能在问题扩散之前去评论、联系博主或者上报。抖音搜索本身有发布时间筛选,可用它的工具常常返回远超所选时间范围的结果;综合排序又会把旧的爆款和新上传的视频混在一起。每天按最新排序搜一次,在上次运行的时间点截断,得到的就是这份清单。

做法

用抖音视频搜索,参数 sort=latest:

  1. 每个关键词每天跑一次(新品上市或出现危机时每小时一次)。
  2. 只保留 published_at 晚于上次运行时间的视频,已经存过的 ID 跳过。
  3. 某页出现更早的视频就停止翻页。
  4. 按点赞、评论、分享给新视频排序,再把清单发出去。

不需要依赖日期参数:按最新排序、按时间截断,结果是精确的。

费用

方案 每天调用 每天 30 天
1 个关键词,通常 1 页 1 $0.02 $0.60
10 个关键词,各 2 页 20 $0.40 $12.00
另外每天给 3 条热门视频各取 2 页评论 6 $0.012 $0.36

想跟踪某条视频之后几天的走势,用视频详情刷新,每次 $0.002,比重新搜索便宜得多。

脚本

import os, requests, datetime as dt

URL = "https://api.okdata.online/v1/douyin/videos/search"
HEAD = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
since = (dt.datetime.now(dt.timezone.utc) - dt.timedelta(days=1)).strftime("%Y-%m-%dT%H:%M:%S")
params, fresh = {"query": "某品牌 新品", "sort": "latest"}, []

for _ in range(3):  # 翻页上限
    body = requests.get(URL, headers=HEAD, params=params, timeout=60).json()
    items = body["data"]["items"]
    fresh += [v for v in items if v["published_at"] >= since]
    if not body["page"]["has_more"] or (items and items[-1]["published_at"] < since):
        break
    params["cursor"] = body["page"]["next_cursor"]
fresh.sort(key=lambda v: v["metrics"]["likes"] or 0, reverse=True)

会遇到的情况

  • 搜索是模糊匹配。品牌名太短会搜到不相关的视频,加一个产品词,或者在代码里按文案再过滤一遍。
  • 播放量不公开,用点赞、评论和分享排序。
  • 搜索结果里没有粉丝数。想标出大博主,用抖音账号信息查一下作者。
  • 一页里没有新视频,也照样算一次调用。频率要和关键词的热度匹配。

其他选择

巨量算数能看一个关键词的搜索热度随时间的变化,和监测搭配着用很好,只是不列出具体视频。舆情系统也覆盖抖音,带看板和预警,适合不想写代码的团队。抖音、小红书、微博一起监测的做法,见口碑监测方案。

更新于