chatcut-media-guide
Installation
SKILL.md
ChatCut Media Guide
Check browse_assets first when a file may already be imported.
Same-machine editor import
- Confirm the user selected the file for import. Open the target project using
browserHandoff.urloreditorUrl, and keep exactly one editor tab for it open on the same machine/network namespace as the local shell. A remote sandbox's localhost is not the user's localhost. - Start the bundled loopback server with Node 18+ and the origin of the actual editor URL:
node <this-skill-dir>/scripts/serve-local-media.mjs --origin <editor-origin> /path/to/source.mp4
Keep it alive using the host's background-process support while calling MCP. It serves only the listed files over tokenized 127.0.0.1 URLs and exits after 900 seconds.
- Import multiple files in one
import_mediacall:{"action":"from_editor","files":[...]}. Copy each file'sassetId,url,filename, andsizeBytesfrom the printedimportsarray intofiles, omitting its per-fileaction. URLs may come from different running helpers. Send 1–16 files per call; for larger sets, submit successive batches of 16. Up to eight files are processed concurrently; the editor streams each one straight into its local store, so a card with transfer progress appears as soon as the download starts. The original top-level single-file arguments still work. - Inspect every entry in
results: successful entries haveok:trueandstatus:"locally_imported"; failed entries have anerror. Results preserve input order and includeassetIdandfilename, with top-levelsucceeded/failedcounts. Retry only failed files with the same asset IDs. Keep the helpers alive until all files succeed, and keep the editor open for server sync, background upload, and transcription. - Verify the asset with
browse_assetsbefore placing it on the timeline. Wait ontrack_progress target:"transcription"before transcript or caption work. Do not wait for upload unless the next operation explicitly requires cloud bytes.