Video Publish Workflow
Three-phase workflow: platform selection → editing guidance → multi-platform automated publishing.
Phase 0: Platform Selection
When user describes a video or asks which platform(s) to publish to, recommend based on content type.
Read references/platform-selection.md for the full decision table.
Quick rules:
- 东南亚旅行 / 骑行 / 实用干货 → TikTok + 抖音 + YouTube 生活频道
- 长沙 / 国内内容 → 抖音 + YouTube 生活频道(TikTok 可选)
- 技术内容(工具/开发)→ YouTube 技术频道"自由码农" 独发
- 视频 >3 min → YouTube 主发,剪 60s 竖屏版给 TikTok + 抖音
Always confirm the YouTube channel (生活频道 vs 技术频道) before uploading there.
Phase 1: Editing Guidance
When user describes raw footage, provide CapCut editing suggestions covering:
- Structure — recommended clip order, pacing, total duration (YouTube Shorts/TikTok/Douyin: ≤60s ideal)
- Opening hook — first 3 seconds must grab attention; suggest text overlay or action cut
- Titles & captions — specific suggested text, font style (bold/contrasting), placement
- Transitions — which transition type fits the content (cut/dissolve/zoom)
- Music — mood, tempo, whether to use CapCut's built-in library or upload
- Ending — call-to-action text or subscribe reminder
Ask clarifying questions only if essential (e.g., target platform aspect ratio, duration constraint).
After giving suggestions, tell user: "剪辑好之后告诉我输出目录,我来帮你发布到各平台。"
Phase 2: Multi-Platform Publishing
When user provides a video file path, publish to all three platforms using Playwright browser automation.
Pre-flight
- Confirm the file exists:
ls -lh <path> - Ask user for title and description if not provided (or auto-generate from Phase 1 context)
- Open browser tabs and check login state for each platform before uploading
Publishing Order
Publish in this order (most reliable → most quirky):
- TikTok —
tiktok.com/tiktokstudio/upload - YouTube Shorts —
studio.youtube.com - 抖音 (Douyin) —
creator.douyin.com/creator-micro/content/upload
For platform-specific quirks, selectors, and workarounds → see references/platforms.md
File Upload Pattern (all platforms)
Never use browser_file_upload directly — the visible upload area is an overlay that blocks the hidden <input type="file">. Always use:
// via browser_run_code
async (page) => {
await page.locator('input[type="file"]').setInputFiles('/path/to/video.mp4');
}
Status Reporting
After each platform attempt, report:
- ✅ Published successfully
- ⚠️ Uploaded but requires manual action (e.g., SMS verification)
- ❌ Failed — reason
Key Reminders
- Keep user informed of progress — each platform takes 1–3 minutes to process
- If a platform requires login, ask user to log in then confirm before proceeding
- Douyin often triggers SMS verification on first publish of the day — warn user upfront
- Always set video to Public visibility unless user specifies otherwise