SuperAPI AI Directory

self-media-video-publisher

Design & creation

View repository

Updated 10-16 07:23

About this skill

Video Publishing

Objective

Deliver the confirmed final-cut video and platform copy accurately and completely to the platforms chosen by the user, and record the results back to the task card. Default delivery is a manual publishing package; external uploads are only performed after per-platform authorization, with priority given to uploading as private or draft, and the user clicks publish publicly themselves.

Prerequisites

  • Final cut confirmed: the user has fully watched and listened to the final cut.
  • The versions and publishing fields for each platform are ready, see self-media-short-video the video-platform-versions.md and the per-platform specifications of the platform copy module.
  • When there are music or asset attribution requirements, the attribution text has been written into each platform's description.

If any item is missing, report the gap and stop at AWAITING_USER, and do not upload with gaps.

Publishing method tiers

From low to high, each level up requires the user to separately authorize that platform and that specific video:

Level Method Who clicks "Publish" Applicable
L0 Manual publishing package Deliver files, cover, subtitles, and per-field copy; the user uploads themselves User Default; any platform
L1 Form-filling assistant A browser extension or a logged-in browser automatically opens the publishing page and fills in the fields The user checks and clicks personally Want to save repeated form filling while still checking each one
L2 Private upload or draft Upload via official API or upload tool as private, non-public, or draft The user checks in the backend and then makes it public YouTube official API; platforms that support drafts
L3 Scheduled publishing Upload and set a public time Automatically made public at the scheduled time Only used after the user explicitly gives the platform, video, and time

A vague instruction like "just publish them all" does not equal L3 authorization. List the actions to be performed per platform (platform, file, title, visibility, time), and execute only after the user confirms.

Adapter discovery

First discover the capabilities already available in the current environment; do not require the user to install specific tools for this Skill. See common options and their respective boundaries in upload-adapters.md:

  • YouTube: Prefer the official YouTube Data API (the user completes OAuth authorization themselves), or a logged-in YouTube Studio.
  • Douyin, WeChat Channels, Xiaohongshu: There is usually no public upload API for individual creators. Available options include form-filling browser extensions, open-source upload tools based on browser automation, or manual upload by the user.
  • When sau is installed, you can optionally use SAU adapter: first use node scripts/publish.mjs --episode <期目录> --platforms douyin,weixin,xhs,youtube --dry-run preview, then confirm per platform. WeChat Channels sends drafts, YouTube sends private (L2); Douyin and Xiaohongshu only have --mode schedule --at L3 scheduled publishing, which automatically makes public at the scheduled time; the script requires manual confirmation per platform and --yes is ineffective for them.--sau Specify the executable file,--yes only for L2 platforms that have been individually authorized per platform.
  • Unofficial automation may violate platform terms or trigger risk controls, and new accounts are especially sensitive. Explain the risks to the user and let the user choose.

When no adapter is available, or the user does not want to install one, deliver the L0 manual publishing package directly.

Publishing workflow

  1. Verify the publishing package: check the video file, aspect ratio, duration, cover, subtitles, title, description, topics, attribution, and AI labeling fields platform by platform, and report whatever is missing.
  2. List the execution plan: one line per platform, clearly stating the publishing level, file, title, and visibility scope or time.
  3. Obtain per-platform authorization: the user confirms which platforms and at which level to execute. When using SAU scripts, each platform must be confirmed separately; the default draft path does not support Douyin and Xiaohongshu, and instant upload cannot be used in place of drafts.
  4. Execute: handle one platform at a time. If login expires, a CAPTCHA, SMS verification, risk-control prompt, or interface anomaly occurs, stop immediately and hand over to the user; do not retry or bypass.
  5. Read back and verify: after uploading, open the backend or draft and verify the title, cover, first two lines of the description, subtitles, visibility scope, and scheduled time.
  6. Record the results: write the publishing level, execution time, and verification results back to the task card and publishing matrix. After the user reports that it is publicly successful, then record the public link.

Security boundaries

  • Do not one-click mass publish, and do not perform any write operations on unauthorized platforms.
  • Do not automatically like, comment, follow, or send direct messages, and do not inflate metrics.
  • Cookies, tokens, OAuth credentials, and account passwords are stored on the local machine only by the user themselves or the upload tool; do not read them, do not echo them back, and do not write them to task cards, logs, publishing packages, or the repository.
  • Do not enter passwords or CAPTCHAs on behalf of the user; login is completed by the user themselves.
  • Do not change speed, add noise, or crop the image to evade copyright detection.
  • When a platform requires disclosure of AI-generated or synthesized content, check it truthfully.

Output

Return for each platform: the publishing level, the adapter used, the upload or form-filling result, the visibility scope or scheduled time, the read-back verification result, and the actions the user needs to complete in the backend. For platforms not executed, state the reason (unauthorized, no adapter, stopped by risk control), and attach the manual publishing package path for that platform.

You can use video-publish-pack-template.md to generate per-platform manual publishing packages.