publ betaReference (MCP guide)
Open publ console

publ Reference

media_upload_handoff

Return the authorized channel and installed app's original console destination so the human can select and upload a VOD there. The handoff itself transfers no file and starts no encoding.

The central server now explicitly invokes the handoff method, with read-only, non-destructive and idempotent annotations. It returns the destination without fetching candidates.

Source integration and endpoint availability are separate. That observation did not execute either operation.

Inputs

The strict input object accepts only:

Field Meaning
channelCode The authorized selected channel
pAppCode Exact installed C00001, C00002, C00006, C00007 or C00015

No assetId, file, bytes, base64, path, URL, credential, storage-grant or PUT payload is accepted. There is no requestId, revision or dryRun argument because this is a console handoff, not a new upload journal. Owner/delegate app authorization and exact channel/consumer checks remain required.

Domain result and human action

The handoff contract returns action_required / MEDIA_UPLOAD_CONSOLE_REQUIRED, uploadMode human-console, uploadStarted false and writesPerformed false. It supplies the selected app's console destination without opening a browser or submitting a file. Present that returned destination and explain that the human selects and uploads the file there. Courses use the video-session parent screen and its upload control, identified by consoleDestination parent; do not invent a direct course upload URL.

After the human upload, media_uploads_get can read recent encoding candidates. A candidate ID is not a final post ID; POSTED does not verify publication, playback or subtitle display. Check those outcomes independently. Console work must not be reported as an MCP mutation pass.

Retired direct uploads and recovery

media_upload_apply and the asset view of media_uploads_get are retired. Their old payloads are not alternative inputs for this operation. There is no new hosted VOD picker/ingress, arbitrary-URL download or server reupload in this contract. This VOD-specific direction does not remove or approve subtitle, membership-artwork or content-attachment uploads.

Retain existing media-upload journals and task IDs. task_status and task_resume only observe; no apply/status/resume call continues a historical prepared, grant or upload checkpoint. A post-sent journal may compare the exact prior object with bounded candidate history, but absence does not prove failure or authorize resubmission. Inspect an uncertain task before the human starts another upload. No automatic cleanup, rollback or deleted-object restoration is provided.

See the media workflow guide for the current route and integration boundary.

Input example

Illustrative input for the integrated source contract. Replace selectors with the authorized installed target and confirm that the connected endpoint exposes this operation.

{
  "channelCode": "selected-channel",
  "pAppCode": "C00002"
}