dsh-douyin-toolkit:在 DSH 里把抖音做成一等公民工具

前言

在 DeepSeek Harness(DSH)里做联网能力时,常见做法是单独起一个 MCP,或在脚本里拼 cookie、自己扛签名和翻页。抖音侧接口会变、搜索要 search_id 链式翻页,登录还要区分「有 cookie」和「页面真的已登录」。若你希望在 Cordis 里直接调用工具读热榜、搜视频、拉用户作品,并在需要时用浏览器补登录和受控写操作,sakuramat0u/dsh-douyin-toolkit(维护者 SakuraMat0u,分类:联网工具)把这条链路收成一套 DSH 插件:只读优先走 dy-cli 逆向子进程,失效再回退系统 Edge 截获页面 XHR;写评论默认 dry-run,并带可轮询的扫码/短信登录状态机。

这是什么

dsh-douyin-toolkit 是 Cordis Host 插件,不是 MCP server;工具直接注册到 ctx.tools。它把抖音接入 DSH,覆盖热榜、搜索、视频、用户、状态自检,外加账号指纹与单条受控评论;douyin_publish 仅保留接口,恒返回 implemented: false,不执行发布。

仓库在 GitHub 组合了社区已有能力:Youhai020616/douyin(dy-cli)负责热榜、搜索、用户资料与 cookie 读取;登录态与多阶段状态机参考了 douyin-mcp、douyin-upload-mcp-skill 等;与同生态只读的 dsh-whale-dive 相比,本插件强调逆向 API 优先、完整登录状态机,以及写操作开关与配额退避。

目录页:https://www.skillhub.cn/plugins/SakuraMat0u/dsh-douyin-toolkit
源码:https://github.com/SakuraMat0u/dsh-douyin-toolkit(MIT,package 版本 1.0.0)

核心功能

只读工具(逆向 API,必要时 Edge XHR)

工具 主要入参 说明
douyin_hot count? 热榜条目、热度、搜索链接
douyin_search keyword, limit?, pages?, cursor?, sort? 关键词搜索;next_cursor 走 search_id 链式分页
douyin_video aweme_id 或 url, comment_limit? 文案、作者、互动、前 N 条评论
douyin_user user 或 sec_uid, post_limit? 简介、粉丝、近期作品
douyin_status — 登录态、配额、上次错误等一句话结论

登录与验证(专用 Edge + Playwright)

工具 说明
douyin_login_start 打开独立 Edge profile,返回 qrcode 与截图路径
douyin_login_status 轮询 idle / qrcode / sms_* / challenge_required / logged_in / expired / failed / stopped
douyin_login_submit 提交 4–8 位短信验证码(codes)
douyin_verify 打开验证页,手动过滑块/验证,插件只轮询

登录成功后会把 storage_state 写到 <dataDir>\home\.dy\cookies\default.json(dy-cli 读取路径),并记录 sec_uid 与账号指纹。插件不实现 X-Bogus、不重写登录协议、不绕过验证码。

写操作(默认关闭)

工具 说明
douyin_comment 单条评论;dry_run 默认 true;需 writesEnabled 与 confirm 等守卫
douyin_publish 占位,不发请求

全局 单 worker(并发 1),翻页 3–8 秒抖动、调用间隔约 1.8–3.2 秒,滚动 1 小时请求预算默认 60;触发 rate_limited / challenge_required 后指数退避。敏感字段(cookie、sessionid、storage_state 等)不会进入工具返回值或日志。

环境与架构

当前 README 标明 仅在 Windows 上实测(Edge 路径与 profile 清理 Windows 优先)。需要:

  • Python 3.10+(README 实测 3.14)
  • Node.js 22+(DSH 自带;package engines.node 为 >=22)
  • 系统已安装 Microsoft Edge,默认路径示例:C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
  • 不需要 playwright install chromium,不使用 Chrome

架构上,Node 侧做工具注册、限频、配额与脱敏;只读走 python -m dy_cli.main 或 python dy_query.py search;浏览器侧用独立 profile 做登录、XHR 回退与评论。

安装与启用

下面两种方式均来自仓库 README;改配置后需 重启 DSH。插件以当前 DSH 进程权限运行,安装前请自行审阅源码与 MIT 许可证。

方式 A:本地 bundle(推荐,自带 .venv)

在克隆目录创建虚拟环境并安装 Python 依赖:

git clone https://github.com/SakuraMat0u/dsh-douyin-toolkit.git
cd dsh-douyin-toolkit
python -m venv .venv
.venv\Scripts\python.exe -m pip install -r python\requirements.txt

用插件管理器安装本地目录(target 为克隆目录的绝对路径):

plugin_manager install_bundle  target = <克隆目录>

或使用 DSH 插件命令:

dsh plugin --profile desktop add <克隆目录的绝对路径>

此时 .venv 在插件包旁,pythonPath 通常无需额外配置,data/ 默认落在该目录。

方式 B:从 GitHub 安装

dsh plugin --profile desktop add github:SakuraMat0u/dsh-douyin-toolkit

pnpm 安装的是包副本,不带 .venv。需在 profile 的 cordis.patch.yml 中补充可写数据目录与 Python 路径,例如:

- id: douyin
  name: dsh-douyin-toolkit
  config:
    pythonPath: C:\path\to\python.exe   # 已安装 dy-cli 和 playwright 的解释器
    dataDir: C:\path\to\writable\dir    # Edge profile、cookie、日志

bundle 自带 cordis.patch.yml 会在安装时插入 id: douyin;不要再用 insert 手工挂同一 id。要改配置,在 profile 顶层用同 id 覆盖,例如:

- id: douyin
  name: dsh-douyin-toolkit
  config:
    writesEnabled: true
    maxSearchPages: 2

合成结果可用下面命令检查:

dsh --profile desktop --dump-config

常用配置项(节选):writesEnabled 默认 false;maxResults 默认 20(硬上限 20);maxSearchPages 默认 3;hourlyRequestBudget 默认 60;toolEnabled 可逐工具关闭 hot / search / video / user / status / login / verify / comment / publish。

典型用法

1. 环境自检

仓库提供 PowerShell 自检脚本,会探测 Python/Edge、桥接状态并拉一次热榜(3 条):

powershell -ExecutionPolicy Bypass -File scripts\selfcheck.ps1

在 DSH 对话里也可直接调用 douyin_status 查看登录态与配额。

2. 只读:热榜与搜索

先调用 douyin_hot(可选 count)看热榜;搜索用 douyin_search,翻页传返回的 next_cursor,不要用页码推算。若返回映射为 challenge_required,应走 douyin_verify 手动验证,而不是当作空结果。

3. 登录状态机

  1. douyin_login_start:拿到二维码与截图路径,phase 为 qrcode。
  2. 抖音 App 扫码并在手机确认。
  3. 轮询 douyin_login_status,直至 logged_in 或失败/过期。
  4. 若流程切到短信:在浏览器填手机号后,用 douyin_login_submit 传入 codes。
  5. 出现滑块:调用 douyin_verify,在可见窗口完成后重试业务工具。

login_start 每次会重置登录状态;换号后若写工具报 account_mismatch,可删除 <dataDir>\state\account.json 后重试。

4. 受控评论

在 profile 中将 writesEnabled 设为 true 后,仍建议先用 douyin_comment 且保持 dry_run: true(默认)核对参数;真正写入需按工具要求提供 confirm 等确认字段。writesEnabled 为 false 时评论工具返回 writes_disabled。

适用场景与注意

适合:在 DSH 智能体流程里稳定读抖音公开内容(热榜、搜索、视频与用户作品),偶尔需要浏览器登录或单条评论,且能接受 Windows + Edge 的运行约束。

注意:

  • 插件与 DSH 同权限运行;dataDir 会存放浏览器 profile 与 cookie 等价物,从 GitHub 直接安装时务必指向可写目录。
  • 读路径优先子进程,失败才开 Edge;profile_in_use 表示专用 profile 被登录窗口占用,应先查 douyin_login_status 或关闭对应 Edge。
  • 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,版本与星标以各站点为准(目录页当前星标为 0)。
  • 发布能力未实现;勿依赖 douyin_publish 做自动化发稿。

结尾

dsh-douyin-toolkit 把 dy-cli 只读能力与 Edge 登录/回退、配额退避和写操作守卫收进一个 Cordis 插件,适合要把抖音当 DSH 内置工具而不是外挂 MCP 的开发者。安装与配置以 README 为准;更多细节与故障排查表见 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜