Video Publishing
Objective
Deliver the confirmed final video and platform copy accurately and completely to the platforms selected by the user, and record the results on the task card. The default deliverable is a manual publishing package. External uploads are performed only after authorization is granted for each platform, preferably as private or draft content, with the user clicking Publish themselves.
Prerequisites
- The final cut has been confirmed: the user has watched or listened to the entire finished video.
- The video version and publishing fields for each platform are ready. See video-platform-versions.md in and the platform-specific guidelines in the platform copy module.
- If music or assets require attribution, the attribution text has been added to each platform description.
If any item is missing, report the gap and stop at
; do not upload with unresolved gaps.
Publishing Method Tiers
From lowest to highest, each increase in level requires the user to authorize that specific platform and video separately:
| Level | Method | Who clicks “Publish” | Use case |
|---|
| L0 Manual publishing package | Deliver the files, cover, subtitles, and field-by-field copy for the user to upload | User | Default for every platform |
| L1 Form-filling assistant | A browser extension or signed-in browser automatically opens the publishing page and fills in the fields | User checks the content and clicks Publish personally | Avoid repetitive form-filling while retaining individual control over each post |
| L2 Private upload or draft | Upload as private, unlisted, or draft content through an official API or upload tool | User publishes it after checking the backend | Official YouTube API; platforms that support drafts |
| L3 Scheduled publishing | Upload the content and set its publication time | It becomes public automatically at the scheduled time | Only when the user explicitly provides the platform, video, and time |
A vague instruction such as “publish them all” does not constitute L3 authorization. List the actions to be performed for each platform, including the platform, file, title, visibility, and time. Execute them only after the user confirms.
Adapter Discovery
First discover the capabilities already available in the current environment. Do not require the user to install a specific tool for this Skill. Common options and their respective boundaries are described in upload-adapters.md:
- YouTube: Prefer the official YouTube Data API, with the user completing OAuth authorization personally, or use a signed-in YouTube Studio session.
- Douyin, WeChat Channels, and Xiaohongshu: Public upload APIs for individual creators are generally unavailable. Options include form-filling browser extensions, open-source browser-automation upload tools, or manual uploads.
- Unofficial automation may violate platform terms or trigger risk controls, especially for new accounts. Explain the risks and let the user choose.
If no adapter is available, or the user does not want to install one, deliver an L0 manual publishing package directly.
Publishing Workflow
- Verify the publishing package: Check the video file, aspect ratio, duration, cover, subtitles, title, description, hashtags, attribution, and AI disclosure fields for each platform. Report every missing item.
- List the execution plan: Provide one line for each platform, including the publishing level, file, title, and visibility or scheduled time.
- Obtain per-platform authorization: Have the user confirm which platforms to publish to and the level at which each should be executed.
- Execute: Process one platform at a time. If the login expires, a verification code or SMS verification is required, a risk-control warning appears, or the interface behaves abnormally, stop immediately and hand control to the user. Do not retry in an attempt to bypass the issue.
- Perform read-back verification: After uploading, open the backend or draft and verify the title, cover, first two lines of the description, subtitles, visibility, and scheduled time.
- Record the results: Write the publishing level, execution time, and verification results back to the task card and publishing matrix. Record the public link only after the user reports that the content has been published successfully.
Safety Boundaries
- Do not mass-publish with one click or perform write operations on any platform without authorization.
- Do not automatically like, comment, follow, send direct messages, or artificially inflate engagement.
- Cookies, Tokens, OAuth credentials, and account passwords must be stored locally only by the user or upload tool. Do not read or echo them, and do not write them to task cards, logs, publishing packages, or repositories.
- Do not enter passwords or verification codes on the user's behalf. The user must complete the login personally.
- Do not alter the speed, add noise, or crop footage to evade copyright detection.
- If a platform requires an AI-generated or synthetic-content declaration, select it accurately and truthfully.
Output
For each platform, return the publishing level, adapter used, upload or form-filling result, visibility or scheduled time, read-back verification result, and any actions the user still needs to complete in the backend. For platforms that were not processed, state the reason, such as lack of authorization, no available adapter, or stopping due to risk controls, and provide the path to that platform's manual publishing package.
Use video-publish-pack-template.md to generate a per-platform manual publishing package.