changedOutput schema / oneOf
Previous value: -[
- {
- "properties": {
- "artifacts": {
- "properties": {
- "ass": {
- "properties": {
- "expiresAt": {
- "type": "string"
- },
- "url": {
- "type": "string"
- }
- },
- "required": [
- "url",
- "expiresAt"
- ],
- "type": "object"
- },
- "mp4": {
- "properties": {
- "expiresAt": {
- "type": "string"
- },
- "url": {
- "type": "string"
- }
- },
- "required": [
- "url",
- "expiresAt"
- ],
- "type": "object"
- },
- "srt": {
- "properties": {
- "expiresAt": {
- "type": "string"
- },
- "url": {
- "type": "string"
- }
- },
- "required": [
- "url",
- "expiresAt"
- ],
- "type": "object"
- },
- "vtt": {
- "properties": {
- "expiresAt": {
- "type": "string"
- },
- "url": {
- "type": "string"
- }
- },
- "required": [
- "url",
- "expiresAt"
- ],
- "type": "object"
- },
- "wordsJson": {
- "properties": {
- "expiresAt": {
- "type": "string"
- },
- "url": {
- "type": "string"
- }
- },
- "required": [
- "url",
- "expiresAt"
- ],
- "type": "object"
- }
- },
- "required": [
- "mp4",
- "srt",
- "vtt",
- "ass",
- "wordsJson"
- ],
- "type": "object"
- },
- "balance": {
- "properties": {
- "paidRemainingSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "remainingSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "reservedSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "topUpUrl": {
- "anyOf": [
- {
- "format": "uri",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "trialRemainingSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "remainingSeconds",
- "trialRemainingSeconds",
- "paidRemainingSeconds",
- "reservedSeconds",
- "topUpUrl"
- ],
- "type": "object"
- },
- "balanceWarning": {
- "anyOf": [
- {
- "properties": {
- "code": {
- "const": "low_balance",
- "type": "string"
- },
- "message": {
- "type": "string"
- },
- "topUpUrl": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message",
- "topUpUrl"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "chargedSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "dictionaryCapacityApplied": {
- "anyOf": [
- {
- "anyOf": [
- {
- "const": 0,
- "type": "number"
- },
- {
- "const": 1000,
- "type": "number"
- }
- ]
- },
- {
- "type": "null"
- }
- ]
- },
- "durationSeconds": {
- "anyOf": [
- {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ]
- },
- "error": {
- "type": "null"
- },
- "expiresAt": {
- "type": "string"
- },
- "jobId": {
- "type": "string"
- },
- "preset": {
- "enum": [
- "highlight",
- "clean",
- "boxed"
- ],
- "type": "string"
- },
- "render": {
- "anyOf": [
- {
- "properties": {
- "error": {
- "anyOf": [
- {
- "properties": {
- "code": {
- "enum": [
- "unauthenticated",
- "job_not_found",
- "invalid_source",
- "invalid_request",
- "upload_incomplete",
- "upload_url_expired",
- "checksum_mismatch",
- "file_size_limit_exceeded",
- "invalid_media",
- "probe_failed",
- "unsupported_ratio",
- "unsupported_input",
- "duration_limit_exceeded",
- "trial_duration_limit_exceeded",
- "insufficient_balance",
- "trial_concurrency_limit",
- "concurrency_limit",
- "unsupported_source_url",
- "url_fetch_failed",
- "rerenders_exhausted",
- "rerender_window_expired",
- "processing_unavailable"
- ],
- "type": "string"
- },
- "details": {
- "additionalProperties": {},
- "default": {},
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "message": {
- "type": "string"
- },
- "retryable": {
- "type": "boolean"
- }
- },
- "required": [
- "code",
- "message",
- "retryable"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "status": {
- "enum": [
- "accepted",
- "completed",
- "failed"
- ],
- "type": "string"
- },
- "version": {
- "maximum": 9007199254740991,
- "minimum": 2,
- "type": "integer"
- }
- },
- "required": [
- "version",
- "status",
- "error"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "rerenderFailureLimitReached": {
- "default": false,
- "type": "boolean"
- },
- "rerendersRemaining": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "retryAfterSeconds": {
- "anyOf": [
- {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ]
- },
- "status": {
- "const": "completed",
- "type": "string"
- }
- },
- "required": [
- "jobId",
- "preset",
- "durationSeconds",
- "retryAfterSeconds",
- "balance",
- "balanceWarning",
- "rerendersRemaining",
- "dictionaryCapacityApplied",
- "status",
- "chargedSeconds",
- "artifacts",
- "expiresAt",
- "error",
- "render"
- ],
- "type": "object"
- },
- {
- "properties": {
- "artifacts": {
- "type": "null"
- },
- "balance": {
- "properties": {
- "paidRemainingSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "remainingSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "reservedSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "topUpUrl": {
- "anyOf": [
- {
- "format": "uri",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "trialRemainingSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "remainingSeconds",
- "trialRemainingSeconds",
- "paidRemainingSeconds",
- "reservedSeconds",
- "topUpUrl"
- ],
- "type": "object"
- },
- "balanceWarning": {
- "anyOf": [
- {
- "properties": {
- "code": {
- "const": "low_balance",
- "type": "string"
- },
- "message": {
- "type": "string"
- },
- "topUpUrl": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message",
- "topUpUrl"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "chargedSeconds": {
- "type": "null"
- },
- "dictionaryCapacityApplied": {
- "anyOf": [
- {
- "anyOf": [
- {
- "const": 0,
- "type": "number"
- },
- {
- "const": 1000,
- "type": "number"
- }
- ]
- },
- {
- "type": "null"
- }
- ]
- },
- "durationSeconds": {
- "anyOf": [
- {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ]
- },
- "error": {
- "properties": {
- "code": {
- "enum": [
- "unauthenticated",
- "job_not_found",
- "invalid_source",
- "invalid_request",
- "upload_incomplete",
- "upload_url_expired",
- "checksum_mismatch",
- "file_size_limit_exceeded",
- "invalid_media",
- "probe_failed",
- "unsupported_ratio",
- "unsupported_input",
- "duration_limit_exceeded",
- "trial_duration_limit_exceeded",
- "insufficient_balance",
- "trial_concurrency_limit",
- "concurrency_limit",
- "unsupported_source_url",
- "url_fetch_failed",
- "rerenders_exhausted",
- "rerender_window_expired",
- "processing_unavailable"
- ],
- "type": "string"
- },
- "details": {
- "additionalProperties": {},
- "default": {},
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "message": {
- "type": "string"
- },
- "retryable": {
- "type": "boolean"
- }
- },
- "required": [
- "code",
- "message",
- "retryable"
- ],
- "type": "object"
- },
- "expiresAt": {
- "type": "null"
- },
- "jobId": {
- "type": "string"
- },
- "preset": {
- "enum": [
- "highlight",
- "clean",
- "boxed"
- ],
- "type": "string"
- },
- "rerendersRemaining": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "retryAfterSeconds": {
- "anyOf": [
- {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ]
- },
- "status": {
- "const": "failed",
- "type": "string"
- }
- },
- "required": [
- "jobId",
- "preset",
- "durationSeconds",
- "retryAfterSeconds",
- "balance",
- "balanceWarning",
- "rerendersRemaining",
- "dictionaryCapacityApplied",
- "status",
- "chargedSeconds",
- "artifacts",
- "expiresAt",
- "error"
- ],
- "type": "object"
- },
- {
- "properties": {
- "artifacts": {
- "type": "null"
- },
- "balance": {
- "properties": {
- "paidRemainingSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "remainingSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "reservedSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "topUpUrl": {
- "anyOf": [
- {
- "format": "uri",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "trialRemainingSeconds": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "remainingSeconds",
- "trialRemainingSeconds",
- "paidRemainingSeconds",
- "reservedSeconds",
- "topUpUrl"
- ],
- "type": "object"
- },
- "balanceWarning": {
- "anyOf": [
- {
- "properties": {
- "code": {
- "const": "low_balance",
- "type": "string"
- },
- "message": {
- "type": "string"
- },
- "topUpUrl": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message",
- "topUpUrl"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "chargedSeconds": {
- "type": "null"
- },
- "dictionaryCapacityApplied": {
- "anyOf": [
- {
- "anyOf": [
- {
- "const": 0,
- "type": "number"
- },
- {
- "const": 1000,
- "type": "number"
- }
- ]
- },
- {
- "type": "null"
- }
- ]
- },
- "durationSeconds": {
- "anyOf": [
- {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ]
- },
- "error": {
- "type": "null"
- },
- "expiresAt": {
- "type": "null"
- },
- "jobId": {
- "type": "string"
- },
- "preset": {
- "enum": [
- "highlight",
- "clean",
- "boxed"
- ],
- "type": "string"
- },
- "rerendersRemaining": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "retryAfterSeconds": {
- "anyOf": [
- {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ]
- },
- "status": {
- "enum": [
- "upload_pending",
- "probing",
- "reserved",
- "processing"
- ],
- "type": "string"
- }
- },
- "required": [
- "jobId",
- "preset",
- "durationSeconds",
- "retryAfterSeconds",
- "balance",
- "balanceWarning",
- "rerendersRemaining",
- "dictionaryCapacityApplied",
- "status",
- "chargedSeconds",
- "artifacts",
- "expiresAt",
- "error"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "properties": {
+ "artifacts": {
+ "properties": {
+ "ass": {
+ "properties": {
+ "expiresAt": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "url",
+ "expiresAt"
+ ],
+ "type": "object"
+ },
+ "mp4": {
+ "properties": {
+ "expiresAt": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "url",
+ "expiresAt"
+ ],
+ "type": "object"
+ },
+ "srt": {
+ "properties": {
+ "expiresAt": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "url",
+ "expiresAt"
+ ],
+ "type": "object"
+ },
+ "vtt": {
+ "properties": {
+ "expiresAt": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "url",
+ "expiresAt"
+ ],
+ "type": "object"
+ },
+ "wordsJson": {
+ "properties": {
+ "expiresAt": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "url",
+ "expiresAt"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "mp4",
+ "srt",
+ "vtt",
+ "ass",
+ "wordsJson"
+ ],
+ "type": "object"
+ },
+ "balance": {
+ "properties": {
+ "paidRemainingSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "remainingSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "reservedSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "topUpUrl": {
+ "anyOf": [
+ {
+ "format": "uri",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "trialRemainingSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "remainingSeconds",
+ "trialRemainingSeconds",
+ "paidRemainingSeconds",
+ "reservedSeconds",
+ "topUpUrl"
+ ],
+ "type": "object"
+ },
+ "balanceWarning": {
+ "anyOf": [
+ {
+ "properties": {
+ "code": {
+ "const": "low_balance",
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "topUpUrl": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "message",
+ "topUpUrl"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "chargedSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "dictionaryCapacityApplied": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "const": 0,
+ "type": "number"
+ },
+ {
+ "const": 1000,
+ "type": "number"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "durationSeconds": {
+ "anyOf": [
+ {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "error": {
+ "type": "null"
+ },
+ "expiresAt": {
+ "type": "string"
+ },
+ "jobId": {
+ "type": "string"
+ },
+ "preset": {
+ "enum": [
+ "highlight",
+ "clean",
+ "boxed",
+ "karaoke",
+ "word",
+ "punch",
+ "wordbox",
+ "reveal",
+ "glow"
+ ],
+ "type": "string"
+ },
+ "render": {
+ "anyOf": [
+ {
+ "properties": {
+ "error": {
+ "anyOf": [
+ {
+ "properties": {
+ "code": {
+ "enum": [
+ "unauthenticated",
+ "job_not_found",
+ "invalid_source",
+ "invalid_request",
+ "upload_incomplete",
+ "upload_url_expired",
+ "checksum_mismatch",
+ "file_size_limit_exceeded",
+ "invalid_media",
+ "probe_failed",
+ "unsupported_ratio",
+ "unsupported_input",
+ "duration_limit_exceeded",
+ "trial_duration_limit_exceeded",
+ "insufficient_balance",
+ "trial_concurrency_limit",
+ "concurrency_limit",
+ "unsupported_source_url",
+ "url_fetch_failed",
+ "rerenders_exhausted",
+ "rerender_window_expired",
+ "processing_unavailable"
+ ],
+ "type": "string"
+ },
+ "details": {
+ "additionalProperties": {},
+ "default": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "message": {
+ "type": "string"
+ },
+ "retryable": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "code",
+ "message",
+ "retryable"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "enum": [
+ "accepted",
+ "completed",
+ "failed"
+ ],
+ "type": "string"
+ },
+ "version": {
+ "maximum": 9007199254740991,
+ "minimum": 2,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "version",
+ "status",
+ "error"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "rerenderFailureLimitReached": {
+ "default": false,
+ "type": "boolean"
+ },
+ "rerendersRemaining": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "retryAfterSeconds": {
+ "anyOf": [
+ {
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "const": "completed",
+ "type": "string"
+ },
+ "style": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "animation": {
+ "description": "How each caption arrives: none (the default), or pop (scales in with a small overshoot).",
+ "enum": [
+ "none",
+ "pop"
+ ],
+ "type": "string"
+ },
+ "boxColor": {
+ "description": "The plate colour on boxed, default black. wordbox's box marks the spoken word, so highlightColor sets it.",
+ "pattern": "^#?[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "boxPadding": {
+ "description": "Box padding as a percent of the text size, 5 to 60, on boxed (default 22) and wordbox (default 18).",
+ "maximum": 60,
+ "minimum": 5,
+ "type": "integer"
+ },
+ "breakOnSentence": {
+ "description": "Start a new caption after every . ! ? or …, so no caption spans two sentences. Default off.",
+ "type": "boolean"
+ },
+ "fontSize": {
+ "description": "Text size as a percent of the preset's own size, 50 to 200, default 100. Above 100 it is a maximum: a word too wide for the frame is shrunk to fit. Bigger text puts fewer words on each caption.",
+ "maximum": 200,
+ "minimum": 50,
+ "type": "integer"
+ },
+ "highlightColor": {
+ "description": "The spoken word's colour as a hex RGB such as #FFE500: its text on highlight and punch, the sweep on karaoke, its box on wordbox. Defaults to the CaptionPipe accent (yellow on punch).",
+ "pattern": "^#?[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "maxWords": {
+ "description": "At most this many words on screen at once, 1 to 12. Default unlimited (a character budget applies), 1 on word, 3 on punch.",
+ "maximum": 12,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "offsetY": {
+ "description": "Distance from the bottom or top edge, as a percent of the frame height, 0 to 45. Default 22 on a portrait video, 12 on 16:9. Ignored when position is middle.",
+ "maximum": 45,
+ "minimum": 0,
+ "type": "number"
+ },
+ "outlineColor": {
+ "description": "The outline colour as a hex RGB, or the halo's on glow. Default black, violet on glow. Ignored by boxed, whose plate replaces the outline.",
+ "pattern": "^#?[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "paddingX": {
+ "description": "Space kept clear at each side, as a percent of the frame width, 0 to 20. Default 9 on a portrait video (clear of TikTok's side icons), 6 on 16:9.",
+ "maximum": 20,
+ "minimum": 0,
+ "type": "number"
+ },
+ "position": {
+ "description": "Where captions sit: bottom, middle or top. Default middle on word, bottom on every other preset.",
+ "enum": [
+ "bottom",
+ "middle",
+ "top"
+ ],
+ "type": "string"
+ },
+ "textColor": {
+ "description": "The text colour as a hex RGB. Default white.",
+ "pattern": "^#?[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "uppercase": {
+ "description": "Burn the captions in capitals. Default off, on for punch. The SRT, VTT and words.json keep normal case.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "jobId",
+ "preset",
+ "style",
+ "durationSeconds",
+ "retryAfterSeconds",
+ "balance",
+ "balanceWarning",
+ "rerendersRemaining",
+ "dictionaryCapacityApplied",
+ "status",
+ "chargedSeconds",
+ "artifacts",
+ "expiresAt",
+ "error",
+ "render"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "artifacts": {
+ "type": "null"
+ },
+ "balance": {
+ "properties": {
+ "paidRemainingSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "remainingSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "reservedSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "topUpUrl": {
+ "anyOf": [
+ {
+ "format": "uri",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "trialRemainingSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "remainingSeconds",
+ "trialRemainingSeconds",
+ "paidRemainingSeconds",
+ "reservedSeconds",
+ "topUpUrl"
+ ],
+ "type": "object"
+ },
+ "balanceWarning": {
+ "anyOf": [
+ {
+ "properties": {
+ "code": {
+ "const": "low_balance",
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "topUpUrl": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "message",
+ "topUpUrl"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "chargedSeconds": {
+ "type": "null"
+ },
+ "dictionaryCapacityApplied": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "const": 0,
+ "type": "number"
+ },
+ {
+ "const": 1000,
+ "type": "number"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "durationSeconds": {
+ "anyOf": [
+ {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "error": {
+ "properties": {
+ "code": {
+ "enum": [
+ "unauthenticated",
+ "job_not_found",
+ "invalid_source",
+ "invalid_request",
+ "upload_incomplete",
+ "upload_url_expired",
+ "checksum_mismatch",
+ "file_size_limit_exceeded",
+ "invalid_media",
+ "probe_failed",
+ "unsupported_ratio",
+ "unsupported_input",
+ "duration_limit_exceeded",
+ "trial_duration_limit_exceeded",
+ "insufficient_balance",
+ "trial_concurrency_limit",
+ "concurrency_limit",
+ "unsupported_source_url",
+ "url_fetch_failed",
+ "rerenders_exhausted",
+ "rerender_window_expired",
+ "processing_unavailable"
+ ],
+ "type": "string"
+ },
+ "details": {
+ "additionalProperties": {},
+ "default": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "message": {
+ "type": "string"
+ },
+ "retryable": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "code",
+ "message",
+ "retryable"
+ ],
+ "type": "object"
+ },
+ "expiresAt": {
+ "type": "null"
+ },
+ "jobId": {
+ "type": "string"
+ },
+ "preset": {
+ "enum": [
+ "highlight",
+ "clean",
+ "boxed",
+ "karaoke",
+ "word",
+ "punch",
+ "wordbox",
+ "reveal",
+ "glow"
+ ],
+ "type": "string"
+ },
+ "rerendersRemaining": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "retryAfterSeconds": {
+ "anyOf": [
+ {
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "const": "failed",
+ "type": "string"
+ },
+ "style": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "animation": {
+ "description": "How each caption arrives: none (the default), or pop (scales in with a small overshoot).",
+ "enum": [
+ "none",
+ "pop"
+ ],
+ "type": "string"
+ },
+ "boxColor": {
+ "description": "The plate colour on boxed, default black. wordbox's box marks the spoken word, so highlightColor sets it.",
+ "pattern": "^#?[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "boxPadding": {
+ "description": "Box padding as a percent of the text size, 5 to 60, on boxed (default 22) and wordbox (default 18).",
+ "maximum": 60,
+ "minimum": 5,
+ "type": "integer"
+ },
+ "breakOnSentence": {
+ "description": "Start a new caption after every . ! ? or …, so no caption spans two sentences. Default off.",
+ "type": "boolean"
+ },
+ "fontSize": {
+ "description": "Text size as a percent of the preset's own size, 50 to 200, default 100. Above 100 it is a maximum: a word too wide for the frame is shrunk to fit. Bigger text puts fewer words on each caption.",
+ "maximum": 200,
+ "minimum": 50,
+ "type": "integer"
+ },
+ "highlightColor": {
+ "description": "The spoken word's colour as a hex RGB such as #FFE500: its text on highlight and punch, the sweep on karaoke, its box on wordbox. Defaults to the CaptionPipe accent (yellow on punch).",
+ "pattern": "^#?[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "maxWords": {
+ "description": "At most this many words on screen at once, 1 to 12. Default unlimited (a character budget applies), 1 on word, 3 on punch.",
+ "maximum": 12,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "offsetY": {
+ "description": "Distance from the bottom or top edge, as a percent of the frame height, 0 to 45. Default 22 on a portrait video, 12 on 16:9. Ignored when position is middle.",
+ "maximum": 45,
+ "minimum": 0,
+ "type": "number"
+ },
+ "outlineColor": {
+ "description": "The outline colour as a hex RGB, or the halo's on glow. Default black, violet on glow. Ignored by boxed, whose plate replaces the outline.",
+ "pattern": "^#?[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "paddingX": {
+ "description": "Space kept clear at each side, as a percent of the frame width, 0 to 20. Default 9 on a portrait video (clear of TikTok's side icons), 6 on 16:9.",
+ "maximum": 20,
+ "minimum": 0,
+ "type": "number"
+ },
+ "position": {
+ "description": "Where captions sit: bottom, middle or top. Default middle on word, bottom on every other preset.",
+ "enum": [
+ "bottom",
+ "middle",
+ "top"
+ ],
+ "type": "string"
+ },
+ "textColor": {
+ "description": "The text colour as a hex RGB. Default white.",
+ "pattern": "^#?[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "uppercase": {
+ "description": "Burn the captions in capitals. Default off, on for punch. The SRT, VTT and words.json keep normal case.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "jobId",
+ "preset",
+ "style",
+ "durationSeconds",
+ "retryAfterSeconds",
+ "balance",
+ "balanceWarning",
+ "rerendersRemaining",
+ "dictionaryCapacityApplied",
+ "status",
+ "chargedSeconds",
+ "artifacts",
+ "expiresAt",
+ "error"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "artifacts": {
+ "type": "null"
+ },
+ "balance": {
+ "properties": {
+ "paidRemainingSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "remainingSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "reservedSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "topUpUrl": {
+ "anyOf": [
+ {
+ "format": "uri",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "trialRemainingSeconds": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "remainingSeconds",
+ "trialRemainingSeconds",
+ "paidRemainingSeconds",
+ "reservedSeconds",
+ "topUpUrl"
+ ],
+ "type": "object"
+ },
+ "balanceWarning": {
+ "anyOf": [
+ {
+ "properties": {
+ "code": {
+ "const": "low_balance",
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "topUpUrl": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "message",
+ "topUpUrl"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "chargedSeconds": {
+ "type": "null"
+ },
+ "dictionaryCapacityApplied": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "const": 0,
+ "type": "number"
+ },
+ {
+ "const": 1000,
+ "type": "number"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "durationSeconds": {
+ "anyOf": [
+ {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "error": {
+ "type": "null"
+ },
+ "expiresAt": {
+ "type": "null"
+ },
+ "jobId": {
+ "type": "string"
+ },
+ "preset": {
+ "enum": [
+ "highlight",
+ "clean",
+ "boxed",
+ "karaoke",
+ "word",
+ "punch",
+ "wordbox",
+ "reveal",
+ "glow"
+ ],
+ "type": "string"
+ },
+ "rerendersRemaining": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "retryAfterSeconds": {
+ "anyOf": [
+ {
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "enum": [
+ "upload_pending",
+ "probing",
+ "reserved",
+ "processing"
+ ],
+ "type": "string"
+ },
+ "style": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "animation": {
+ "description": "How each caption arrives: none (the default), or pop (scales in with a small overshoot).",
+ "enum": [
+ "none",
+ "pop"
+ ],
+ "type": "string"
+ },
+ "boxColor": {
+ "description": "The plate colour on boxed, default black. wordbox's box marks the spoken word, so highlightColor sets it.",
+ "pattern": "^#?[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "boxPadding": {
+ "description": "Box padding as a percent of the text size, 5 to 60, on boxed (default 22) and wordbox (default 18).",
+ "maximum": 60,
+ "minimum": 5,
+ "type": "integer"
+ },
+ "breakOnSentence": {
+ "description": "Start a new caption after every . ! ? or …, so no caption spans two sentences. Default off.",
+ "type": "boolean"
+ },
+ "fontSize": {
+ "description": "Text size as a percent of the preset's own size, 50 to 200, default 100. Above 100 it is a maximum: a word too wide for the frame is shrunk to fit. Bigger text puts fewer words on each caption.",
+ "maximum": 200,
+ "minimum": 50,
+ "type": "integer"
+ },
+ "highlightColor": {
+ "description": "The spoken word's colour as a hex RGB such as #FFE500: its text on highlight and punch, the sweep on karaoke, its box on wordbox. Defaults to the CaptionPipe accent (yellow on punch).",
+ "pattern": "^#?[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "maxWords": {
+ "description": "At most this many words on screen at once, 1 to 12. Default unlimited (a character budget applies), 1 on word, 3 on punch.",
+ "maximum": 12,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "offsetY": {
+ "description": "Distance from the bottom or top edge, as a percent of the frame height, 0 to 45. Default 22 on a portrait video, 12 on 16:9. Ignored when position is middle.",
+ "maximum": 45,
+ "minimum": 0,
+ "type": "number"
+ },
+ "outlineColor": {
+ "description": "The outline colour as a hex RGB, or the halo's on glow. Default black, violet on glow. Ignored by boxed, whose plate replaces the outline.",
+ "pattern": "^#?[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "paddingX": {
+ "description": "Space kept clear at each side, as a percent of the frame width, 0 to 20. Default 9 on a portrait video (clear of TikTok's side icons), 6 on 16:9.",
+ "maximum": 20,
+ "minimum": 0,
+ "type": "number"
+ },
+ "position": {
+ "description": "Where captions sit: bottom, middle or top. Default middle on word, bottom on every other preset.",
+ "enum": [
+ "bottom",
+ "middle",
+ "top"
+ ],
+ "type": "string"
+ },
+ "textColor": {
+ "description": "The text colour as a hex RGB. Default white.",
+ "pattern": "^#?[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "uppercase": {
+ "description": "Burn the captions in capitals. Default off, on for punch. The SRT, VTT and words.json keep normal case.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "jobId",
+ "preset",
+ "style",
+ "durationSeconds",
+ "retryAfterSeconds",
+ "balance",
+ "balanceWarning",
+ "rerendersRemaining",
+ "dictionaryCapacityApplied",
+ "status",
+ "chargedSeconds",
+ "artifacts",
+ "expiresAt",
+ "error"
+ ],
+ "type": "object"
+ }
+]