Install
openclaw skills install withme-youtubeClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
With me. YouTube 频道 Lofi 氛围视频制作全流程。小米(Content)全权调度,从选题到发布一条龙。含 AI 图片生成、Envato 音频下载、FFmpeg 合成、SEO 资料包、YouTube 上传排程、Shorts 切片。触发词:withme、lofi视频、氛围视频、YouTube发布、开始制作、V{N}。
openclaw skills install withme-youtube小米(Content)是制作总指挥。 Ken 只在关键节点审核,其余全自动。 Main 不参与具体制作,只在跨部门协调时介入。
~/Projects/withme-youtube/
├── audio/v{N}/ ← 音频素材(音乐+环境音+氛围音)
├── images/originals/v{N}/ ← AI 生成原图
├── images/4k-upscaled/v{N}/ ← 4K 放大版
├── videos/v{N}/ ← 制作中间文件
├── licenses/v{N}/ ← Envato 授权证书
├── thumbnails/v{N}/ ← YouTube 封面
├── scripts/ ← FFmpeg 构建脚本
└── exports/ ← 最终导出
| 任务 | 负责 | 说明 |
|---|---|---|
| 选题/策划/全流程调度 | 小米(Content) | 总指挥 |
| 场景 Prompt 优化 | @designer | 小米直接调度 |
| AI 图片生成 | @designer → exec | 小米派 designer,designer 直接 exec generate_image.py |
| 4K 放大 | @designer → exec | 使用放大工具 |
| Envato 音频搜索+下载 | @research → browser | 用 browser 工具访问 Envato(Ken 账号已登录) |
| FFmpeg 合成脚本 | 小米 | 复制模板 + 填参数 |
| FFmpeg 执行 | Ken / exec | 本地算力执行 |
| 封面制作 | @designer | 3 个备选 |
| 标题/描述/SEO | @seo | 品牌格式 + 30 标签 |
| 翻译 | @writing | 英文→繁中 |
| YouTube 上传 | exec youtube_upload.py | 脚本自动上传+排程 |
| Shorts 切片 | 小米 | 参考 youtube-shorts skill |
格式:With me. | [Mood] — [Scene Description] [Emoji] [Duration] [Resolution]
示例:With me. | Rainy Night — Tropical Rainforest Ambience 🌧️ 2 Hours 4K
HANDOFF-FROM-MAIN.md(如有)获取主题references/content-matrix.md)GEMINI_API_KEY="$(python3 -c "import json; print(json.load(open('$HOME/.openclaw/openclaw.json'))['models']['providers']['google']['apiKey'])")" \
uv run /Users/withme/.openclaw/shared/generate_image.py \
--prompt "<prompt>" \
--filename "~/Projects/withme-youtube/images/originals/v{N}/scene_{i}.png" \
--resolution 2K
⚠️ 不写 pending.json,不等 Main 巡检。
~/Projects/withme-youtube/images/4k-upscaled/v{N}/Envato 下载需 CDP + browser 配合,流程已验证可行。
references/content-matrix.md)browser 工具搜索 Envato Music,筛选 Claim Clear 曲目# Step 1: 用 CDP 设定下载路径(每个 page target 需单独设定)
import asyncio, json, websockets, urllib.request
targets = json.loads(urllib.request.urlopen("http://127.0.0.1:18800/json").read())
page_ws = [t["webSocketDebuggerUrl"] for t in targets if "envato" in t.get("url","")][0]
async with websockets.connect(page_ws) as ws:
await ws.send(json.dumps({"id":1,"method":"Network.enable"}))
await ws.recv()
await ws.send(json.dumps({"id":2,"method":"Page.setDownloadBehavior",
"params":{"behavior":"allow","downloadPath":"<目标目录>"}}))
await ws.recv()
# Step 2: JS 点击 Download 按钮
await ws.send(json.dumps({"id":3,"method":"Runtime.evaluate",
"params":{"expression":"document.querySelectorAll('button').forEach(b=>{if(b.textContent.trim()==='Download')b.click()})"}}))
# Step 3: 等待下载完成(监听文件出现)
~/Projects/withme-youtube/audio/v{N}/⚠️ 关键:必须用 Page.setDownloadBehavior(非 Browser 级),必须用 browser 工具(web_fetch 会被 Cloudflare 403)。
scripts/build-template.sh → scripts/build-v{N}.shmemory/youtube-publish-v{N}.md// ~/.openclaw/shared/upload-queue.json
{
"title": "With me. | ...",
"file": "~/Projects/withme-youtube/exports/v{N}.mp4",
"thumbnail": "~/Projects/withme-youtube/thumbnails/v{N}.jpg",
"description": "...",
"tags": ["..."],
"publishAt": "下周五 10:00 GMT+8",
"status": "pending"
}
~/.openclaw/shared/youtube_upload.py~/.openclaw/shared/youtube_client_secret.jsonkylin1986@gmail.com| 节点 | 原因 |
|---|---|
| 阶段 1 确认主题 | 确保方向正确 |
| 阶段 5 审核 FFmpeg 参数 | 本地算力 + 美学微调 |
| 阶段 6 选封面 + 审核资料包 | 最终品质把关 |
每个阶段完成后更新 memory/youtube-progress-v{N}.md:
# V{N} 制作进度 — {主题}
- [x] 阶段 1:主题确认 ✅ 2026-03-XX
- [x] 阶段 2:图片生成 ✅ 5/5 张
- [ ] 阶段 3:4K 放大
- [ ] 阶段 4:音频准备
- [ ] 阶段 5:FFmpeg 合成
- [ ] 阶段 6:封面+资料包
- [ ] 阶段 7:上传排程
- [ ] 阶段 8:Shorts 切片
Ken 或 Main 发送:「开始制作 V{N}:{主题}」 小米自动执行阶段 1-8,仅在 3 个节点暂停等 Ken 确认。