X Post (X 发布工具)
基于真实 Chrome 实例、利用 Chrome DevTools 协议 (CDP) 实现的自动化、抗机器人发布的工具链,专为 X (Twitter) 平台设计。
运行时要求 (执行前)
执行任何脚本前,请先验证环境依赖 → references/runtime-setup.md。
必备清单:
- 已安装 Bun 运行时 (
bun --version) - 已安装 Google Chrome 或 Chromium(或已设置
X_BROWSER_CHROME_PATH环境变量) - 首次运行:在打开的 Chrome 窗口中完成 X 账号登录(会话将保存至
~/.local/share/x-browser-profile) - 如需视频翻译:需安装
yt-dlp、ffmpeg和whisper-cli
如果缺少任何必需工具,请立即停止操作并告知用户。
功能与导航地图
根据发布任务选择合适的工作流程:
| 内容类型 | 脚本路径 | 详情与参考文档 |
|---|---|---|
| 文字与图片 | scripts/x-browser.ts | 单张/多张图片帖子及帖子链 → references/regular-posts.md |
| 视频帖子 | scripts/x-video.ts | 视频上传及转码监控 → references/video-posts.md |
| 引用推文 | scripts/x-quote.ts | 引用现有推文并附上评论 → references/quote-tweets.md |
| 长文 | scripts/x-article.ts | 带内嵌图片的 Markdown 文章 → references/articles.md |
| 视频翻译 | scripts/x-translate-video.ts | 字幕提取、翻译与烧录 → references/video-translation.md |
| 通用分发 | bin/x-post.js | Claude、Marketplace、npx、Skills.sh 及所有 AI 代理 → references/distribution.md |
| 故障排除 | 不适用 | 常见错误的解决方案 → references/troubleshooting.md |
1. 普通帖子 (文字、图片与帖子链)
发布标准推文,支持最多 4 张图片和帖子回复。
# 预览模式(验证撰写框,窗口保持打开 30 秒)
bun scripts/x-browser.ts "探索使用 Antigravity 进行代理自动化!" --image ./screenshot.png
# 发布带图片和回复的帖子
bun scripts/x-browser.ts "宣布发布我们的新开源项目!" \
--image ./banner.png \
--reply "查看此处仓库:https://github.com/org/repo" \
--submit
- 详情、图片规格和多线程链接 →
references/regular-posts.md
2. 视频帖子
发布视频(MP4、MOV、WebM 格式),支持自动上传和转码轮询。
# 预览视频上传
bun scripts/x-video.ts --video ./demo.mp4 "观看完整的架构讲解"
# 发布带回复中来源引用的视频
bun scripts/x-video.ts --video ./demo.mp4 \
"自主编码循环基准测试" \
--reply "基于 SWE-bench 验证数据集进行基准测试。" \
--submit
- 时长限制、格式和上传状态 →
references/video-posts.md
3. 引用推文
引用一条现有的公开推文,添加自定义评论,同时保留来源归属。
# 预览引用推文
bun scripts/x-quote.ts https://x.com/username/status/1234567890 "对 LLM 代理的重要见解!"
# 直接发布引用推文
bun scripts/x-quote.ts https://x.com/username/status/1234567890 "非常同意这一分析。" --submit
- URL 规范化和菜单选择器 →
references/quote-tweets.md
4. X 长文 (Markdown)
将包含标题、列表、引用块、封面图片和内嵌图片的 Markdown 文档转换为 X 长文(需要 X Premium)。
# 预览格式化的文章草稿
bun scripts/x-article.ts ./article.md --cover ./cover.png
# 直接发布文章
bun scripts/x-article.ts ./article.md --submit
- Frontmatter 语法和图片占位符机制 →
references/articles.md
5. 视频翻译与字幕工作流
下载外语视频推文,通过 Whisper 转录音频,生成可编辑的翻译文件,烧录带样式的字幕,并附上来源归属发布。
# 步骤 1:输入 URL 并创建翻译草稿 (/tmp/x-translate/<id>/translation.md)
bun scripts/x-translate-video.ts https://x.com/username/status/1234567890 --target-lang English
# 步骤 2:编辑 /tmp/x-translate/<id>/translation.md 中的翻译内容和 SRT
# 步骤 3:烧录字幕并预览
bun scripts/x-translate-video.ts --confirm /tmp/x-translate/<id>/translation.md
# 步骤 4:烧录字幕并发布
bun scripts/x-translate-video.ts --confirm /tmp/x-translate/<id>/translation.md --submit
- 完整流程和 FFmpeg 字幕样式 →
references/video-translation.md
执行原则与安全
- 始终先预览:在开发或手动审核期间,运行命令时不加
--submit参数。 - 持久化配置文件:所有脚本共享
~/.local/share/x-browser-profile,因此只需一次身份验证。 - 原生按键分发:媒体资产使用硬件级粘贴模拟(
copy-to-clipboard.ts+paste-from-clipboard.ts),以避免 CDP 合成事件被拦截。 - 问题解决:如遇登录超时、剪贴板权限或 CDP 连接错误 →
references/troubleshooting.md。