Borrowing it
Nothing to install: this file belongs to OpenVidu/openvidu.io. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/OpenVidu/openvidu.io/main/.claude/skills/video-recording/SKILL.mdgit clone --depth 1 https://github.com/OpenVidu/openvidu.ioWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/openvidu/openvidu.io/video-recording)<a href="https://agentmods.dev/skills/openvidu/openvidu.io/video-recording"><img src="https://agentmods.dev/badge/skills/openvidu/openvidu.io/video-recording/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/openvidu/openvidu.io/video-recording"><img src="https://agentmods.dev/badge/skills/openvidu/openvidu.io/video-recording.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00125 | $0.02918 |
| Opus 5 | $0.00063 | $0.01459 |
| Sonnet 5 | $0.00025 | $0.00584 |
| Haiku 4.5 | $0.00013 | $0.00292 |
Grade A, and why
video-recording scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
async u => createImageBitmap(await (await fetch(u)).blob()))); How it starts
The opening of the file, as written. The whole thing — 224 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Recording an embedded-meeting demo with injected camera feeds
Produce a short looping MP4 of a two-person OpenVidu Meet call embedded in an
app, where both participants' cameras are pre-recorded clips rather than
real webcams. The reference output is the video of the
building-a-video-enabled-crm-with-an-ai-agent post: sign in → open an issue →
click Join → a live two-way meeting inside the app, ~10 s, looping.
The core idea
OpenVidu Meet takes whatever navigator.mediaDevices.getUserMedia() returns.
Override that function before the Meet app runs and hand it a MediaStream
built from a <canvas> you paint video frames onto. Meet publishes it over
WebRTC as if it were a real camera. Do this once per browser session, one clip
per "person".
Do not use these approaches
Each has been tried and fails; use the fix instead.
- Do not feed a
<video>element or blob straight intocaptureStream(). Inside the Meet page a<video src=blob:...>(or anhttp://src) never leavesreadyState 0and the join hangs on "Preparing room…", whilefetch()of the same URL succeeds — it is the media element decode path, not the network. Instead: decode frames out-of-band and cycle them on a canvas (below). - Do not drive the join with Playwright, headless Chrome, headless-shell or
snap Chromium. The media pipeline stalls pre-network regardless of sandbox,
GPU, WebGL, virtual-background or wait time. Instead: drive the join in
the user's real Chrome via the
claude-in-chromeextension. Headless Playwright is still the right tool for the static lead-up screenshots. - Do not leave the second participant in a background tab. Chrome stops
compositing hidden tabs, so its canvas
captureStreamgoes black. Instead: give it its own visible window — drag the tab out, small but neither minimized nor covered. - Do not click the Meet prejoin by coordinates. It is flaky and depends on device-pixel scaling. Instead: submit the name form and click Join via in-page JS that pierces shadow DOM (below).
- Do not reschedule into the same room. The CRM verifies a cached room with
a GET that races the async DELETE. Instead:
DELETEthe room, poll until it returns 404, then schedule.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 224 lines · 125 tokens per session scan A 9ffd4fe565cd
video-recording is a skill published in the GitHub repository OpenVidu/openvidu.io (5 stars, last pushed yesterday), licensed Apache-2.0. It adds 125 tokens to every session and 2,918 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
html-ppt-knowledge-arch-blueprint
OpenDesign's incident retro: the daemon-restart data bug, the root cause, the fix, and the systemic follow-ups. Built as a decision-grade product management deck for engineering, SRE, leadership.
deck-open-slide-canvas
OpenDesign's architecture review: the local daemon + agent-runtime design, the tradeoffs, and the decision to lock. Built as a decision-grade product management deck for staff eng, tech leads, security.
mockup-device-3d
A template for presenting app or product interfaces inside CSS-rendered 3D iPhone and MacBook mockups. CSS is the web styling system used to control layout, colors, and visual effects.
deck-product-launch
A visual template for product-launch presentation decks, with a dark opening, bright content slides, feature cards, pricing, and a call to action.
integration-orchestrator
Generate a phased delivery orchestration plan for creative-direction-driven work: which skills run when, what locks at which gate, how handoffs occur, and how the cadence implements in the team's tools (Jira, Linear, Notion, Figma, GitHub) with AI agents via MCP and CLI. A temporal map of phases, lock points, handoff…
Popular Web Designs
Guides reference-aware website and landing-page work so the result feels intentional, current, and product-grade instead of generic.