把你的抖音"喜欢"(点赞)列表自动同步成一个 Notion 画廊数据库:封面墙、按点赞顺序排列、按年份/热度/作者筛选,每天定时增量更新。
- 元数据采集基于 TikTokDownloader (DouK-Downloader)(GPL-3.0,见下方致谢)
- Notion 写入直连官方 API:纯本地脚本,无任何第三方服务经手你的数据
- 幂等设计:任何脚本可随时中断、重复运行,不会产生重复数据
Notion 数据库包含 16 个属性(标题/作者/类型/发布时间/年份/热度/热度等级🔥/时长/话题/音乐/抖音链接/已下载/常客…),每个作品一张封面卡片。配合视图可以做出:
- 点赞画廊——全部点赞按时间倒序的封面墙
- 热门排行——你赞过的百万赞爆款
- 按年份——2018 → 现在的口味变迁
- 常客作品——你反复点赞的那些作者(阈值可配)
前置:macOS / Linux,uv,Python 3.12+,一个 Notion 账号。
git clone https://github.com/yjagh/douyin-likes-sync.git
cd douyin-likes-sync
./setup.sh # clone 采集器 + 打补丁 + 装依赖setup.sh 默认从 yjagh/TikTokDownloader(上游 fork,锁定实测 commit)获取采集器,想追官方最新可 ./setup.sh https://github.com/JoeanAmier/TikTokDownloader。
cd TikTokDownloader && uv run --no-dev main.py首次运行:选择语言 → 阅读并同意免责声明 → 用菜单"从剪贴板读取 Cookie (抖音)"写入你的登录态 Cookie(获取教程)。然后编辑 Volume/settings.json:
再跑一次 uv run --no-dev main.py,全量元数据会写入 Volume/Data/UID..._喜欢作品.csv(几千条约需几十分钟,程序内置防风控延时)。
- 在 notion.so/profile/integrations 新建 Internal 集成,把 token 存进本地文件:
printf '%s' 'ntn_xxx' > ~/.notion_token && chmod 600 ~/.notion_token - 在 Notion 里选一个父页面 →
⋯→ 连接 → 添加你的集成 - 自动建库:
uv run --project TikTokDownloader python create_database.py <父页面链接>,把输出的数据源 ID 记下来 - 视图需在 Notion 界面手动添加(公开 API 不支持建视图):推荐建画廊视图,卡片预览设为"页面内容",按"点赞序号"升序排列
cp config.example.json config.json # 填 data_source_id、likes_csv 路径等
./daily_sync.sh # 端到端跑一次首次导入几千条约 2~3 小时(受 Notion API 3 请求/秒限速),日志在 state/daily_sync.log,中断后重跑自动续传。若有封面缺漏,跑 uv run --project TikTokDownloader python notion_cover_repair.py 兜底。
./install_schedule.sh 21 30 # 每天 21:30,launchd 定时记得把 TikTokDownloader/Volume/settings.json 的 max_pages 改为 5(每次只拉最新约 100 条)。
抖音喜欢列表 ──TikTokDownloader──▶ CSV 元数据(追加式)
│
notion_import.py(幂等增量)
│
封面:抖音 CDN 下载 → Notion 文件直传(不经第三方)
▼
Notion 数据库(画廊)
设计要点:
- 作品 ID 为唯一键,导入前查询库内已有 + 本地进度文件双重去重
- 点赞序号:接口不返回点赞时间,但列表顺序即点赞倒序。全量导入按行号编号;增量新点赞从库内最小值向下递减(负数),保证升序视图永远"最新在前"
- 封面转存:Notion 的
external_url导入模式会先发 HEAD 请求,抖音 CDN 拒绝 HEAD——所以脚本自行下载后用single_part直传(这是踩过的坑,别改回去) - Cookie 过期时(约两个月),daily_sync 会在日志报警并跳过导入,重新写入 Cookie 即恢复
- 本项目不包含 TikTokDownloader 的源码,安装时从其仓库 clone;它是 JoeanAmier 的作品,遵循 GPL-3.0
patches/内含两个对上游的小修复(剪贴板读 Cookie 的 bug、macOS ARM 依赖标记),这些补丁片段同样遵循 GPL-3.0- 上游声明其接口加密参数算法已停止维护;本项目实测"喜欢列表"采集配合登录 Cookie 可用,其余功能不做保证
- 请仅用于你自己账号的个人存档,遵守抖音用户协议与当地法律;不要公开分享含他人作品数据的 Notion 页面
本仓库自有代码采用 MIT License。patches/ 目录下的补丁涉及 GPL-3.0 代码片段,遵循 GPL-3.0。