53 lines
2.3 KiB
Markdown
53 lines
2.3 KiB
Markdown
---
|
||
name: douyin-video-parse
|
||
description: "当用户发送包含抖音短链接(https://v.douyin.com/xxx)的消息时触发。自动解析抖音视频/图片,并发送给当前用户。"
|
||
argument-hint: "消息中包含抖音短链接即可自动触发"
|
||
---
|
||
|
||
# Douyin Video Parse Skill
|
||
|
||
## 描述
|
||
|
||
这是一个用于解析抖音短视频/图片的技能。
|
||
|
||
当用户发送的消息中包含 `https://v.douyin.com/` 链接时,自动解析该链接对应的视频或图片,并通过本地微信机器人接口发送给当前用户。
|
||
|
||
这个仓库里额外提供了一个可执行脚本 `scripts/douyin_video_parse.py`,方便宿主机器人直接调用。
|
||
|
||
## 触发条件
|
||
|
||
- 用户消息中包含 `https://v.douyin.com/` 链接
|
||
|
||
## 解析原理
|
||
|
||
1. 访问抖音短链接,跟随 302 重定向获取真实页面 URL
|
||
2. 请求真实页面 HTML,从中提取 `window._ROUTER_DATA` JSON 数据
|
||
3. 从 JSON 中解析出视频播放地址或图片列表
|
||
4. 通过本地微信机器人接口发送视频或图片
|
||
|
||
## 环境变量
|
||
|
||
- `ROBOT_WECHAT_CLIENT_PORT`:本地微信机器人服务端口。
|
||
- `ROBOT_FROM_WX_ID`:当前消息来源用户的 wxid。
|
||
- `ROBOT_MESSAGE_CONTENT`:用户发送的原始消息内容(用于提取抖音链接)。
|
||
|
||
## 执行步骤
|
||
|
||
1. 当用户消息中包含 `https://v.douyin.com/` 链接时触发该技能。
|
||
2. 在仓库根目录下执行本地脚本:`python3 scripts/douyin_video_parse.py`。
|
||
3. 脚本从环境变量 `ROBOT_MESSAGE_CONTENT` 中提取抖音短链接。
|
||
4. 脚本访问短链接,跟随重定向获取真实页面 URL。
|
||
5. 脚本请求真实页面,解析 `window._ROUTER_DATA` 中的视频/图片信息。
|
||
6. 如果是视频:
|
||
- 先发送分享卡片链接
|
||
- 再调用 `POST http://127.0.0.1:{ROBOT_WECHAT_CLIENT_PORT}/api/v1/robot/message/send/video/url` 发送视频
|
||
7. 如果是图片:
|
||
- 发送文字提示(作者、标题、图片数量)
|
||
- 调用 `POST http://127.0.0.1:{ROBOT_WECHAT_CLIENT_PORT}/api/v1/robot/message/send/image/url` 逐张发送图片
|
||
8. 如果解析失败,回复兜底文案:`抖音解析失败,可能是链接已失效或格式不正确。`
|
||
|
||
## 回复要求
|
||
|
||
- 视频类型:发送视频文件,附带作者和标题信息。
|
||
- 图片类型:发送所有图片,附带作者和标题信息。
|
||
- 失败时,使用固定兜底文案回复。 |