7tez打开下载页后先填这个码,再点「普通下载」
主界面采完一轮的样子:56 条热榜话题逐行列出榜位、历史最高、热度值、浏览量、视频数、讨论数、新/热角标、来源与事件时间,底部黑色日志区实时打出每一条采集结果和「本轮完成:热榜话题 56 条(新增 56),热点视频 10 条,请求 32 次,风控 0 次」
这个工具解决什么问题
抖音的公开热点数据散在两个地方:一份是热榜列表(话题、热度值、浏览量、排名、新/热角标),一份是榜单页右侧跟着滚动的热点视频卡片(标题、作者、时长、点赞、在看)。想整理成一张能排序、能对比昨天的表,摆在面前的路都不好用——手工抄,56 条话题加几十条视频,抄完一个多小时,而且热度值一直在变,抄到第 20 条时前 10 条的数字已经过期了;用第三方数据平台,要注册、要充值,导出的还是它加工过的口径,跟自己看到的榜对不上;自己写爬虫,抖音的页面是前端渲染的,直接抓 HTML 拿不到列表,接口参数和 Cookie 一变就失效,写出来只能撑几天;用现成的下载器,那些工具的目标是把视频文件扒下来,既不解榜单结构也不做历史累积,还容易踩版权线。
- 原来的做法:打开抖音热榜页 → 逐条截图或抄进 Excel → 第二天再抄一遍 → 手工对齐比对哪些是新上榜的;或者买数据平台会员,按它给的口径看趋势
- 用这个工具:解压双击 exe → 点「试用软件」进主界面 → 保持三项采集内容勾选 → 点「开始采集」→ 一两分钟后点「导出 Excel」,得到「抖音热榜 / 热点视频 / 采集批次」三张表
- 省下来的:不用登录抖音账号,不用注册任何平台,不用写一行代码;数据落在自己电脑上的一份
data\douyin_hot.db里,天天采就能天天比——每条话题带「在榜轮次」「历史最高」「首次上榜时间」,新榜、掉榜、热度爬升都是软件自己算好的,不用再靠截图回忆
采集内容与字段清单
界面上「采集内容」三项是可独立勾选的,前两项对应两份数据源,第三项是给视频补互动数据的。下面是每一张表实际存下来的列:
| 数据视图 | 采到的字段 | 说明 |
|---|---|---|
| 抖音热榜(推荐) | 话题、当前榜位、历史最高榜位、热度值、上一轮热度、浏览量、视频数、讨论视频数、新/热/爆角标、来源(主榜等)、事件时间、话题页链接、在榜轮次、首次采集时间、最近采集时间 | 一轮约 50~60 条,就是抖音热榜页面上能看到的全量;同一话题反复采到只更新一行,轮次和最高榜位自动累加 |
| 热点视频 | 标题、作者、时长、点赞、评论、收藏、分享、在看、热点标签、话题标签、话题数、发布时间、视频链接、采集轮次 | 来自热榜页右侧的视频卡片;「评论/收藏/分享」要在勾选「点开视频」后才会从详情页取回,未取时留空而不是写 0 |
| 采集批次 | 批次号、开始时间、结束时间、采集内容、触发方式(手动/定时)、热榜话题数、热点视频数、新增话题、新增视频、风控次数、备注 | 每跑一轮记一行,用来回看「哪一天采过、有没有漏采、有没有被限流」 |
| 热度历史(后台累积) | 话题、热度值、榜位、批次号、采集时间 | 每次采到都追加一条,是「趋势」和「历史最高」这两个数字的来源,不需要手工维护 |
技术实现
Windows 桌面程序,.NET Framework 4.8 + WinForms,界面控件用 AntdUI,内嵌浏览器用 Microsoft Edge WebView2。两条采集链路是分开的,这也是它能在抖音的渲染与风控机制下稳定跑完的原因:
- 热榜走免登录接口,不碰浏览器:直接请求抖音 Web 端公开的热搜列表接口(
https://www.douyin.com/aweme/v1/web/hot/search/list/,带aid=6383等公开参数),拿 JSON 里的word_list,话题、热度值、榜位、角标、事件时间、关联视频数一次到位。这条链路不加载页面、不执行 JS,所以最快也最稳——就算右侧浏览器打不开,热榜这一路照样能采,界面上单独勾「抖音热榜」就能用 - 热点视频走内嵌 WebView2 读渲染结果:热榜页是前端渲染的,源码里没有列表,所以程序在窗口右侧内嵌一个真实浏览器加载
https://www.douyin.com/hot,等 React 把视频卡片渲染出来后,用注入的 JS 按a[href*="/video/"]和视频卡片节点把标题、作者、时长、点赞、在看、热点标签逐条读回来,并顺手把每条视频对应的热榜话题一起带回来。页面状态还会回读一次「是否渲染完成、是否被风控遮挡」,判成「未渲染」时不写入空结果 - SPA 渲染要等,等不到就重试而不是交白卷:内嵌浏览器加载完 HTML 到列表真正出现之间有明显延迟。程序把这件事做成固定策略——列表读取最多重试 10 次(约 10 秒),单条视频详情页重读最多 5 次,每次间隔递增;这些阈值写成常量并在无界面自检里钉死(「渲染等待次数 ≥ 6」「详情重读次数 ≥ 3」),改小了自检直接红。实测点开 20 条视频时详情数据 10/10、20/20 全部取回,不是「采到了但字段是空的」
- 「点开视频」拿的是详情页的互动数:卡片上只有点赞和「xx 万人在看」,评论/收藏/分享/话题标签要点进视频详情页才有。程序按「点开采集条数」(默认 20 条)逐条打开详情页,从页面里的互动区解析数字(含
1.2w、3.5万这类缩写,统一换算成整数),把#话题标签拆成列表与计数,读完返回列表继续下一条。上限填 0 表示不限制 - 风控识别 + 自动降速:抖音对高频请求的反馈是滑块、空白页或接口返回异常。程序把「页面被遮挡」「接口非预期返回」都计入本轮风控次数,一旦识别到就自动把请求间隔往上加并写进日志提示「已自动放慢,建议转人工观察」,状态栏常驻「热榜 56 | 视频 20 | 间隔 1500ms | 风控 0 次」,当前节奏一眼可见。默认基准间隔 1500ms,可在界面上调
- 去重与累积写在 SQL 里,不靠内存:话题以
word建唯一键、视频以aweme_id建唯一键,重复采到走 UPDATE 并累加轮次、取历史最高榜位,新增才 INSERT;同时向热度历史表追加一条快照。所以同一个库采 30 天,得到的是 30 天的曲线,而不是 30 份互相覆盖的快照。关掉程序、换电脑只要带走data\douyin_hot.db,历史就在 - 本地 SQLite 四张表:
word(热榜话题)/word_history(热度快照)/video(热点视频)/batch(采集批次),首次运行自动建表建索引,不需要装数据库、不需要连接字符串配置。库路径默认在程序目录的data\douyin_hot.db,点「选择库文件」可以换到任意位置(比如同步盘或移动硬盘) - Excel 导出不依赖 Office:自己实现的 OOXML 写入器直接产出标准
.xlsx(不用装 Excel、不引 NPOI),一次导出「抖音热榜 / 热点视频 / 采集批次」三个工作表,表头冻结、列宽自适应、数字按数值类型写入(可以直接在 Excel 里排序求和);「导出话题TXT」则给一份纯话题清单,方便直接贴进选题表。实测一轮数据导出 14 KB 的 xlsx,三张表齐全,WPS 与 LibreOffice 打开正常 - 三种数据视图共用一张网格:右上角「数据视图」下拉切「抖音热榜(推荐)/ 热点视频 / 采集批次」,点「刷新榜单」重新读库。网格用框架的
CDataGridView并开 Fill 模式,列宽随窗口拉伸,56 行热榜不需要横向滚动到看不见关键列 - 定时采集:勾「启用定时采集」后按设定间隔(分钟)自动跑一轮;也可以改「每天定点」在固定时刻跑。前提是窗口开着(可以最小化),适合每天上午自动出一版当日热榜快照
- 停止与中断是安全的:采集中点「停止」会在当前条目结束后收尾,已经写库的数据不回滚、不产生半条记录,批次表照常记下这一轮采到了多少
- 发布版经过混淆:主 exe 用 SmartAssembly 做了名称混淆、控制流混淆、字符串加密与程序集合并(依赖已合并进单文件),反编译只能读到不可读字节码;但 WebView2 与 SQLite 属于原生/托管混合组件,
Microsoft.Web.WebView2.Core.dll、Microsoft.Web.WebView2.WinForms.dll、System.Data.SQLite.dll、SQLite.Interop.dll以及runtimes\win-x64\native\WebView2Loader.dll必须外置在 exe 旁边,缺WebView2Loader.dll时点「开始采集」会直接抛「无法加载 DLL」——这也是发布包里为什么是 10 个文件而不是 1 个
操作教程
- 第 1 步:解压运行,进入试用:点页面上的「免费下载」按钮,在下载页填提取码
7tez、选「普通下载」拿到压缩包;把它解压到任意有写入权限的文件夹(不要直接只在压缩软件里双击打开),双击douyin.hot.collector.exe。弹出「软件授权」窗口后点右下角「试用软件」 预期:窗口标题变成「抖音热门视频采集工具v1.0.0.0 - 百业软件(http://www.biyeyuanma.cn)」,界面下方日志区打出启动说明 - 第 2 步:确认采集内容与库路径:左上「采集内容」三项默认全勾——
抖音热榜(直连接口,约 50 条带热度值)、热点视频(读右侧浏览器里的抖音热点页)、点开视频(补点赞/评论/收藏/分享与话题标签)。只要榜单数据的话把后两项取消即可。「本地 SQLite 库」默认是程序目录下的data\douyin_hot.db,想放到别处点「选择库文件」 预期:参数区显示「视频采集上限 0(不限制)、点开采集条数 20、请求间隔基准 1500ms、页面滚动轮数 1」 - 第 3 步(可选,首次建议做一次):点「浏览器窗口」看热点页能不能正常打开:右侧内嵌浏览器会加载
https://www.douyin.com/hot。抖音在这个页面上会弹「登录后免费畅享高清视频」的浮层,这不影响采集,关掉浮层继续即可 预期:能看到热榜页右侧的视频卡片列表 - 第 4 步:点「开始采集」:日志区开始逐条滚动,状态栏的「热榜 / 视频 / 风控」计数实时更新。跑完会打一行汇总 预期:日志出现「本轮完成:热榜话题 56 条(新增 56),热点视频 10 条(新增 10),点开取到详情 10 条,请求 32 次,风控 0 次」,一轮约 1~2 分钟
- 第 5 步:切换视图核对数据:右上角「数据视图」选「热点视频」或「采集批次」,点「刷新榜单」重新读库 预期:视频视图能看到标题、作者、时长、点赞、评论、收藏、分享、在看、热点标签;批次视图能看到这一轮的开始/结束时间、触发方式、新增条数与风控次数
- 第 6 步:导出:点「导出 Excel」另存为
.xlsx(三个工作表),或点「导出话题TXT」拿一份纯话题清单 预期:Excel 里三张表分别是抖音热榜、热点视频、采集批次,数字列可直接排序求和 - 第 7 步(可选):让它每天自动跑:勾「启用定时采集」填间隔分钟,或改勾「每天定点」填时:分。窗口保持开着(可最小化)即可按计划自动累积 预期:到点自动跑一轮,批次表多一行,触发方式记为「定时」

首次启动的「软件授权」窗口:中间是本机机器码(点一下全选复制),右下是「试用软件」。试用计时完全在本机完成,不需要联网注册账号,也不会把机器码传到任何地方

「热点视频」视图:10 条视频的点赞/评论/收藏/分享全部从详情页取回(如第 1 条 15000 赞 / 207 评论 / 2129 收藏 / 6378 分享 / 201.1 万人在看),最后两列是该视频挂的热点标签与话题

「采集批次」视图:这一轮 13:59 开始、14:00 结束,热榜 56 / 视频 10、新增 56 / 10,风控次数 0。连续多天采,这张表就是「有没有漏采」的证据
同类数据可以搭配着看:想要关键词的搜索热度曲线,用同站的 抖音指数(巨量算数)批量采集工具;想采小红书侧的选题,用 小红书采集工具;想自己改这套 WebView2 采集写法,看 使用WebView2与C# WinForm抓取动态网页:从入门到实战。
常见问题
7tez,不区分大小写。填码之后请选「普通下载」,不需要登录、不需要装客户端、不需要充值。data\douyin_hot.db(四张表:热榜话题、热度历史、热点视频、采集批次)。换电脑把程序解压好、把这个 .db 放到同样的位置,或者在界面里「选择库文件」指过去即可,历史累积、在榜轮次、历史最高榜位全都跟着走。程序不会把采集数据上传到任何服务器。.xlsx,跟本机有没有装 Excel 无关;Excel、WPS、LibreOffice 都能打开,数字列是数值类型,可以直接排序、筛选、求和。.NET Framework 4.8(Win10 1803 及以后、Win11 一般自带或随更新装好)和 WebView2 Runtime(装了新版 Edge 的系统通常已经具备)。强烈建议在 Windows 10/11 64 位上使用;Win7 已停止支持,装这两个运行库比较折腾,不做适配承诺。只想要热榜数据时,可以只勾「抖音热榜」——那条链路不加载内嵌浏览器。runtimes\win-x64\native\WebView2Loader.dll(32 位系统对应 win-x86)。请重新完整解压压缩包、把整个文件夹加入杀毒软件白名单后再运行,不要只把 exe 单独拷出来运行。软件截图

「抖音热榜(推荐)」视图:序号、话题、榜位、历史最高、热度、趋势、浏览量、视频数、讨论数、角标、来源、事件时间、在榜轮次、首次上榜时间,14 列一屏可读

「热点视频」视图:标题、作者、时长、点赞、评论、收藏、分享、在看、热点标签、话题数,互动数据来自逐条点开的详情页

「采集批次」视图:每轮的开始/结束时间、采集内容、触发方式、条数、新增条数与风控次数,是判断「今天采没采、有没有被限流」的流水账

「软件授权」窗口:机器码在本机生成,点「试用软件」即可进入,全程不需要联网注册
技术实现与后续维护
程序集 douyin.hot.collector,.NET Framework 4.8 WinForms,跑在自研的 6.new.framework 之上(my.common 通用层、my.antd.ui 界面层、my.webview 的 WebView2 封装、my.auth 的离线授权)。发布包 10 个文件:混淆后的主 exe、cfg.ini、WebView2 的两个托管 dll、SQLite 的托管与原生 dll、runtimes 下两个位数的 WebView2Loader.dll,以及 README.md 与 使用说明.txt。
出厂前跑了两层验收。一层是无界面自检:把接口地址与参数、JSON 解析、页面状态判定、JS 注入脚本、数字缩写换算(1.2w / 3.5万)、话题标签拆分、去重与轮次累加、SQL 建表与列、Excel 三表结构、TXT 编码、风控计数、渲染重试阈值等逐项断言,共 201 条断言全部通过;另一层是模拟真实点击的界面回归:从授权窗口点「试用软件」进主界面 → 开始采集 → 等本轮完成 → 切三种数据视图 → 导出 Excel 与 TXT 并回读校验工作表名与行数,在混淆后的发布版上、在只放那 10 个文件的干净目录里重跑通过,实测一轮热榜 56 条、热点视频 10 条、详情 10/10、请求 32 次、风控 0 次,导出 xlsx 三张表齐全。
后续可扩展的方向:加一个「按话题导出趋势图」的折线页(数据已经在 word_history 里,只差画图)、把每条热榜话题对应的前 N 条视频一并采回(现在只采卡片可见的那些)、支持同时监控多个榜单口径(主榜 / 娱乐 / 社会)、把结果直接推送到企业微信或写进飞书表格、以及做一个不带界面、跑完就退出的计划任务版本。这些都落在现有的四张表和两条采集链路上,不需要改界面结构。
可以定制(二次开发)
这套东西按「一个痛点一个小工具」做,实际使用里常见的改法我们都能做:比如只保留你自己所在行业的话题(关键词白名单过滤)、把每天的结果自动写成一张固定表头的日报、采完自动推送到群里或写进你的飞书/Notion 选题库、把「点开采集条数」按你的节奏做成阶梯式限速、加一个只跑的命令行版本挂到 Windows 计划任务上、或者把数据源换成快手/B站/微博热榜做一份统一的「多平台今日热点」表。需要改动的话通过站内「联系我们」或在本文下方留言说明你的场景(想采什么、多久采一次、最后要什么格式)。定制合作会连同可编译的完整工程一起交付,方便你后续自己维护。
使用说明与免责声明
合规提示(务必先读):本工具只读取抖音无需登录即可公开访问的热点榜单与视频公开信息(标题、作者昵称、时长、点赞/评论/收藏/分享等公开统计数字),不下载任何视频文件、不采集任何用户隐私数据、不绕过登录验证与验证码、不破解接口签名。请把它用于个人学习、选题研究与内容趋势分析,遵守《抖音用户服务协议》与相关法律法规:不要高频请求(保持默认间隔,一天几轮足够),不要把采集结果用于对外售卖、批量搬运、刷量、营销骚扰或任何侵犯他人著作权与肖像权、名誉权的用途;公开发布引用他人视频时请标注来源与作者。数据仅存于你本机,作者不接触、不留存、不外传任何采集结果。因使用本工具产生的账号风险、接口变更、平台处罚与法律后果,由使用者自行承担。本工具按「现状」免费提供,不对采集结果的完整性、准确性与可用性作保证——抖音页面结构或接口一旦调整,采集结果可能不完整,此时请停止使用并等待更新。
7tez打开下载页后先填这个码,再点「普通下载」
