update_asset
Update asset. Change a piece's words, where it is filed, its score tags, or its paid calls.
Where it is
In the media area (films, carousels and pictures in the media library): open it with tools_for { area: "media" }, then call it with use_tool { name: "update_asset", args }.
Does it need a yes?
Runs at once, no yes card: it changes only the office's own working state, and nothing reaches anyone. Here: the library's own fields.
Inputs
| Input | Type | Needed | About |
|---|---|---|---|
assetId | string | yes | format `^[a-z0-9][a-z0-9-]{0,159}$` |
title | string | no | 3 to 120 characters |
project | string | no | The piece's project, e.g. "Film · First client" · 3 to 120 characters |
department | string | no | The department this piece is for, e.g. marketing · format `^[a-z0-9-]{1,40}$` |
notes | string | no | up to 20,000 characters |
caption | string | no | up to 5,000 characters |
series | string | no | up to 80 characters |
order | integer | no | 0 to 999 |
kindLabel | string | no | up to 80 characters |
changeNote | string | no | up to 300 characters |
tags | array of string | no | up to 20 items |
spend | array of object | no | Paid calls that made this piece. Append-only, one line per request id · up to 100 items |
spend[].what | string | yes | What was paid for, e.g. 'Voice-over' · 1 to 200 characters |
spend[].usd | number | yes | Cost in US dollars, 0 to 100 · 0 to 100 |
spend[].provider | "fal" | "higgsfield" | "elevenlabs" | "openai" | "anthropic" | "google" | "other" | yes | Who was paid |
spend[].model | string | no | The model or voice used · 1 to 120 characters |
spend[].requestId | string | yes | The provider's request id. The same id with the same details changes nothing · 1 to 120 characters |
spend[].at | string | no | When it was made (default now) · up to 40 characters |
spend[].editId | string | no | format `^[a-f0-9]{24}$` |
moods | array of string | no | Music: how it feels, e.g. calm, hopeful · up to 40 items |
uses | array of string | no | Music: what it is for, e.g. bed under talk, intro · up to 40 items |
energy | "low" | "mid" | "high" | no | Music: low, mid or high |
bpm | number | no | Music: tempo, 30 to 300 · 30 to 300 |
musicalKey | string | no | Music: key, e.g. 'Am' or 'F# maj' · 1 to 8 characters |
loopsCleanly | boolean | no | Music: the end joins the start without a click |
madeBy | "agent" | "owner" | no | Who made the music: agent or owner |
scoreType | "background" | "full" | "agent-buildup" | no | Music: background, full or agent-buildup. Music: background (a bed under talk), full (a complete piece), agent-buildup (an agent built it) |
derivedFrom | object | no | Music fitted from another piece. Its id, revision and the target length. |
derivedFrom.itemId | string | yes | 1 to 160 characters |
derivedFrom.revision | integer | yes | 0 or more |
derivedFrom.targetSeconds | number | yes | 1 to 7200 |
derivedFrom.endOnPhrase | boolean | no | |
composedFrom | object | no | Music built from these sources and packs |
composedFrom.sourceIds | array of string | no | up to 20 items |
composedFrom.packIds | array of string | no | up to 20 items |
importedSource | object | no | Bought or borrowed music: its source and licence |
importedSource.name | string | yes | 1 to 200 characters |
importedSource.reference | string | yes | 1 to 2,000 characters |
importedSource.license | string | yes | 1 to 2,000 characters |
agentOk | false | no | false takes it off the agent music shelf. Only the owner puts music on, in the app |
agent | string | no | up to 120 characters |
task | integer | no | The task this work is for, so the owner sees it there. · 1 or more |
run_id | string | no | Your run id from the connector's start, so the output ties back to this session · format `^[A-Za-z0-9_.:@-]{1,120}$` |
Example
{
"name": "update_asset",
"arguments": {
"assetId": "assetId"
}
}When it is refused
invalid: The input isn't right. The sentence names the field and the fix; nothing was done. Fix it and call again.not_found: No such thing in this company (a task, file, person, record). Check the number or name, or list first.not_allowed: Not without another step: the owner's yes, your own task held with pick_up, or a setting the owner turns on. The sentence says which.taken: Someone else holds it (another AI on that task). Pick another task.stale: It changed since you read it. Read it again and use the new version.failed: On our side or a service's, never your input. Try again in a minute; if it keeps failing, call report_problem.