Skip to main content
A source is an uploaded video, audio, or image file that you can use in a video as a clip, B-roll, overlay, background, music, or sound effect. You can also upload a 3D .cube LUT to color-grade clips or a custom font for text overlays. 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 a sourceId 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. For a custom font, set kind: "font" and omit width, height, and duration. Upload one TrueType (.ttf) or OpenType (.otf) file unchanged, then save it with add_library_item. Fonts must be at most 20 MB. Pass the returned library item id, not the sourceId, as fontId to add_text_overlay or update_text_overlay.
enum<string>
Source kind — video (default), audio, image, lut, or font
integer
Width in pixels — required for video and image, omit for audio, lut, and font
integer
Height in pixels — required for video and image, omit for audio, lut, and font
number
Duration in seconds — required for video and audio, omit for image, lut, and font

get_source

Get a source’s processing status by its sourceId, even before you place it in a video. Video and audio sources start converting as soon as their upload finishes, so you can inspect them with get_source_thumbnail or get_storyboard without placing them first. Images are prepared for rendering within a few seconds of their upload finishing; LUTs and fonts need no processing and are ready as soon as they’re uploaded. Poll get_source every few seconds until it is ready. While conversion is in progress, frames and previews answer not-ready instead of rendering. get_source_thumbnail shows an image source once it is ready.
string
required
Source ID from create_source
Last modified on October 9, 2026