Upload Media Asset
clipform_upload_media_assetPut one or more media files into your workspace media library (max 10, uploaded sequentially). This is step one of attaching media to a node - follow up with clipform_attach_node_media to place the returned media_asset_id on a node.
When a public URL is provided, the media is fetched and stored automatically. The API picks where each asset is stored based on its size and type. Word-level captions from clipform_generate_tts enable per-word highlighting in the viewer once attached - pass the caption_ref it returned instead of hand-copying the captions array.
PDFs (media_type document) are for consent agreements: they return a document descriptor, not a media_asset_id.
Provide media via items (explicit type + URL), files (files attached by the host client), or both. At least one is required.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| files | No | Files attached by the host client. Each becomes a video or still library asset (or a consent-agreement document for application/pdf) based on its declared mime_type. | |
| items | No | One or more media items to create as workspace library assets | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | No | The form this is for (from clipform_create_form) - a routing hint only, to pick the right workspace. The result still lands in the workspace library, not on a node. Required on an anonymous session, or this lands in a different workspace and clipform_attach_node_media will not find it. | |
| workspace_id | No | Workspace to act in (id from clipform_whoami workspaces). Omit to use the connection's default workspace. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| results | Yes | One result per item, in order | |
| workspace_name | No | Name of the workspace the media library entries were created in |