The media library
One place for the stingers, audio tracks and logos you reuse across demos. Uploaded once, attached anywhere.
The library holds the files you reuse: the stinger that opens every demo, the music bed, the logo on a project shelf. A file is uploaded once and attached anywhere, so a brand refresh is one upload rather than one per video.
You may hold 100 assets. All of it is free on every plan.
Where you upload
- Settings → Media, for anything.
- The composer's Finishing popover, for an intro, an outro or a soundtrack.
- The editor's audio lane, for a clip you want under one beat — the "+ Sound" ghost opens a panel that both lists what you have and accepts a new file, because attaching it is what you came there to do.
- A project's page, for its logo.
Uploads go straight from your browser to storage on a signed, single-purpose URL. The key that URL signs always contains your own owner id, which is what makes it impossible to claim somebody else's object — or a job's video artifact — into your library.
A row exists only for a file that arrived
After the upload, the server checks the object itself: that it exists, its true size, and the content type storage actually recorded. Only then is the library row written. There is no "uploading" state and no reaper, because an abandoned upload leaves an orphaned object rather than a phantom row, and an object nothing points at costs storage rather than correctness.
A duration shown beside an audio file is what your browser reported. It is display only — the renderer measures the file itself and that measurement is what the mix uses.
Who can see what
An asset belongs to a person. Colleagues in your workspace do not browse your library.
But an asset you attach is rendered for everyone: a stinger you added to a team demo plays in every member's copy of that video, and a logo you put on a project shows on every member's chips. Ownership is asked once, at the moment of attaching, and never again — otherwise a mark only its uploader could see would leave everybody else looking at a lettered square.
The same rule from the other side: an edit that carries a colleague's stinger across unchanged asks nothing and keeps it. Carrying is not attaching.
Deleting
Deleting an asset removes the object and then the row, and never deletes a video. Jobs that used it keep their finished files; the reference is simply cleared. A project whose logo you delete keeps its name and its videos and draws initials instead.
The one thing that fails loudly is a job that is still queued when you delete something it names: it is refused at pickup rather than rendered without the piece you removed.
If storage refuses the delete, the row is kept with it — so the bytes stay reachable and nothing is orphaned. The library says so rather than reporting a success it did not have.
What the library is not
It is not where your videos live — those are in My videos and on their own job pages. It is not shared across a workspace. And it is not a general file store: four kinds, four ceilings, and a new kind has to earn its place.