SuperAPI AI 工具集

buzz-media-attachments

办公与效率

查看项目

更新于 10-16 05:45

技能介绍

用途:当用户要求把本地媒体文件发到当前 Buzz 会话,且常规 MEDIA:/path 投递失败时使用。不适用于通用媒体编辑或非 Buzz 投递。

主要能力与用法:先确认源文件存在可读,视频可用 ffprobe 读取元数据。从实时网关日志(~/.hermes/logs/gateway.log)中查找用户最新入站 Buzz 消息,定位 platform=buzz 且 chat=<CHANNEL_UUID> 的行,不要猜测频道 UUID。随后用 Buzz 原生附件机制发送:buzz messages send --channel <CHANNEL_UUID> --content - --file /absolute/path/to/file,--file 可重复以附加多个文件。

凭据加载:不要用 shell source .env,因为 BUZZ_AUTH_TAG 可能含 JSON 会被破坏。用 python-dotenv 解析 ~/.hermes/.env,并通过 subprocess 环境传入。示例中调用 buzz messages send,input=caption,timeout=180。

MP4 被拒时的诊断:若报 moov atom not at front(非 fast-start),先尝试 ffmpeg -y -v error -i input.mp4 -c copy -movflags +faststart output.mp4。若报含元数据或非规范元数据通道,简单流复制不够,需按 Buzz Desktop 的 transcode_to_mp4() 规范完整重编码:ffmpeg -y -nostdin -loglevel error -protocol_whitelist file,pipe -i input.mp4 -map 0:v:0 -map '0:a:0?' -map_metadata -1 -map_chapters -1 -sn -dn -fflags +bitexact -flags:v +bitexact -flags:a +bitexact -c:v libx264 -preset fast -crf 23 -pix_fmt yuv420p -vf 'pad=ceil(iw/2)*2:ceil(ih/2)*2' -c:a aac -b:a 128k -movflags +faststart -metadata encoder= output.mp4。若不需要规范 MP4 或用户要求附加图片,可把短片转为动图 GIF:ffmpeg -y -v error -i input.mp4 -vf "fps=12,scale=512:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=128[p];[s1][p]paletteuse=dither=bayer" -loop 0 -map_metadata -1 output.gif,再通过 --file 上传。

验证与限制:只有 Buzz 返回 JSON 含 {"accepted": true, "event_id": "..."} 才可报告成功,保留 event_id;不要仅因网关接受助手回复就宣称附件成功。切勿打印 BUZZ_PRIVATE_KEY 或其他 .env 值。转换后的 GIF 默认放 /tmp,除非用户要求持久副本;不要修改源 MP4。GIF 可能增大文件体积,长或高分辨率片段应先降低 fps、缩放宽度或减少颜色数。