timeline_id or canvas_id.
A project is a timeline that holds clips cut from one recording with cut_clips. Each clip is a timeline of its own with a parent_id, and edit_clips and render_clips work on a set of them.
Read, then write
get_timeline or get_canvas returns the document with a stable id for every clip, track or layer, and its revision. A read stops at about 60,000 characters, reports that in cut_short, and continues from next_cursor. Ranges, tracks, slides and fields narrow a read. response_format: "detailed" returns every property a clip or layer can be set to, so you can match an existing look instead of guessing it.
edit_timeline and edit_canvas take a list of typed operations that apply as one transaction. Every operation is checked before any is applied. A bad one is named by its position, and nothing is written. The response says what changed and carries the new revision. The full grammar of each is a skill, Timeline operations and Canvas operations, read with manage_skills.
Ids are returned in a short form. Pass them back as received.
Revisions
A write takesif_revision from the last read or write response. A stale revision fails with revision_conflict instead of overwriting another editor’s change, whether that editor is a user or another agent. A write with no revision fails with the same code once a user has edited the document in the app since this connection last read it. A fresh document nobody has edited accepts a write without one. Documents are live: a user may have one open, and the next agent reads whatever state was left.
undo puts a document back as it stood before its last edit, or restores any kept revision, forward or back. A timeline keeps 50 revisions, a canvas 20. An edit made by someone else is named and left alone unless a revision names it.
Words on a clip
Words come from transcription. An empty transcript on uploaded speech means the file has not been transcribed, not that it is silent.transcribe_media with timeline_id gives the clips their words, and captions, get_transcript and remove_words read from there. remove_words shifts word indices, so re-read get_transcript before the next cut.
Cleaning speech has an order: clean_audio before any cut, because the cleaned file replaces the clip’s media whole and the transcribed words stay with the original file; then remove_silence; then remove_words.
Keyframe tracks
A punch-in, a reframe and music ducking (auto_zoom, auto_reframe, duck_music) each write a keyframe track and replace what that track held. setKeyframes on edit_timeline writes a single property by hand. Grade and effects are replaced whole on updateClip.
Checking and rendering
check_timelineis free and instant. It reports black stretches, buried clips, trims past the end of a file, missing media, muted sound, unreadable text and the loudness of the speech.inspect_timelineandinspect_canvasdraw real frames of the composite, which is how an edit is verified.render_timelineexports an mp4, a transparent WebM, a GIF, or an mp3 or wav.render_canvasexports the stills, or a PDF. Each returns a job, and the item it produces is the deliverable. Through the desktop app a render runs on that computer, free, at any length and resolution.
setFrameRate re-times the document with every clip staying at its second. Generation settings are independent of these.
Templates
manage_timelines and manage_canvases can keep a finished document as a template. Its picture clips or layers become holes, get_templates lists it, and create with from_template and fill copies it with new files in the holes in one call. get_templates also carries the catalogue the app’s Explore page shows: motion graphics, caption templates, camera moves, filters and fonts, each with the exact call that uses it. manage_templates saves a graphic or a caption look of the workspace’s own.
