.cube LUT to color-grade clips. Create a source, upload the bytes to the returned pre-signed URL, then reference the sourceId from create_video, upload_clip, add_layout / update_layout, add_overlay, update_clip, set_background_music, or add_sound_effect.
create_source
Create a new source upload. Returns asourceId and a pre-signed uploadUrl — PUT the file bytes to uploadUrl (the URL expires after 1 hour).
Once uploaded, the sourceId is accepted by:
Upload the file as-is: any common container is accepted (MP4, MOV, WebM, MP3, WAV, M4A, …). The
.mp4 in the upload URL is just the storage key, not a container requirement — there’s no need to remux or re-encode before uploading.
For audio files, set kind: "audio" with the audio’s duration and omit width / height.
For images, set kind: "image" and omit duration. Tella hosts the uploaded image for rendering — you never deal with raw image URLs.
For a 3D .cube LUT, set kind: "lut" and omit width, height, and duration. Upload the file unchanged, then save it with add_library_item. Pass the returned library item id, not the sourceId, to set_clip_filters.
enum<string>
Source kind —
video (default), audio, image, or lutinteger
Width in pixels — required for
video and image, omit for audio and lutinteger
Height in pixels — required for
video and image, omit for audio and lutnumber
Duration in seconds — required for
video and audio, omit for image and lutget_source
Get a source’s processing status by itssourceId, however it was placed. After placing a newly uploaded video or audio source, poll this every few seconds until it is ready: while it is still processing, frames and previews of videos that use it answer not-ready instead of rendering.
string
required
Source ID from
create_source