Skills

Douyin Login

抖音独立 API 会话初始化与重新登录、扫码和短信登录、登录 MFA 验证及有效期检查。

Install

npx skills add TeamWiseFlow/xiaobei --skill douyin-login -g -a claude-code -y
Repository
TeamWiseFlow/xiaobei8.7k
Category
Engineering
Updated
6d ago
License
See repository
Context cost
Lightabout 1,486 tokens
Runs scripts
Yes, review before use

What it does

抖音独立 API 会话初始化与重新登录、扫码和短信登录、登录 MFA 验证及有效期检查。

独立 API 登录

使用 ~/.openclaw/douyin-api/session.json,权限 0600;设置 DOUYIN_API_SESSION 时使用指定入口。重新登录后该入口保存新会话文件的位置,全部抖音工具自动读取同一新会话,实际路径由 status.session_file 返回。采集、发布、私信、互动和直播共用此会话。Relay 提供设备配置、协议配置与加密运行句柄;客户端直接请求平台并保存 Cookie,不启动浏览器。

首次扫码登录

先运行 douyin-login relay-check 和 douyin-login status。Relay 检查应返回 automatic_login: true。会话不存在时直接初始化;无需准备 config.json、私钥或一次性挑战文件,也不要安排其他智能体生成这些材料。

douyin-login init
douyin-login qr --output /受控目录/douyin-qr.png

init 自动完成匿名设备注册、设备挑战与响应处理,成功返回 next: qr。把 qr 生成的图片交给用户扫码,然后运行:

douyin-login poll --timeout 120

程序处理登录重定向并查询本人资料;返回 logged_in: true 和已确认 UID 后,才能使用平台业务工具。再执行 douyin-hunter check 和 douyin-engagement check。

status 中的 cookie_present 只表示主站作用域内存在未过期会话 Cookie;identity_verified 表示有效会话已通过本人身份读取并缓存 UID,logged_in 与此一致。只有 Cookie 而没有 UID,且没有未完成验证、runtime 未过期时,执行 douyin-hunter check 验证现有会话;过期二维码不代表账号已登出,不要仅因此重新初始化。

已有账号需要刷新互动安全材料时执行 douyin-login refresh。工具先读取本人身份,再续接当前会话的安全握手;账号、UA 和会话密钥保持绑定,不重新扫码。只保存加密运行句柄、材料名称清单和秒级有效期,不手工补材料值。互动工具提示材料缺少或即将过期时先执行此刷新;账号发生变化或刷新失败时停止写操作。

彻底清空本地账号与换号

用户要求彻底清空本地账号时,先结束抖音业务请求和未完成的登录流程,再删除会话入口、status.session_file 指向的实际文件、同一账号含凭据的备份和登录临时文件;保留业务数据及其他平台会话。默认登录目录内的 sessions/login-*、session.abandoned-* 也可能保存历史会话,清空要求覆盖它们。换号或用户明确要求重新登录时执行 douyin-login restart --confirm,再获取二维码或按用户选择发起短信登录;登录后核对 UID。该命令保留旧诊断为私有备份,在新的仓外文件中调用 passport.initialize,弃用旧 runtime、Cookie、QR、短信与 MFA 状态,所有工具自动切换。它不会发送短信或验证码。直接重复 init 只复用原状态,不会换号;需要保留多个账号时可分别设置仓外 DOUYIN_API_SESSION,各账号工具使用对应入口,旧会话以 0600 权限保存。

登录超时与重新登录

客户端同时保存 Relay 返回的 runtime 和秒级 runtime_expires_at。未完成登录从首次初始化起固定 15 分钟;轮询、新句柄和计算重试均不延期。成功平台登录后 Relay 返回较长有效期,仍须真实 self 确认 UID。MFA 最多 600 秒,以及二维码、验证码、安全材料各自的有效期仍需满足;runtime 有效不代表这些材料有效。

status.runtime_expired: true 或错误 RUNTIME_EXPIRED 时停止原登录与业务请求,向用户提示“本次登录已超时,请重新登录”,保留原响应供私有诊断。普通 init 不会自动重置。用户明确选择重新登录后执行:

douyin-login restart --confirm
Read the whole SKILL.md on GitHub

More in Engineering