一键导入
wechat-channels-publish
通过浏览器自动化发布视频到微信视频号。处理 wujie shadow DOM,支持视频上传、标题描述填写、即时发布。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
通过浏览器自动化发布视频到微信视频号。处理 wujie shadow DOM,支持视频上传、标题描述填写、即时发布。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
| name | wechat-channels-publish |
| description | 通过浏览器自动化发布视频到微信视频号。处理 wujie shadow DOM,支持视频上传、标题描述填写、即时发布。 |
| metadata | {"openclaw":{"emoji":"📺"}} |
通过浏览器工具在微信视频号创作者中心发布视频。视频号创作者中心使用 wujie 微前端,所有表单元素在 <wujie-app>::shadow-root 内,需要特殊处理。
前提条件:浏览器已登录 channels.weixin.qq.com(微信扫码登录)。
Navigate https://channels.weixin.qq.com/platform/post/create
等待 5 秒(wujie 需要额外时间初始化 shadow DOM)。
如果页面 URL 包含 login 或出现登录二维码:
browser-guide技能的 1-B QR Code 登录流程处理方式 A:CDP setFileInputFiles(推荐)
python ./skills/wechat-channels-publish/scripts/upload_video.py --video <video_path> --cdp-port <port>
脚本会:
span.add-icon 或 div.upload-content)<input type="file">DOM.setFileInputFiles 注入视频文件方式 B:DataTransfer base64 分块注入
当 CDP setFileInput 在 shadow DOM 内失败时使用:
python ./skills/wechat-channels-publish/scripts/upload_video.py --video <video_path> --cdp-port <port> --method base64
脚本会:
Runtime.evaluate 注入页面 window.__oc_chunks 数组DataTransfer + File 对象,设置到 <input type="file"> 的 files 属性change + input 事件支持的视频格式:.mp4、.mov、.avi、.webm
上传后视频需要转码处理,等待方式:
[class*="uploading"] 或 [class*="progress"][class*="transcoding"]<video> 预览或 [class*="preview-video"] 或文本"上传成功"/"转码完成"[class*="upload-fail"] 或文本"上传失败"python ./skills/wechat-channels-publish/scripts/fill_form.py --title "<标题>" --cdp-port <port>
input[placeholder*="短标题"]Runtime.evaluate 在 shadow root 内查找并填写python ./skills/wechat-channels-publish/scripts/fill_form.py --caption "<描述内容>" --cdp-port <port>
div[contenteditable][data-placeholder="添加描述"]日常生活 #搞笑 #生活视频号发布不必勾选"原创声明",发布后用户会在手机端补充。
点击"发表"按钮:
python ./skills/wechat-channels-publish/scripts/fill_form.py --publish --cdp-port <port>
等待 4 秒后检查:
https://channels.weixin.qq.com/platform/post/list发布成功后,在视频号管理后台的视频列表页获取视频公开链接:
https://weixin.qq.com/sph/xxxxxx(sph 即视频号拼音缩写)注意:如果刚发布的视频还在审核中,"分享"按钮可能不可用。此时可先完成发布记录(publish_url 留空),待审核通过后再补充链接。
自动化脚本方式(推荐):
python ./skills/wechat-channels-publish/scripts/get_video_link.py --cdp-port <port> [--title "<视频标题>"]
脚本会自动:
链接将用于数据记录流程(不在本技能流程中,通常是执行完本技能之后执行)
在 Step 7 中点击"存草稿"按钮而非"发表"。
如果需要人工检查表单后再发布:
document.querySelector('wujie-app').shadowRoot.querySelector(selector)DOM.querySelector 带 pierce: 模式(如果 Patchright 支持)DOM.setFileInputFiles 对 shadow DOM 内的 <input type="file"> 操作Not allowed 错误locator.drop() 可模拟拖拽文件到上传区域,绕过 shadow DOM 内 file input 的限制:
const videoBuffer = fs.readFileSync(videoPath);
await page.locator('.upload-content').drop({
files: { name: 'video.mp4', mimeType: 'video/mp4', buffer: videoBuffer }
});
需验证视频号上传区域是否响应 drop 事件(部分自定义组件可能不处理 drag/drop)。--timeout 600),或检查视频格式是否兼容| 情况 | 处理 |
|---|---|
| 未登录 | 等待用户扫码登录,最长 2 分钟 |
| 上传失败 | 检查视频格式(mp4/mov/avi/webm),重试一次 |
| setFileInput Not allowed | 自动 fallback 到 base64 注入方式 |
| 转码超时 | 增加超时时间,或告知用户稍后在创作者中心检查 |
| 发表按钮 disabled | 检查必填字段是否已填写(视频是否上传完成) |
| shadow DOM 元素找不到 | 等待更长时间让 wujie 初始化,或刷新页面 |
Publish videos to Bilibili (B站) via Open Platform API (OAuth2). Supports chunked video upload, cover image, tags, and partition selection. Requires BILIBILI_APP_ID and BILIBILI_APP_SECRET environment variables.
内容校准预测循环——打分 → 盲预测 → T+3d复盘 → 进化 rubric。按平台独立迭代,每个平台拥有自己的 rubric、校准池、预测日志、受众画像。本技能负责打分(blind sub-agent + score-only.sh + 阈值门 + 流程 1A)与校准闭环;发布记录与数据采集由 published-track 统一管理。
口播视频去口误。自动识别并删除静音、语气词、卡顿词、重复句、残句等,输出干净视频+字幕+剪映草稿。触发词:去口误、剪口播、de-mouth、去除口误
Generate custom WeChat CSS themes from natural language descriptions, WeChat article URLs, or recent articles from a WeChat Official Account. Produces a valid CSS file conforming to wenyan and ready for wx-mp-publisher.
一站式短视频制作。支持文章链接、追爆报告、文字主题等多种输入,用 gen.py 直连火山 Seedance / 阿里云百炼 Wan2.7-HappyHorse 端点生成视频素材(声画同出),FFmpeg 组装成片。
通过浏览器自动化在微博发布图文内容。微博 API 对个人开发者不友好,浏览器方案更实用。