Video Batch Runner
This is the single PostPlus video-generation skill. It owns creative request assembly and execution across released video models; do not create a separate architect, preflight report, reference contract, or model-specific submitter.
Workflow
- Read the brief and inspect the supplied media. Use
video-analysisfirst only when understanding an existing video materially changes the new render. - Run
postplus media schema --json, choose the smallest released endpoint whose input roles match the job, then load its exact fields withpostplus media schema --endpoint <endpoint> --json:- no driving media: text-to-video
- one opening image: image/first-frame-to-video
- locked opening and closing images: first-last-frame-to-video
- several images, videos, or audios that guide the result: reference video
- change an existing video's content: video edit
- continue an existing video: video extend
- portrait plus approved audio: talking head
- identity image plus motion source video: motion transfer
- Decide each asset's role from the task. Bind identity, product, first/last frame, timing, or motion only when the asset must control that property. Treat style and benchmark media as inspiration, and omit media that should not influence the render. Never infer a role merely because a file is present.
- Write one self-contained, model-facing prompt per clip. Include the visible
subject and action, product behavior, scene, camera, timing, speech/sound,
continuity, and the role of every submitted reference. Use explicit
[image N],[video N], and[audio N]bindings when the selected endpoint accepts numbered references. - Validate fields, enum values, defaults, cardinality, and duration against the current schema. Do not carry private execution field tables in this skill. If one clip exceeds the supported duration or creative load, split it into independent prompts before spending.
- Pass each local path, HTTPS URL, existing PostPlus media reference, or data URI directly to the matching role flag. The CLI validates and prepares local media before a single hosted submit. Use only fields published by the selected endpoint; do not pre-upload media or construct private payloads.
- Prefer
--waitwhen the expected runtime fits the command budget. If create still returns pending, poll the same run withpostplus media poll --handle <output.data.id>. Re-run that poll while pending; never submit a replacement request merely to check status. - When a local final file is needed, download the completed output with
postplus media-file download --url <fresh-output-url> --output-file <path> --skill video-batch-runner. - Return the actual result, downloaded media or result path, endpoint, prompt,
submitted media roles, and run handle. Send the finished render to
video-analysisorcreative-qaonly when final media QA is requested.
Execution Rules
- PostPlus schema is the source of truth for endpoint availability, input fields, enums, and defaults.
- Use the released
postplusCLI. Do not call underlying services directly, invent private fields, or create a service-specific submitter skill. - Keep private request/result files under the active work folder's
.postplus/state; do not manufacture contract or planning artifacts for handoff. - If the CLI returns a quote-confirmation challenge, show it to the user, run
postplus quote confirm --json --challenge-file <challenge.json>only after approval, then retry the exact operation with the returned token. - On an auth, transport, quota, malformed-request, capability, or execution failure, report the typed error and stop. Do not switch endpoints, rewrite the request, or claim a local plan is an executed render.
- In a batch, only the typed error
postplus_cli_hosted_media_content_policy_blockedis item-local: record that item as blocked without rewriting or retrying it, continue the independent items, and report the incomplete set. Every other error stops the batch.
Public Command Boundary
- Readiness:
postplus doctor --skill video-batch-runner - Discover endpoints:
postplus media schema --json - Read selected endpoint fields:
postplus media schema --endpoint <endpoint> --json - Submit local or remote role media directly:
postplus media create <endpoint> --skill video-batch-runner ... --wait - Resume:
postplus media poll --handle <output.data.id> - Download:
postplus media-file download --url <fresh-output-url> --output-file <path> --skill video-batch-runner
postplus media create video-kling-v3-0-pro-text \
--prompt "Describe the result you need" \
--wait \
--output ./result.json