DouyinDataReview | 抖音数据本地回顾工具:抖音观看历史、喜欢、收藏导出,抖音聊天记录备份与实时接收,生成抖音年度报告;续火花、视频下载,Windows / macOS 桌面版 | Export Douyin watch history, likes, favorites and chats locally, with a year-in-review (Douyin Wrapped)
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
DouyinDataReview | 抖音内容数据工作台 把抖音这一年,留在自己的电脑上 一个 本地优先 的抖音数据回顾工具:把抖音观看历史、喜欢、收藏和聊天记录导出到本机离线查看, 生成可交互的持续报告和抖音年度报告;也能实时接收聊天、续火花、下载视频,有 Windows / macOS 桌面安装包。 不接外部 AI:标题、作者、封面、Cookie 和报告都不会发送到任何外部分析服务。 问题反馈与交流请联系 QQ 940537208,或加入 QQ 群 DDDouyin(群号 1124211302),见 交流与反馈 。 海报风格的年度回顾,从封面一路滚到落款。视频和截图都是合成示例数据;这是可切换的其中一种视觉风格。 先看什么? 想安装,直接打开最新 Release;想了解实现,查看面向开发者;想比较另一种视觉风格,继续看下面的年度回顾。 本机需要已安装 Chrome、Edge、Brave 或 Chromium 中的任意一个(Windows 自带的 Edge 即可;macOS 上也能自动识别 Comet)。工具只读取你本人登录账号在网页端当前可见的记录;增量读取走的是抖音未公开承诺的私有接口,可能失效或触发账号风控,只用于本机个人账号。查看完整 README ↗
DouyinDataReview 是一款免费开源的抖音数据采集、导出与分析桌面应用。 它通过本人登录账号的会话读取抖音观看历史、喜欢、收藏和好友聊天记录,在本机保存为 JSON,并生成持续报告与抖音年度报告(Douyin Wrapped)。工作台还提供视频下载、实时聊天、内容搜索、创作者中心、热点榜、直播观看和抖音推荐流过滤。AI 视频工作台已经拆成独立应用拆片工坊(ReelLab),内容库和探索页里可以一键送过去。
适合备份个人抖音记录、管理收藏内容、查看创作者数据,以及制作自己的年度回顾。项目面向抖音(Douyin,中国版),不支持国际版 TikTok;提供 Windows x64 和 macOS Apple Silicon 安装包。它是独立开发的非官方工具,与抖音、字节跳动及其关联主体不存在隶属、授权、合作或认可关系。
| 先了解什么 | 简要说明 |
|---|---|
| 如何导出数据 | 首屏扫码并确认读取权限,在「设置 → 数据」勾选导出 JSON;聊天默认不勾选,备份不含群聊正文 |
| 是否能取回全部历史 | 只能读取本人账号当前可访问的接口记录;不保证完整历史,也不会补造报告中的缺失数据 |
| 是否必须用 AI | 不需要。本地统计与年度报告都在本机计算;AI 解析和剪辑已拆到独立应用拆片工坊(ReelLab) |
| 是否能离线导入 | 支持本应用备份与抖音官方 JSON / ZIP 档案;官方档案导入关闭后需重新选择文件 |
数据导出与年度报告使用指南提供完整步骤和数据覆盖范围;供检索工具读取的项目事实与文档索引与下载页问答同步维护。
阅读导航: 主要功能 · 实现方式 · 快速开始 · 本地数据与接口 · 常见问题 · 面向开发者
[!NOTE] 桌面版打开就在首屏扫抖音的登录二维码,不用打开浏览器调试、也不用手动连接采集器;也可以从 Chrome 144+、提供远程调试开关的 Edge 或 macOS Comet 导入登录凭据。导入成功后自动断开;凭据失效后重新扫码或连接并导入。登录和导入凭据都不用装扩展;Windows 和 macOS 上也可以直接读取本机抖音电脑客户端里已登录的账号。工具读取本人账号在平台接口当前可访问的记录,不能保证取回全部历史数据;采集使用抖音未公开承诺的私有接口,可能失效或触发账号风控。
| 功能 | 可以做什么 | 使用条件与边界 |
|---|---|---|
| 抖音数据采集与导出 | 完整或增量读取观看历史、喜欢和收藏,保存好友聊天记录,导出 JSON;支持导入本应用备份和抖音官方个人信息下载的 JSON / ZIP | 在线采集需要导入本人登录凭据;官方档案可离线导入;群聊正文不写入备份 |
| 多账号与后台补读 | 各账号分别保存登录会话和个人记录;读取进行中新记录边读边出,报告等读完再更新;前台自动补读,桌面版关闭窗口后留在托盘或菜单栏,每 3 小时补读一次,可选开机后台运行 | 凭据需保持有效;在设置中控制自动补读 |
| 内容库与视频下载 | 观看历史、直播、喜欢、收藏和推荐流挡掉的视频收在一页,用页签切换;按标题、作者、话题、音乐搜索本地记录;应用内播放、读评论、发评论和转发;单条下载或多选打包 ZIP,图文作品下载全部图片 | 在线播放、评论和下载需要网络及有效会话;发评论要先在「设置 → 隐私」打开「允许在抖音上操作」;观看过的直播单独展示 |
| 实时聊天与续火花 | 接收新消息,回复好友与群聊,查看官方火花天数;给勾选对象一键发送续火花消息 | 续火花一次最多发 10 位;发送由用户主动触发;发送成功不代表火花天数增加,以抖音官方状态为准 |
| 创作者中心 | 查看本人账号的数据总览、作品数据、粉丝数据与画像,以及作品流量、观众和评论分析 | 读取抖音创作者中心接口,按当前账号权限返回数据;只读 |
| 内容探索与抖音指数 | 搜索用户和作品,点赞、收藏、关注、评论;下载用户主页作品;查看实时热点、飙升热点,以及达人指标、逐日趋势、近 30 天作品和粉丝画像 | 复用当前账号会话;点赞、收藏、关注、评论要先在「设置 → 隐私」打开「允许在抖音上操作」;达人指标与画像来自官方接口,显示范围受接口权限影响 |
| 直播观看与弹幕 | 查看正在直播的关注列表,在应用内观看直播;调整弹幕透明度、字号、速度、区域和屏蔽词 | 只观看和接收,不发弹幕、不送礼物、不点赞 |
| 推荐流过滤 | 在自己的 Chrome、Edge 里刷抖音网页时,按词条(文案、作者、话题、配乐、正则)过滤推荐:只记录、隐藏,或隐藏后替你点「不感兴趣」;挡掉的视频进内容库,能播放、能下载 | 在「设置 → 推荐流」把扩展图标拖进浏览器扩展页装一次,需打开扩展页的开发者模式;应用没开时扩展照常过滤;打开页面时的第一屏拦不到;点「不感兴趣」每分钟最多 6 条 |
| 持续报告与抖音年度报告 | 比较最近 30 天与上一时段,样本不足时回退到 90 天;年度回顾提供内容年志、档案馆、海报,可导出独立 HTML 和 1080 × 1440 PNG 分享图 | 基于本机已保存的记录生成;展示数据覆盖情况,不补造缺失记录 |
AI 视频工作台已经拆成独立应用拆片工坊(ReelLab),内容库/探索页里可以一键送过去:点视频上的「送去」按钮,视频下好后直接进拆片工坊的素材库(需要桌面版,图文作品送不了)。
界面默认使用白底细线的极简风格。「设置」集中管理界面风格、自动补读、隐私模式、账号、推荐流过滤、数据导出与清除和应用更新。
DouyinDataReview 由 React / React Native / Expo 工作台、Node.js 本地采集器和 Electron 桌面壳组成。桌面版在本机启动采集器与静态页面服务;从源码运行时,也可以在浏览器中打开同一套工作台。
desktop/inAppBrowser.mjs,独立会话,只通过窗口自己的调试通道读取,不开调试端口),把登录框的二维码搬到采集器页首屏给本人扫;也可以在 Chrome、Edge、macOS Comet(Playwright 的 CDP 连接)里登录。采集器核对账号、本人确认后导出抖音 Cookie、请求参数和签名凭据,按账号保存,然后断开。records.json。观看事件保留重复观看的信息;喜欢和收藏按作品身份处理。记录文件与登录凭据分别保存。导入凭据时分别勾选「读取视频」和「读取聊天」,至少选择一项。勾选视频后自动读取观看历史、喜欢和收藏(新账号整份读取,已读完过的账号重新导入只补新增),不受「自动补读新记录」开关影响;勾选聊天后自动整理聊天历史并开始接收。未开启的类型不能继续联网读取,已有本地数据仍可查看和导出。选择按账号保存,重启和切换账号后继续生效,重新导入凭据可调整;旧版导入的账号保持原有两项能力。重启后会复用本机缓存并核对平台返回的账号,凭据缺失或失效时由本人重新登录、验证并导入。
| 模块 | 实现方式 | 主要源码 |
|---|---|---|
| 工作台与桌面运行 | React 组件展示数据;Expo 提供 Web 构建;Electron 管理窗口、托盘、后台补读和应用更新 | 工作台组件、桌面入口 |
| 浏览器凭据与请求会话 | Playwright 连接已授权的浏览器 CDP;导入后使用独立 HTTP 请求会话,不要求浏览器持续运行 | 浏览器连接、采集流程、HTTP 客户端 |
| 记录采集与存储 | 签名请求与游标分页,归一化字段、合并记录,按账号写入 JSON | 分页与签名、归一化、记录存储、账号管理 |
| 搜索与互动 | HTTP 查询用户、作品和评论;用户触发点赞、收藏、关注、评论等写入,消息和分享通过 IM 接口发送 | 内容探索、互动请求 |
| 聊天与直播 | HTTP 获取历史与房间信息;ws 接收 WebSocket 推送,解析二进制协议;直播弹幕仅在内存保留最近 300 条 | 聊天客户端、、 |
个人记录来自本人账号可访问的抖音接口,或本人导入的官方档案;创作者指标、达人指标和火花状态来自对应平台接口。报告只能反映已采集的数据:缺失日期、缺失字段和样本不足会影响统计,应用不会把采集时间当成真实观看时间。
在「设置」的「界面风格」里挑一种,再点「打开报告」。风格同时决定采集器页和工作台的样子;默认的极简风格只管这两页,没有单独的报告页,打开报告时用设置里选的一套。
https://github.com/user-attachments/assets/f4dd2420-121d-49b7-ba37-c632c03f10ec
报告只用记录里明确带着的作者、话题、音乐、时长和互动数,不接外部 AI 推测兴趣,也不做心理诊断。视频的「词条」只取显式话题标签;聊天高频词用浏览器内置的
Intl.Segmenter分词,先剔除平台模板消息,群聊正文不参与。
连接与采集页点「连接采集器」会自动取配对码;内容库的卡片可以下载视频、在应用内播放;聊天页的新消息实时进来,列表头的火苗按钮打开续火花看板,群聊打开时从抖音接口现读消息;创作者中心里能看数据总览、作品数据、粉丝数据和粉丝画像,字段和抖音创作者中心网页一致。
| 平台 | 设备 / 架构 | 安装包 |
|---|---|---|
| Windows | x64 | DouyinDataReview-Setup-<version>.exe(NSIS 安装器) |
| macOS | Apple Silicon(arm64) | DouyinDataReview-<version>-arm64.dmg |
两个安装包都没有开发者签名,首次打开的处理方式见下面「快速开始」。手机端通过同一局域网连接电脑上的采集器使用,见面向开发者末尾的手机连接小节。
打开最新 Release,按上表下载对应安装包。
macOS 首次打开前需在终端执行一次 xattr -cr "/Applications/DouyinDataReview.app",否则会提示应用已损坏;Windows 可能出现 SmartScreen 提示,点「更多信息」,再点「仍要运行」。
启动「DouyinDataReview」。桌面版会在后台自动连上自带的采集器(从源码在浏览器里打开时点「连接采集器」,配对码自动获取),之后默认在前台自动读取新记录,也可以手动点「增量读取」。关掉窗口应用会留在托盘里接着每 3 小时读一次,要完全退出就在托盘图标的菜单里点「退出」。
首次使用在首屏「数据来源」里点二维码位置的遮罩「点击显示二维码」(二维码已在后台备好,遮罩一点就消失),用抖音 App 扫码并在手机上确认,核对昵称,勾选读取视频、读取聊天后点「确认导入」,读取会自动开始,只读所选类型。也可以点「改用 Chrome / Edge / Comet 导入」。凭据失效或需要调整读取权限时重新登录并导入。
进入内容库,用页签在观看历史、直播、喜欢、收藏和「推荐流挡掉的」之间切换,聊天和持续报告在侧栏;在「设置」里换界面风格、选报告用哪一套,点「打开报告」看年度回顾。
后台网页用独立的会话(persist:douyin-login),不和工作台页面共用 Cookie;网页标识是同版本的 Chrome,不带应用名;只允许打开抖音及其登录相关的页面,拒绝通知、摄像头等权限请求和文件下载。网页登录状态留在本机,凭据失效后再点「扫码登录」通常会直接认出原来的号,不用重新扫码。要添加另一个号时,在认出的账号下面点「换个号扫码」:应用清掉后台网页里的登录状态(只删本机这份 Cookie 和网页存储,不在抖音退出,已导入账号的凭据照常可用),再显示新的二维码。
chrome://inspect/#remote-debugging、edge://inspect/#remote-debugging 或 comet://inspect/#remote-debugging。浏览器弹出确认框时,由本人允许连接。Chrome 的现有实例连接方式需要 144 或更新版本;Edge 需要提供远程调试开关的版本。工作台自动检测默认安装的稳定版用户目录和有效本机调试端口,并核对监听进程属于该浏览器,避免旧端口文件接到另一个实例;自定义用户目录、其他浏览器渠道和 Firefox 暂不支持此入口。无需安装浏览器扩展,也无需手填端口。
远程调试授权覆盖整个浏览器实例;工作台只读取抖音域 Cookie,并仅在自己创建的抖音标签页初始化凭据,不清理日常浏览器缓存、不修改原有标签页。断开连接、切换账号或退出应用会清理这些标签页并断开调试连接,浏览器进程继续保留,调试开关由本人关闭。接口读取和实时接收使用已导入的凭据,重启后会复用本机缓存并核对平台返回的账号;短期令牌过期本身不会要求重新导入。凭据缺失或不完整、平台拒绝登录、账号不一致或要求验证时,工作台才提示重新连接并导入。凭据有效期由抖音控制,不保证固定时长。
同样的入口里还有一项「抖音桌面端」:不需要浏览器,也不需要开调试端口,直接从本机抖音电脑客户端(8.x,Electron 内核)的数据目录里读出已登录账号的 Cookie,用本机算出的请求签名访问同样的接口。
Windows 上 Cookie 库用 DPAPI(当前用户)解开的密钥做 AES-256-GCM 解密;macOS 上密钥从钥匙串「douyin Safe Storage」派生,按 AES-128-CBC 解密。两边都只保留 douyin.com 域的条目,明文不落盘。客户端里同时还存着收发私信要用的 ticket-guard 材料(私钥、客户端证书、服务端证书、ticket / ts_sign 和 dtrait 公钥),导入时一起取出来:私钥和证书在 Local Storage 的 security-sdk/* 里,最新的 ticket / ts_sign 在 IndexedDB 里,按 Cookie 里的 bd_ticket_guard_ts_sign_id 挑当前那一份。桌面端导入之后,聊天、续火花这类需要签名的操作同样不用再打开客户端;只有客户端换了登录或刷新了票据,才需要重新导入一次。Linux 上这一项不会出现。
安装包只含应用代码和 Web 页面,不含本地记录、登录状态或浏览器配置。采集记录保存在 macOS 的
~/Library/Application Support/内容数据工作台/collector/或 Windows 当前用户的应用数据目录,改名后继续沿用,升级不会覆盖。旧版 macOS 应用名为「内容数据工作台」,替换时移除旧应用即可。桌面版启动后会检查 GitHub Release。Windows 可在「设置」里下载并「重启并安装」,采集进行中不会自动重启;macOS 使用设置里的下载入口,手动替换应用。
出了问题,先看常见问题;要从源码跑、自己打包或用手机连,看面向开发者。
从源码运行时数据在项目里的 .local-data/(已被 git 忽略);桌面版在 macOS 的 ~/Library/Application Support/内容数据工作台/collector/ 或 Windows 当前用户的应用数据目录。
.local-data/direct-session.json,从本人确认连接的日常浏览器导出,按账号隔离并以仅当前用户可读写的权限保存;不包含在安装包中external-browser.json 只记录来源(app 表示应用内扫码登录,desktop 表示抖音电脑客户端,其余是浏览器类型),不包含连接地址或凭据;重启后复用该账号已导入的有效凭据,失效时才要求重新连接,不会自动改用另一个浏览器或客户端的登录态.local-data/direct-history-template.json,只含浏览器标识和白名单查询参数,不含 Cookie。.local-data/records.json 保存归一化记录;新增账号各自保存在 .local-data/accounts/<12 位编号>/,账号列表在 .local-data/accounts.json。Partitions/douyin-login/,所有账号共用一份,不包含在安装包中。diagnostics/verify-*.html,只在本机,首屏的短信验证码是按页面上的文字找选项、输入框和按钮的,认不出来时退回窗口;这些文件用来对照真实结构调整。.local-data/feed-filter.json,所有账号共用。本地服务默认监听 127.0.0.1:4765。
/v1/health、/v1/pairing-code、/v1/pair、/v1/sync*、/v1/experimental/records-direct;完整和增量读取均通过 HTTP 分页,配对码和增量读取接口仅允许本机回环连接。/v1/status、/v1/records*、/v1/accounts*;支持按账号操作,切换冲突时返回 409。/v1/chat/*、/v1/explore/*;聊天通过 HTTP 整理历史、WebSocket 实时接收,发消息和转发走 IM 接口,其他探索操作走 HTTP;发送由用户触发并校验回执,结果不明时不自动重发。/v1/creator/read、/v1/live/*;按需通过 HTTP 查询,直播弹幕通过 WebSocket 接收,正在直播的关注列表缓存 30 秒;群聊、火花和直播数据不写入记录文件。/v1/feed-filter*;读写词条与过滤方式、处置记录和挡掉的视频,打开浏览器扩展页、移除扩展;浏览器扩展用单独范围的令牌,只能读设置和回传记录。/v1/downloads*;下载和播放由用户触发,播放地址使用独立密钥。桌面版的「送去拆片工坊」不走接口:主进程把下好的视频复制进拆片工坊的收件箱。/v1/browser/sources、/v1/browser/connect、/v1/browser/confirm、DELETE /v1/browser/pending、/v1/browser/disconnect;桌面版的来源列表第一项是 app(应用内扫码登录),connect 传 {"browser":"app"} 会在后台打开抖音网页(再加 "fresh":true 先清掉后台网页的登录状态,用来换号),等待期间 /v1/browser/login-qrcode 返回登录二维码(data URL)和码上的提示,POST /v1/browser/login-window 把后台网页窗口显示出来做验证,从源码单独跑采集器时没有这一项;Windows 和 macOS 上还会多一项 {"browser":"desktop"}(抖音电脑客户端),它不打开页面也不连调试端口,只读本机客户端数据目录里的登录态,识别账号后同样进入待确认、确认后导入并自动读取;仅本机可用,未登录时等待最多五分钟,取消请求会释放连接;登录后预览账号,本人确认才导出凭据并自动断开,成功后新账号启动一次完整读取、已有账号只读新增;待确认连接两分钟后释放,断开连接保留有效凭据及接口任务。代码请求复用当前账号导入的登录会话。导入时一次性导出 Cookie、请求参数、签名密钥和设备凭据,之后记录、聊天、互动、创作者中心和直播都走 HTTP 或 WebSocket。直播弹幕只在内存保留最近 300 条。重启恢复缓存后先核对平台返回的账号,不仅凭短期令牌过期判断登录失效;凭据缺失或不完整、平台拒绝登录、账号不一致或要求验证时,提示本人在登录窗口或所选浏览器中完成登录或验证并重新导入,不启动后台浏览器。
作品详情、评论和搜索通过 HTTP 接口获取,视频通过本机采集器提供的媒体接口在应用内播放,不需要打开抖音网页播放器。
有。DouyinDataReview 用你本机保存的观看、喜欢、收藏和聊天记录生成抖音年度报告,不用等平台发,随时都能打开,还能存成 3:4 的分享图。报告有内容年志、海报等几种视觉风格,不装软件也可以先在线看示例报告(里面是编出来的演示数据)。
安装 DouyinDataReview,在首屏扫码登录抖音并导入凭据(网页版在「设置 → 账号」连接浏览器导入)。读取完成后,在「设置 → 数据」点「导出数据」,可分别选择观看历史、喜欢、收藏和聊天数据,保存为 JSON;聊天默认不勾选,未勾选的内容不会写入文件,导出不会触发平台读取。换电脑时在新电脑的采集器页「选择文件」导入,再点「并入本机记录」即可继续使用。聊天导出包含已保存的好友消息及会话信息(含群聊统计);群聊正文不在备份里。
采集器使用导入的登录凭据,通过抖音 HTTP 接口分页读取记录,聊天和直播弹幕通过 WebSocket 接收。应用内的后台网页或浏览器只在登录、验证和导入凭据时用到;导入成功且凭据有效时自动断开(用浏览器导入的可以关掉浏览器和远程调试),工作台仍可采集;Windows 和 macOS 上还可以直接读本机抖音电脑客户端的登录态,客户端开着关着都不影响读取。具体模块见实现方式。
不能保证。在线采集只能取得抖音接口当前返回且本人账号有权访问的记录,无法恢复接口已经不提供的数据。持续使用可以在本机积累个人记录;年度报告的范围取决于已保存记录的日期和字段,缺失数据会影响覆盖率。也可导入抖音官方个人信息下载的档案生成报告。
能。在采集器页「或者导入个人档案」那里点「选择文件」,选官方导出的 JSON 或 ZIP,就能用这份档案生成报告,不用登录。导入的文件只在这次打开时读取,关掉应用后要重新导入。
能。内容库里点「批量下载」进入多选,选好的视频会打包成 ZIP 存到本机;探索页进到某个用户的主页,也能单条或多选下载这个用户的作品。图文作品会下载全部图片。
每次下载都会按当前登录会话检查作品详情;对仍可访问的旧作品,不要求在发布后三小时内下载。报告样本中的约 3 小时或 24 小时是单条签名媒体地址的有效期估算,不是作品本身的期限。详情被拒绝、没有返回作品或作品 ID 不匹配时会停止;本实现不保存或复用旧签名地址,因此不支持作品变为不可访问后的应急取回。批量 ZIP 内的 evidence.json 记录脱敏后的响应状态、允许列表中的缓存响应头、字节数和 SHA-256;不会保存签名媒体 URL、Cookie 或完整查询参数。证据仅描述本次客户端观察,签名过期时间可能无法识别,CDN 缓存头也不能证明源站权限或内容授权。
能。DouyinDataReview 在「设置 → 推荐流」提供一个浏览器扩展,拖进 Chrome 或 Edge 的扩展页装一次,写好词条(关键词、作者、话题、正则都行),以后在抖音网页刷推荐时,命中的视频可以只记录、直接隐藏,或隐藏后替你点「不感兴趣」。挡掉的视频会出现在内容库的「推荐流挡掉的」里,误杀了回头改词条就行。只对网页版生效,手机 App 里的推荐不受影响。
应用免费,源码以 MIT 许可开源。个人记录保存和报告统计在本机完成,在线采集只请求抖音,应用本身不连任何 AI 服务。AI 解析和剪辑已拆到独立应用拆片工坊(ReelLab):只有你点「送去」按钮送过去的那条视频(文件和标题、作者、链接、时长)会交给它,之后怎么用、发到哪里由拆片工坊自己说明。完整说明见数据来源与功能边界。
没法保证不会。工具用的是你自己在抖音网页版登录的会话,读的是你本人能看到的记录;但记录读取走的是抖音没有公开承诺的接口,可能失效,也可能触发风控。建议只在自己的账号上用,别拿它批量操作别人的账号或群发消息。
安装包没有开发者签名。在终端执行一次 xattr -cr "/Applications/DouyinDataReview.app",再打开就行。
点「更多信息」,再点「仍要运行」。
桌面版打开后在首屏点二维码位置的遮罩,用抖音 App 扫码,核对账号后确认导入,读取自动开始,不需要另外装浏览器、开调试或手动连接采集器。从源码运行、在浏览器里打开工作台时没有这个入口,要在 Chrome、Edge 或 macOS Comet 中开启远程调试再连接浏览器,Windows 和 macOS 上也可以选「抖音桌面端」直接读本机电脑客户端的登录态;未登录时在新开的抖音页面完成登录,工作台会等待并自动继续。
通常是旧实例仍在后台运行。先从旧版的托盘或菜单栏选择「退出」,再启动新版;从源码运行时,也要停止之前启动的采集器。只关闭窗口可能仍会留在后台,不需要删除本地记录或登录配置。
桌面版在首屏点「重新扫码登录」(网页版在「设置 → 账号」重新连接已登录的浏览器),勾选所需读取类型并确认导入。勾选视频时建立 HTTP 分页所需的请求参数,并自动读取一次(已读完过的账号只补新增);只勾选聊天时不初始化观看历史读取。升级保留本地记录,旧版已有完整且有效的凭据也可以继续使用。
采集进行中也能打开报告,这时数据可能还不全;采集结束后会提示「报告有更新」并换成新数据。持续报告在最近 30 天样本不足时会自动回退到 90 天。
开着聊天接收时,看板里亮着的火花读的是抖音接口返回的官方天数,应该和抖音里一致。没在接收时才按本机保存的聊天记录估算:同一天双方都发过消息才算一天,连着聊满 3 天点亮,断一天清零。抖音没公开自己的算法,本地也只有采集到的那部分记录,所以估算只当参考;想改口径可以改源码 src/domain/chatSparks.ts 里的 SPARK_LIT_DAYS 等常量。
在日常浏览器中完成抖音登录或验证,再到「设置 → 账号」重新连接并导入凭据,然后重试。
电脑端启动采集器时要加 --lan,并用 --origin 写上手机实际打开的页面地址;手机上把服务地址改成采集器显示的局域网地址。完整命令见手机连接。
# 1. 克隆项目并安装依赖
git clone https://github.com/ZhangYukwiver/DouyinDataReview.git
cd DouyinDataReview
npm install
# 2. 启动采集器(终端 A)
npm run collector
# 3. 启动 Web 页面(终端 B),然后打开 http://localhost:8081 点「连接采集器」
npm run web
页面与采集器在同一台电脑时会自动获取并填入 8 位一次性配对码。
其他开发方式:
npm run app:mac 生成 DouyinDataReview.app,打开后启动采集器和页面;启动时会重建页面,修改 prototype/ 后需运行 npm run sync:story。npm run desktop 构建页面并启动 Electron 和本机采集器。npm run watch:process -- npm run web;CPU 持续超过 500% 或 RSS 超过 2 GB 时会停止进程。npm run typecheck、npm test、npm run build:web。年志源码在 prototype/,可用 npm run sync:story 同步(构建时会自动同步)。Windows(NSIS 安装器)
npm run desktop:build
输出到 release/DouyinDataReview-Setup-<version>.exe,带桌面和开始菜单快捷方式。
macOS(DMG)
npm run desktop:build:mac
在 Apple Silicon Mac 上输出 release/DouyinDataReview-<version>-arm64.dmg。没有 Apple 开发者签名时会做 ad-hoc 签名,拿到 dmg 的人首次打开前仍要执行上面的 xattr -cr。
电脑和手机需在同一可信局域网。启动采集器并填写手机打开的页面地址:
npm run collector -- --lan --origin http://192.168.1.20:8081
应用中将服务地址设为采集器显示的局域网地址,例如 http://192.168.1.20:4765。LAN 模式使用一次性配对码和内存会话,但流量为 HTTP,仅适合可信网络。
[!IMPORTANT] 请在充分理解以下内容,并自愿承担相应责任的前提下使用本项目:
项目性质
本项目为独立开发的非官方开源工具,与抖音、字节跳动及其关联主体不存在隶属、授权、合作或认可关系。相关产品名称和商标归其权利人所有。
合法使用
本项目仅可用于处理使用者本人合法持有、管理或已经取得明确授权访问的数据。使用者应遵守适用的法律法规、软件许可协议、平台规则和隐私保护义务。
数据与备份
使用过程涉及本地记录、浏览器登录态、聊天快照和下载的视频文件。开始前请备份重要数据,并自行负责登录态保管、数据安全和隐私保护。
兼容性与运行风险
抖音页面结构、接口格式或风控策略变化,可能导致读取失败、功能失效、账号提醒或其他不可预期结果。本项目不保证对未来抖音版本持续兼容。
责任范围
本项目按现状提供,不对功能的准确性、完整性、稳定性或持续可用性作出明示或默示保证。在适用法律允许的范围内,因使用、误用、版本不兼容、操作中断或第三方策略变化产生的损失和后果,由使用者自行承担。
使用或继续使用本项目,即表示使用者已经阅读、理解并同意以上内容,并愿意对自己的操作及其结果负责。
DouyinDataReview is a free, open-source desktop app for exporting and analyzing your own Douyin data on Windows x64 and macOS Apple Silicon. It targets Douyin in China; international TikTok is not supported. It saves watch history, likes, favorites and friend chats locally as JSON and generates rolling reports and a year-in-review ("Douyin Wrapped"). Group chat bodies are excluded from backups. This is an independent, unofficial project. The interface is in Chinese, and the source is MIT-licensed. Download the installer from Releases; see the export and privacy guide.
The app combines a React / React Native / Expo interface, a Node.js collector and an Electron desktop shell. The desktop app opens Douyin in a hidden in-app window (an isolated session read through its own debugger channel, no debugging port) and shows its login QR code on the first screen for you to scan, or Playwright connects to your authorized browser through CDP, to import Douyin cookies, request parameters and signing credentials. The collector then uses signed, paginated HTTP requests for records and WebSocket connections for real-time chats and live comments. Normalized records are stored in local, per-account JSON files; TypeScript report logic computes statistics on your computer without an external AI service. See implementation and source modules.
The desktop app connects to its bundled collector on launch and prepares a Douyin login QR code in the background; on the first screen, click the mask over the QR code (点击显示二维码) and scan it with the Douyin app, then confirm the import and reading starts automatically; use 在窗口里登录 (Sign in in a window) for verification steps or SMS sign-in. Alternatively, sign in to Douyin in Chrome 144+, an Edge version with the remote debugging toggle, or Comet on macOS. In Settings → Account, click Connect browser. If remote debugging is disabled, the app attempts to open the selected browser's debugging settings; enable the toggle and connect again, or use the displayed settings URL if opening fails. Check the account name, select video reading and/or chat reading, and confirm the credential import. At least one must be selected; first imports default to videos only. If you are not signed in, the connection waits up to five minutes and can be cancelled. After import, the app disconnects from CDP. Selected video reading starts one full read of watch history, likes and favorites; selected chat reading organizes chat history and starts reception. Unselected capabilities cannot read further platform data. Choices persist per account across restarts and can be changed by reimporting; existing local data remains viewable and exportable. Older imports retain both capabilities. You can stop reading from the collector page, turn off debugging and close the browser. Missing or incomplete credentials, a rejected login, an account mismatch or a verification requirement need a new import. No browser extension is required for sign-in. Firefox, custom user-data directories and other browser channels are not supported.
Collection is limited to records currently returned by Douyin's private APIs and accessible to your account. It cannot guarantee a complete lifetime history or future API compatibility. Reports reflect the records you have saved and their available fields.
| 渠道 | 怎么用 |
|---|---|
| GitHub Issues | 报 bug、提需求,公开有记录,遇到过同样问题的人也能回答你 |
| QQ 群「DDDouyin」 | 群号 1124211302,讨论与互助 |
| 940537208,问题反馈与交流直接联系 |
提问前先看一遍常见问题,并附上出问题时的操作步骤和系统版本,能省掉来回追问。
没有这些项目,这个工具做不出来,谢谢他们。
发现 bug、有功能诉求、觉得操作繁琐或界面不好看,都欢迎提 Issue;想动手改的话,fork 后发 Pull Request 就行。
| 创作者与达人数据 | 通过当前账号会话读取创作者中心和抖音指数接口,整理指标与图表 | 创作者中心、抖音指数服务 |
| 推荐流过滤 | 浏览器扩展在推荐数据进页面前按词条拿掉命中的视频,必要时调用「不感兴趣」接口;词条、过滤方式和记录都存在采集器,扩展的令牌只能读设置、回传记录;应用带了新版扩展时扩展自己升级 | 浏览器扩展、过滤设置与记录 |
| 视频播放与下载 | HTTP 获取作品详情和媒体地址,由本地接口提供播放与下载;批量视频通过 fflate 打包 ZIP | 媒体下载、批量打包 |
| 报告与档案导入 | TypeScript 计算年度与持续报告,标注日期来源和覆盖率;解析本应用备份及官方 JSON / ZIP;年度页面导出 HTML 与 PNG | 年度统计、持续报告、档案解析、汇总快照、报告导出 |