publ betaReference (MCP guide)
Open publ console

publ Reference

serial_episode_upload_apply

Uploads one episode video as a new private episode, as the upload manager does in the Serial VOD app (pApp C00006). The file goes from this computer to storage: measure the video on this computer first (duration, frame rate, width, height), as the console measures before upload, and start with upload local-file (filename, byteLength) plus those facts as video, so the console limits are checked before anything is sent; PUT the parts from the presigned URLs, then complete with the part ETags and the same facts. A Google Drive or other link is downloaded to this computer first. MP4, MOV or MKV up to 100 GB. Each answer includes the console upload screen. The episode joins a series through the series episode tools, as the console series screen does; encoding progress shows in serial_uploads_get and the console upload manager. Status/resume observe the original task; nothing is re-sent. Called without confirmToken it previews and returns a confirmToken; repeating the same input with it executes once.

Inputs

Field Required here Contract
target No
upload Yes one of: local-file, more-parts, complete, cancel (by kind)
upload.filename Yes When upload.kind is local-file: string; min length 1; max length 240; pattern ^[^/\\:\x00-\x1f\x7f]+$; The name of the file on this computer, with its extension.
upload.byteLength Yes When upload.kind is local-file: integer; greater than 0; The exact file size in bytes (for example from wc -c < FILE or stat).
upload.sha256 No When upload.kind is local-file: string; pattern ^[0-9a-f]{64}$; The SHA-256 of the file in lowercase hex (shasum -a 256 FILE). Required when the upload answers UPLOAD_CHECKSUM_REQUIRED.
upload.uploadId Yes When upload.kind is more-parts: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.fromPart Yes When upload.kind is more-parts: integer; minimum 1; maximum 10000
upload.uploadId Yes When upload.kind is complete: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.parts Yes When upload.kind is complete: array; min items 1; max items 10000
upload.parts[].partNumber Yes When upload.kind is complete: integer; minimum 1; maximum 10000
upload.parts[].etag Yes When upload.kind is complete: string; min length 1; max length 200
upload.measured No When upload.kind is complete: object; What the video measures on this computer, read with measureCommand.
upload.measured.durationSeconds Yes When upload.kind is complete: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
upload.measured.frameRate Yes When upload.kind is complete: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
upload.measured.width Yes When upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.height Yes When upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.frameRateMode No When upload.kind is complete: CFR, VFR; Constant or variable frame rate, when the tool reports it.
upload.measured.minFrameRate No When upload.kind is complete: number; maximum 1000; greater than 0
upload.measured.maxFrameRate No When upload.kind is complete: number; maximum 1000; greater than 0
upload.uploadId Yes When upload.kind is cancel: string; pattern ^upl_[A-Za-z0-9_-]{22}$
video No object
video.durationSeconds Yes number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
video.frameRate Yes number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
video.width Yes integer; maximum 100000; greater than 0
video.height Yes integer; maximum 100000; greater than 0
video.frameRateMode No CFR, VFR; Constant or variable frame rate, when the tool reports it.
video.minFrameRate No number; maximum 1000; greater than 0
video.maxFrameRate No number; maximum 1000; greater than 0
video.videoCodec No string; min length 1; max length 40; OTT title trailer only: the video codec_name from ffprobe (h264).
video.audioCodec No string; min length 1; max length 40 or null; OTT title trailer only: the audio codec_name from ffprobe (aac), or null without audio.
thumbnailImageTaskId No string; pattern ^[A-Za-z0-9_-]{8,80}$; Course only: a completed course-video-thumbnail task used as the video thumbnail.
confirmToken No string; pattern ^ct[a-f\d]{32}$; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute.