POST

Edits as data, delivery per platform

Selected takes assemble to the look's pacing. The chain is a list of JSON operations, and the timeline exports to a real NLE.

ASSEMBLE → CHAIN → DELIVER

01AssembleSelected takes in board order, cut to the look's rhythm.
02ChainTrim, overlay, caption, encode — as JSON operations.
03DeliverAspect and duration variants per destination.
04Hand offExport the timeline as OTIO or FCPXML for a human.
One job for the whole chain, not one job per operation.

Calls

cut.assemble(project)
Build a timeline from selected takes and the look.
cut.chain(source, ops)
Run an ordered chain of edit operations as one job.
cut.deliver(targets)
Produce per-platform masters from one timeline.
cut.export_otio(project)
Hand the timeline to Premiere or Resolve.
RequestPOST /v1/edit
{
  "source": "tl_4a81b",
  "chain": [
    { "op": "captions", "cadence": "word" },
    { "op": "encode", "format": "mp4" }
  ]
}
Response200 OK
{
  "job": "job_77c10",
  "steps": 2,
  "status": "running"
}
From the CLI
$ picx cut assemble --look look_a1
$ picx cut deliver --targets tiktok,reels,shorts

✓ 3 masters → ./out/

For users

Delivery is one call for every platform. You are not re-exporting the same video four times by hand.

For developers

Chains are validated before anything runs. An invalid op fails the request, not the job, so you never pay for a chain that could not complete.

Gotchas

  • Chains are ordered and not commutative — encode last, always.
  • OTIO export references source assets by signed URL; those expire, so re-export rather than archiving the file.