Prepare Remotion Studio for a user-recorded product demo with Canvas Capture, then import the downloaded take into packages/brand as an editable composition. Use for recording Studio interactions, timeline demos, and product shots.
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Prepare the browser and shot, let the user perform and record the interaction,
then bring the original capture into packages/brand. This is an internal
Remotion workflow; keep this skill in .agents/skills.
Use canvas-capture-extension to build
and install the extension in its durable directory. Reload the installed
extension through chrome://extensions after rebuilding; a successful build
alone does not refresh Chrome's loaded extension.
Use an existing compatible Chrome with Canvas Draw Element enabled. Preserve unrelated browser tabs and unfinished recordings.
Find the requested composition's registration and owning package. Follow
studio for dependency/build preparation and server
startup, but start in the owning package and open the recording in compatible
Chrome. Use bunx remotion studio --no-open and the exact URL printed by
that invocation, including when it reports an existing server. Do not assume
port 3000 belongs to this checkout.
Open the composition with studioPixelRatio=4 in the query string, preserving
any other URL parameters. For example, if Studio reports port 3001:
http://localhost:3001/RollerSkiRoughCut?studioPixelRatio=4The parameter increases Studio's canvas backing resolution for sharp
timeline captures. It does not set the extension's output resolution.
RollerSkiRoughCut lives in packages/jonnys-videos; locate other requested
compositions rather than assuming they live in packages/example.
Verify the requested composition and current timeline are visible. Activate Canvas Capture through its toolbar icon or Extensions menu.
setup_shot and get_shot WebMCP tools when available.
They are exposed after activating the extension. Choose the viewport, one
visible element, or a rectangle; inspect a still with get_shot and
preview: true. The crop stays fixed in viewport CSS pixels, so reframe after
changing the window or layout.studioPixelRatio; set them for the intended
shot and check the displayed dimensions.After the user finishes, identify the new, fully downloaded capture in
~/Downloads by filename and modification time relative to the handoff.
Exclude incomplete .crdownload files. If several takes are plausible, ask
which one to use.
Keep the original MP4 or WebM with embedded REMOTION_CAPTURE_DATA metadata.
Do not transcode it before import; the metadata carries editable cursor data.
Use import-canvas-capture, targeting
packages/brand and its composition registration file (currently
src/Root.tsx). Choose an unused, descriptive composition ID. From
packages/brand, the local built CLI can be invoked as:
node ../cli/remotion-cli.js experimental-codemod add-canvas-capture \
/absolute/path/to/downloaded-capture.mp4 \
--composition-file src/Root.tsx --id TimelineRecordingFollow that skill's dimension, dependency, and conflict guidance. Inspect
the capture dimensions and pass --width and --height to match them when
importing the full shot: the default 1920×1080 composition can crop a larger
recording because the generated component retains native video dimensions.
Preserve the download and existing compositions/assets.
Review the generated component, registration, copied public asset, and any dependency changes. Run the relevant brand validation before offloading.
Finish with offload-r2: upload the imported recording
to remotion.media, verify that the public object's SHA-256 matches the local
file, and replace the composition's local asset reference with the hosted URL.
Remove the repository-local media copy only after verification; preserve the
original download. Follow that skill's focused validation, then report the
composition ID, hosted URL, and changed files. Distinguish a browser ready for
recording from a completed, imported, and offloaded take.
remotion-dev/remotion
97b942c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.