town.delve.video.startUpload

delve.town

Documentation

Start a multipart video upload. The declared size is exact, while optional media properties are advisory and used only for early failure; the authoritative probe runs asynchronously after upload.

main procedure

Start a multipart video upload. The declared size is exact, while optional media properties are advisory and used only for early failure; the authoritative probe runs asynchronously after upload.

Input

Encodingapplication/json
durationMs integer Optional

Advisory, non-authoritative duration used only for early failure; the authoritative probe runs asynchronously after upload.

height integer Optional

Advisory, non-authoritative height used only for early failure; the authoritative probe runs asynchronously after upload.

mimeType string Required

Declared MIME type of the video.

maxLength: 255 bytesminLength: 3 bytes
name string Optional

Optional client-provided file name.

maxLength: 256 bytes
sizeBytes integer Required

Exact byte size of the complete upload-ready video file before it is split into parts.

minimum: 1
width integer Optional

Advisory, non-authoritative width used only for early failure; the authoritative probe runs asynchronously after upload.

Output

Encodingapplication/json
expiresAt stringdatetime Required

An RFC 3339 formatted timestamp.

jobId string Required

No description available.

partCount integer Required

No description available.

partSizeBytes integer Required

No description available.

Errors

UnsupportedContentType The declared MIME type is not supported.
VideoTooLarge The exact file size exceeds the per-file cap or remaining daily byte allowance.
VideoTooLong The advisory declared duration exceeds the limit.
BadAspectRatio The advisory declared dimensions have an unsupported aspect ratio.
DailyLimitExceeded The daily video or byte allowance, including active reservations, is exhausted.
TooManyOpenUploads The account has reached its open multipart upload limit.
UploadForbidden The account is not permitted to upload video.
ServiceOverloaded The service is draining, at capacity, or temporarily unable to create the multipart upload.
Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://bsky.social)
Enter valid JSON for the request body
View raw schema
{
  "description": "Start a multipart video upload. The declared size is exact, while optional media properties are advisory and used only for early failure; the authoritative probe runs asynchronously after upload.",
  "errors": [
    {
      "description": "The declared MIME type is not supported.",
      "name": "UnsupportedContentType"
    },
    {
      "description": "The exact file size exceeds the per-file cap or remaining daily byte allowance.",
      "name": "VideoTooLarge"
    },
    {
      "description": "The advisory declared duration exceeds the limit.",
      "name": "VideoTooLong"
    },
    {
      "description": "The advisory declared dimensions have an unsupported aspect ratio.",
      "name": "BadAspectRatio"
    },
    {
      "description": "The daily video or byte allowance, including active reservations, is exhausted.",
      "name": "DailyLimitExceeded"
    },
    {
      "description": "The account has reached its open multipart upload limit.",
      "name": "TooManyOpenUploads"
    },
    {
      "description": "The account is not permitted to upload video.",
      "name": "UploadForbidden"
    },
    {
      "description": "The service is draining, at capacity, or temporarily unable to create the multipart upload.",
      "name": "ServiceOverloaded"
    }
  ],
  "input": {
    "encoding": "application/json",
    "schema": {
      "properties": {
        "durationMs": {
          "description": "Advisory, non-authoritative duration used only for early failure; the authoritative probe runs asynchronously after upload.",
          "type": "integer"
        },
        "height": {
          "description": "Advisory, non-authoritative height used only for early failure; the authoritative probe runs asynchronously after upload.",
          "type": "integer"
        },
        "mimeType": {
          "description": "Declared MIME type of the video.",
          "maxLength": 255,
          "minLength": 3,
          "type": "string"
        },
        "name": {
          "description": "Optional client-provided file name.",
          "maxLength": 256,
          "type": "string"
        },
        "sizeBytes": {
          "description": "Exact byte size of the complete upload-ready video file before it is split into parts.",
          "minimum": 1,
          "type": "integer"
        },
        "width": {
          "description": "Advisory, non-authoritative width used only for early failure; the authoritative probe runs asynchronously after upload.",
          "type": "integer"
        }
      },
      "required": [
        "sizeBytes",
        "mimeType"
      ],
      "type": "object"
    }
  },
  "output": {
    "encoding": "application/json",
    "schema": {
      "properties": {
        "expiresAt": {
          "format": "datetime",
          "type": "string"
        },
        "jobId": {
          "maxLength": 256,
          "minLength": 1,
          "type": "string"
        },
        "partCount": {
          "type": "integer"
        },
        "partSizeBytes": {
          "type": "integer"
        }
      },
      "required": [
        "jobId",
        "partSizeBytes",
        "partCount",
        "expiresAt"
      ],
      "type": "object"
    }
  },
  "type": "procedure"
}

Lexicon Garden

@