1---2name: video-transcription3description: Transcribe local or remote videos into timed transcripts and subtitle-ready artifacts through PostPlus. Use this when the input is a video and the goal is speech extraction, caption generation, or edit-prep timing.4---56# Video Transcription78## Use When9- The input is a video file and the goal is speech extraction, timed transcript,10 caption generation, multilingual transcript, or edit-prep timestamps.11- Use `video-analysis` instead when the user needs semantic visual analysis.1213## Do Not Use When14- The task belongs to ideation, QA, or another released skill listed in the handoff section.15- Required inputs are missing and guessing would change the result.1617## Execution Boundary18- Hosted video transcription runs through the public `postplus media transcribe`19 verb and is async. The generated example below shows the endpoint key.20- Pass a local path, HTTPS URL, existing PostPlus media reference, or data URI21 directly to `--video`. The CLI validates and prepares local media before the22 single hosted submit.23- Request timestamps by default when results drive subtitles or edit decisions.24- Hosted video transcription is async. Submit records the run handle, current25 status, normalized transcript path, and completed artifacts when available.2627## Source And Path28- Before submit, derive `durationSeconds` from the source video or URL and pass29 it through the endpoint's duration flag for request validation.30- Start with one source file before larger batches.31- Keep internal requests, responses, normalized transcripts, and downloaded32 artifacts under `.postplus/video-transcription`; keep final user-facing33 transcript exports outside `.postplus`.3435## Handoff36- If status is pending, return the manifest path, the `output.data.id` generation37 handle, and the poll command `postplus media poll --handle <output.data.id>`38 (waits in-command up to 45s per invocation; rerun while pending). Do not keep39 the conversation open just to poll.40- When completed, hand off `normalizedTranscriptPath`, downloaded artifacts, and41 final transcript paths to `subtitle-packager` if SRT/ASS is needed.4243## Stop Conditions44- Stop when required user intent, source evidence, or owned input artifacts are45 missing and guessing would change the result.46- If an owned CLI or script command fails, report the exact error and stop. Do47 not bypass the failure with metadata-only answers, readiness probing, local48 payload rewrites, alternate execution paths, or unpublished tools.4950## Public Command Boundary5152- Choose the smallest matching command or workflow from the user input and run53 it directly.54- Readiness diagnostics: `postplus doctor --skill video-transcription`.55- If an owned CLI or script command fails, report the exact error and stop. Do56 not bypass the failure with metadata-only answers, readiness probing, local57 payload rewrites, alternate execution paths, or unpublished tools.58- Use `postplus media schema --json` only when you need the full endpoint, flag,59 and enum contract or are repairing an unknown request shape.60- Run the hosted transcription job with the generated command below; do not use61 another execution interface.62- Pass the source directly through `--video`; do not pre-upload it or construct63 a manual request object.64- If the CLI returns a quote-confirmation challenge, run `postplus quote confirm --json --challenge-file <challenge.json>` and retry with the returned token.6566<!-- BEGIN GENERATED EXECUTION EXAMPLE -->67```bash68postplus media transcribe transcription-video \69 --video ./reference.mp4 \70 --duration-seconds 1 \71 --wait \72 --output ./result.json73```74<!-- END GENERATED EXECUTION EXAMPLE -->