List media
get_mediaLists the project's media library: mediaRef (the id clips use), name, kind (video/audio/image), durationSeconds, resolution, and sceneSamples — timestamps (seconds) where the visual indexer detected distinct moments. sceneSamples is a ready-made shot map: inspect or cut at those times first. Each asset also carries visualIndex and transcript objects: {phase: 'ready'|'pending'|'queued'|'running'|'failed'|'no-audio'|'disabled', error, attempts, sealed}. Analysis starts by itself and retries a failure a few times before sealing it. If a phase is 'failed', read error and decide: call retry_analysis to run just that one analysis again, or leave it. If 'disabled', call request_ai_models.
Video and audio assets also carry beats: {phase: 'ready'|'pending'|'failed'|'none', bpm, confidence}. These come from an ONSET detector (spectral flux): every energy rise — drum hits, plucks, syllables — not bars or downbeats. bpm is the tempo of those onsets, or null when there is no steady pulse (confidence 0–1 below the detector's 0.3, or too few onsets) — speech has onsets and no bpm. 'none' = no audio to analyze. Pass mediaRef to get ONE asset with beats.onsetsSec (source seconds, the first 2000; truncated + onsetCount say when there are more) — map them through the clip's trim and speed yourself.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The session token `connect` returned. Pass it on every call — it says which browser to drive. | |
| mediaRef | No | Optional: return only this asset, as {asset}, with its onset times. Omit to list every asset (no onset times). | |
| projectId | Yes | Project id from get_projects. |