Sources

Create a source upload (video, audio, image, or LUT)

Returns a sourceId and a pre-signed S3 URL. PUT the file bytes to uploadUrl, then reference sourceId from clips, layouts (b-roll media), overlays, or backgrounds. For a 3D .cube LUT use kind: "lut", omit dimensions and duration, upload unchanged, then save it with POST /v1/library and apply the returned item id with PATCH /v1/videos/{id}/clips/{clipId}/filters. Use kind: "image" for images (no duration); Tella hosts the bytes for rendering, so you never deal with raw image URLs. To reuse an uploaded source in other videos, save it to the workspace library with POST /v1/library (scope: "workspace"); GET /v1/library then finds it from any video.

post/v1/sources

Request

  • Base URL: https://api.tella.com
  • URL: https://api.tella.com/v1/sources
  • Auth: HTTP bearer

Request body

durationnumber

Duration in seconds. Required for video and audio; omit for image, lut and font.

heightinteger

Height in pixels. Required for video and image; omit for audio, lut and font.

kind'video' | 'audio' | 'image' | 'lut' | 'font'

Source kind: video (default), audio (e.g. sound effects), image, lut (a 3D .cube LUT), or font (a .ttf or .otf file).

widthinteger

Width in pixels. Required for video and image; omit for audio, lut and font.

Response

OK

expiresAtstring date-time required

ISO-8601 timestamp at which uploadUrl stops accepting uploads.

sourceIdstring required

ID of the new source.

uploadUrlstring uri required

Pre-signed S3 URL. PUT the file bytes here (single PUT, max ~5GB). Upload the file as-is: any common container is accepted (MP4, MOV, WebM, MP3, WAV, M4A, …) — the .mp4 in the URL path is just the storage key, not a container requirement.

Changes

No recorded changes to this operation across all 1 revision of this API.