Naming an item
Every item has one canonical id and an 8-character ref, likeXC4WBAX5, which users copy from the app. Either is accepted wherever an item is named. Pass ids back exactly as you received them. A generation returns a job id; the item it produces has its own id, created when the output is ready, and the job id also resolves as a ref for that item.
Getting media in
import_media has one mode per source:
urlfor hosted files, up to 20 per call. Files are deduplicated by content, and each is reported as imported, duplicate or failed. A download that passes about 20 seconds continues as a job.filefor bytes in the call, base64, up to 6 MB.localfor absolute paths on the computer running the desktop app. Nothing is uploaded.presignandconfirmfor a file up to 5 GB the caller uploads itself with a PUT.linkfor a page the user opens to drop files from their own computer.
Reading media
search_libraryfinds items by text over descriptions, tags, transcripts and what pictures show, with filters for type, folder, dates, labels, fields, storage and source, paged withnext_cursor.duplicates_offinds near-identical files to one item.search_footagefinds moments inside videos and recordings, visual and spoken, as start and end times in source seconds.get_itemsreturns everything known about up to 25 items: description, tags, fields, comments, provenance, lineage, variations, versions, technical data, and which analyses are stored.inspect_mediareturns the pixels: an image, or a video as frames in one of several layouts, with the words spoken in that span where a transcript exists. A title or description is text somebody wrote; the frames are the file itself.transcribe_media,detect_beats,speakers,inspect_colorandread_documenteach read one thing from a file, andinspect_mediawith aprompthas a model answer a question about a video or audio file. The result is stored on the item, so repeating the call costs nothing.
Writing metadata
update_items writes name, description, tags, typed field values and lineage onto up to 25 items per call, item by item. A failure on one item is reported beside the results of the rest. made_from records what an item was derived from. Items that are peers of one concept form a variation set.
Structure
Structure is optional.organize_items creates all of it in one batch, running the parts in a fixed order so one call can create a path and move items into it.
- A folder is where an item is filed. Paths like
campaigns/julyare accepted wherever a folder is named. - A label is a workspace-wide mark that people filter by.
- A field is a typed column on the workspace. A select field is what a board reads; a date field is what a calendar reads.
update_itemssets values by field name and refuses a name that does not exist. - A board (
manage_boards) is a select field whose options are its columns. Placing a card sets that field. A calendar (manage_calendars) is a date field with a time, channels and a status of its own. - Versions stack one item behind another, such as v2 of a cut or a re-render. Variations sit side by side.
- Star and hide are per item. A hidden item leaves the feed and stays in the library.
Brand kit
manage_brand_kit reads and writes the workspace’s colors, fonts, written direction, logos, words with their pronunciations, and pinned templates. get_workspace_overview says whether a brand kit exists.
Public links
manage_public_links builds a page anyone can open without an account, from chosen items, with a layout of blocks, settings that reach the live page at once, and a record of what visitors wrote. Public pages are not indexed by search engines. Deleting a link removes the link and its activity, never the media.
