抖音视频分享下载
只处理当前消息里的第一个抖音公开视频链接。检测到链接后直接执行下载,不先询问用户,也不扫描历史消息。
执行
- 从当前消息保留完整分享文案,不要手工改写或解析链接。
- 调用
skill_run的download_video入口:
{"skill_name":"douyin-video-share","entrypoint":"download_video","arguments":["<当前完整消息>","--output-root","<workspace>"]}
- 脚本返回
ok: true后,立即调用一次:
{"path":"<video_file>","message":"抖音视频下载完成"}
send成功后只回复“视频已发送”,不要再发送下载地址或重复发送文件。
<workspace> 是 LightAgent workspace;官方 Docker 默认为 /home/agent/lightagent。下载文件固定保存到 <workspace>/videos/douyin-video-share/<aweme_id>.mp4。
微信群自动触发
技能不会自行修改 LightAgent 配置。管理员安装后需要在微信群设置中完成一次配置:
- 将本技能的微信群权限设为“所有群成员可用”,或只授权需要使用的群。
- 在“非 @ 主动回复”的强触发关键词中加入
v.douyin.com和douyin.com/video/。 - 将强触发关键词规则分值设为不低于当前活跃度阈值;默认“普通”活跃度建议设为
50。 - 开启非
@主动回复的智能评分器,使强触发关键词跳过通用接话判断。 - 为目标群开启非
@主动回复。
完成后,群成员直接粘贴抖音分享文案即可自动触发;没有完成这些配置时,仍可通过 @机器人 + 抖音链接 使用。强触发关键词只负责把消息送入已安装技能,不会放宽技能的下载域名、文件体积或单视频限制。
约束
- 每轮最多调用一次
skill_run和一次send。 - 只接受 HTTPS 抖音域名,脚本会逐跳校验重定向并拒绝其他站点、内网地址和非标准端口。
- 单个源视频上限为 200 MiB;超限时不保留半成品。源视频超过 20 MiB 时,使用已声明的
media-processing能力生成约 18 MiB 的群聊发送版本。 - 不处理用户主页、合集、直播、图集、音乐、评论或批量链接。
- 不使用 Cookie,不登录抖音,不绕过私密、好友可见、地区或账号访问限制。
- 不改用
browser、web_fetch或 Bash 下载,也不把远程 URL 直接传给send。 - 只下载用户在当前消息中主动提供的公开视频;提示用户尊重作者版权和平台规则。
实现方式参考活跃的 MIT 开源项目 jiji262/douyin-downloader,具体来源记录见 references/upstream.md。本技能脚本为面向 LightAgent Runner 的独立最小实现,不包含该项目的批量下载、登录或浏览器回退代码。
失败处理
missing_url或unsupported_url:提示用户发送完整的抖音 HTTPS 分享链接。unsupported_item_type:说明当前只支持单个视频,不处理图集、直播、主页或合集。video_too_large:说明视频超过 200 MiB,未下载也未发送。missing_media_processing、transcode_failed或transcode_timeout:说明群聊发送版本生成失败,不发送过大的源文件。download_failed、invalid_video或页面结构变化:返回脚本中的简短错误,不尝试其他解析站或第三方接口。- 任何失败都不得调用
send,不得声称下载或发送成功。