import_media
Register media into a project, probing with ffprobe and returning a clip record with clip_id and audio stream count. Handle multi-audio containers by mixing or selecting a stream, and strip chapter lists.
Instructions
Register a media file with the project, probing it with ffprobe.
Links the media by default rather than copying it. Returns the clip record,
including the clip_id every other tool takes, and audio_streams — how
many the container holds, since every other audio field on the record
describes only the first.
A container with more than one audio stream is refused rather than
registered as if the first were the recording: whisper picks a stream of
its own and MLT picks again at render, so the others would be missing
from the film with every check clean. mix=True sums them into one track
(two mics of one performance); audio_stream=k keeps one, numbered from
0 in ffmpeg's own audio ordering. Either writes a derived copy under
cache/mixed/ that every later op reads without knowing it.
A chapter list or the data/text track it rides on — a movie rip's own
inherited from its parent film — is stripped unconditionally, with no
flag to opt out: there is no legitimate choice to offer, unlike the
audio-stream one. strip/stripped on the record say so when it
happened; duration is corrected from the real video/audio streams
either way it was detected.
sheet=True by default: a contact_sheet of the clip's first ten
seconds rides along on the returned record — cached frames from
thumbnail(), so the clip's own opening (credits, black, a slate) is
seen before it is cued to a shot rather than discovered after. Pass
sheet=False to skip it. --no-sheet on the CLI.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mix | No | Sum a container's audio streams into one track, for two mics on one performance. It writes a derived copy every later op reads without knowing it. | |
| copy | No | Copy the media into the project instead of referencing it where it sits. Off by default — a reference costs no disk, and it is also the fallback where symlinks are rejected. | |
| path | No | The project directory to act on. Omit it — the usual case — when this server is bound to a project (started as `proofcut -C DIR mcp`, or inside a project; `ping` says which): it then resolves to that one bound project, a relative path resolves against it, and a path outside it is refused by name. Unbound, `path` is the whole address and omitting it refuses rather than guessing. | |
| sheet | No | Draw a contact sheet of the clip's first ten seconds onto the returned record. On by default, because a first look that has to be asked for is one nobody takes. | |
| source | Yes | The media file to register. A file argument rather than a project selector, so it is deliberately left unconfined — footage usually lives outside the project. | |
| clip_id | No | The id every later tool addresses this clip by. Unset, one is derived from the filename. Keep it short: it becomes part of cache paths, and a stock Windows measures those against 248 characters. | |
| audio_stream | No | Keep one of a container's audio streams and drop the rest, numbered from 0 in ffmpeg's own audio ordering — not the container's absolute stream index, which is a different number once there is video. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||