# Douyin Interact

> 对明确指定的抖音公开 video 或 note 作品执行一次点赞、收藏或评论，或返回分享链接。用户要求点赞、收藏、评论、取消相应状态或获取抖音作品链接时使用。

- Skill: `zjay26/douyin-interact` (Agent Skill)
- Install (CLI): `npx skillmds@latest add zjay26/douyin-interact`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zjay26/douyin-interact/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: zJay26 (https://skillmd.com/u/zjay26)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/zjay26/douyin-interact

---


# 执行基础互动

只使用 `python "{baseDir}/../../scripts/cli.py" <子命令>`。如果系统只有 `python3`，替换命令名。

## 前置确认

1. 根据用户指定账号传 `--account <名称>`，并检查登录状态。
2. 确认唯一目标作品。接受纯数字 ID、`douyin.com/video/...` 或 `douyin.com/note/...` 公开链接。
3. 对刚发布的作品优先使用主页作品卡片中的公开链接，不使用创作者中心内部记录 ID。
4. 不批量互动，不连续重复同一操作。

## 点赞

```bash
python "{baseDir}/../../scripts/cli.py" like-video --video-id <作品ID或公开链接>
```

网页按钮是切换开关。CLI 会先读取平台显式状态；`state: already_active` 表示没有重复点击。若点击前仍为 `state: unknown`，CLI 应返回 `clicked: false` 并安全停止，不要改用坐标或文字匹配盲点。只有 `clicked: true` 且 `state_verified: false` 才能报告“已点击点赞按钮，最终状态未稳定确认”，且不得重试。

## 收藏

```bash
python "{baseDir}/../../scripts/cli.py" favorite-video --video-id <作品ID或公开链接>
```

同样先判定状态再操作。点击前状态不可靠时保持 `clicked: false`；按钮已点击但最终状态未确认时，交给用户在页面核对。

- `state: already_active` 表示目标状态本来就已激活，CLI 没有再次点击。
- `state_verified: true` 表示页面通过适配器声明的 `data-e2e-state`、ARIA、文案或样式暴露了明确证据；不要把一次普通点击自动等同于最终状态。

## 只读核对点赞与收藏状态

```bash
python "{baseDir}/../../scripts/cli.py" get-interaction-state --video-id <作品ID或公开链接>
```

- 该命令只读取当前按钮状态，不点击切换控件。
- `state_verified: true` 且 `state: active` / `inactive` 表示页面提供了明确状态证据。
- `state: unknown` 或 `state_verified: false` 仍需用户在页面核对，不要改用点赞/收藏命令试探。

## 评论

```bash
python "{baseDir}/../../scripts/cli.py" comment-video --video-id <作品ID或公开链接> --comment "评论内容"
```

- 只在页面明确提供评论输入框和发送控件时尝试一次。
- `state: comment_confirmed` 表示评论文本已在评论区出现。
- `state: comment_clicked_unconfirmed` 表示发送控件已点击但未确认评论出现；不要自动重试。
- `state: comment_outcome_unknown`、`clicked: null` 表示发送指令期间异常，无法确认是否发送；不要重试，先检查评论区。
- `comment_input_not_found`、`comment_text_not_applied` 或 `comment_submit_not_found` 表示没有发送评论，不要把填写输入框报告为已评论。
- `comment_input_not_empty` 表示评论框中已有其他草稿；保留草稿且不要覆盖。

## 分享链接

```bash
python "{baseDir}/../../scripts/cli.py" share-video --video-id <作品ID或公开链接>
```

优先返回 JSON 的 `share_url`。`copied_to_clipboard: false` 只表示当前环境没有确认剪贴板写入；只要 `share_url` 有值，仍可把链接交给用户。

## 失败处理

- 点赞、收藏在图文和视频页面都必须先有可靠状态证据；图文操作栏缺少状态时不能按位置点击。
- `outcome_unknown: true`、`clicked: null` 或 `retry_safe: false` 表示不能自动重复操作；连接错误不等于没有执行。

- `needs_user_verification: true`：停在 headed 浏览器，等待人工验证；`risk_recovered: true` 且 `logged_in: true` 时继续，不要沿用切换前的风险判断。
- 作品不可访问：说明可能私密、已删除或链接错误。
- 按钮未找到：报告页面结构可能变化，不要用坐标盲点或其他自动化工具兜底。
- 不支持回复评论、私信分享或批量互动。

