browser-tutorial-video
Skill0 starsChanged 4 months agoMITView on GitHub
Use when recording a browser walkthrough, app tutorial, screencast, PDF scroll, highlighted clicks, localized demo video, or polished browser automation MP4 with Playwright and ffmpeg.
In this repository37 other files it gives its agents.
- adr-logSkill
- adversarial-reviewSkill
- ai-writing-detoxSkill
- autonomous-video-pipelineSkill
- codex-execution-packSkill
- continuity-ledgerSkill
- github-mobile-opsSkill
- github-seoSkill
- idea-validationSkill
- illustration-promptSkill
- issue-control-loopSkill
- justdoitSkill
- lazy-seniorSkill
- long-context-dispatchSkill
- openclaw-councilSkill
- parallel-worktreesSkill
- playwrightSkill
- product-councilSkill
- product-shapingSkill
- public-artifact-laneSkill
- readme-generatorSkill
- screenshotSkill
- session-to-postSkill
- spec-bundleSkill
- spreadsheetSkill
- spreadsheet-tabular-analysisSkill
- spreadsheet-xlsx-editSkill
- tool-scoutSkill
- transcribe-basicSkill
- transcribe-diarizeSkill
- transcribeSkill
- triage-findingSkill
- video-builderSkill
- video-render-runSkill
- video-spec-builderSkill
- visual-explainerSkill
- work-shapingSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. About 0 are common, 16 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈16
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Do not use when: the task is only browser inspection, a generic narrated video, or a Playwright test suite.
- Distinctive: line 44
If the user provides enough detail, act directly.
- Distinctive: line 48
Use Playwright with persistent Chrome when the site is sensitive to automation, plus the final viewport, locale, and user agent.
- Distinctive: line 52
Prefer functional selectors, roles, and hrefs over fragile visible text.
- Very specific: line 60
Use a high-resolution viewport such as 2560x1440 and render at 60 fps when the user asks for quality.
- Distinctive: line 66
Keep a global cursor position and reinstall the overlay after navigation using that position so the cursor does not teleport.
- Distinctive: line 73
Use Chrome DevTools screencast frames at high JPEG quality for normal browser motion.
- Distinctive: line 75
If browser-native PDF scrolling records at low FPS, stop screencast and capture manual screenshots at the target FPS while scrolling.
- Distinctive: line 84
Verify before claiming completion.
- Distinctive: line 85
Run syntax checks on the recorder.
- Very specific: line 88
If a click timeline exists, run scripts/tutorial_video_qa.js to extract pre-click, post-click, interval, and long-scroll checkpoint frames …
- Distinctive: line 91
Check the click timeline JSON includes the expected click sound and click count.
- Distinctive: line 100
Do not add instructional text overlays when the user asked for a clean recording.
- Distinctive: line 102
Prefer recording at the final high resolution over upscaling a low-resolution capture.
- Distinctive: line 106
When a site blocks default headless automation, switch to persistent Chrome with a realistic user agent and the same setup used for final …
- Distinctive: line 108
Avoid waiting on localized modal titles when a stable functional element exists.
- Distinctive: line 110
Keep outputs separate by locale or variant so rerenders do not overwrite completed videos.
- Distinctive: line 112
Keep Remotion, Stagehand, rrweb, and other helpers optional.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Browser Tutorial Video
Metadata
- Trigger when: the requested artifact is a real browser tutorial video, not just instructions or a script.
- Do not use when: the task is only browser inspection, a generic narrated video, or a Playwright test suite.
Skill Purpose
Produce polished browser tutorial MP4 artifacts from a described workflow by combining Playwright browser control, custom cursor/highlight overlays, click audio, ffmpeg rendering, and visual verification.
For implementation details and snippets, read references/playwright-ffmpeg-pattern.md when building or modifying a recorder.
For final-render QA, read references/qa-pattern.md
and use scripts/tutorial_video_qa.js when the video has a click timeline or
long-scroll/PDF checkpoints.
For repeatable jobs, read references/job-spec.md, use
templates/tutorial-job.json as the input contract, and start simple jobs with
scripts/scaffold_tutorial_job.js plus scripts/run_tutorial_job.js.
For optional external helpers, read references/external-tool-watchlist.md only when deciding whether to add Remotion, Stagehand, pixelmatch, rrweb, or a recording wrapper to a specific project.
Workflow
- Pin the requested flow.
- Capture the URL, exact navigation steps, language variants, allowed overlays, click sound, zoom, resolution, FPS, and output file names.
- Confirm the workflow is public, user-owned, demo-account based, or otherwise explicitly authorized.
- For repeatable work, create a tutorial job spec instead of relying on chat memory.
- If the user provides enough detail, act directly. Ask only when missing information changes the artifact.
- Inspect the live target with the same browser style used for recording.
- Use Playwright with persistent Chrome when the site is sensitive to automation, plus the final viewport, locale, and user agent.
- For changing websites, discover current selectors and localized text from the DOM before editing the recorder.
- Prefer functional selectors, roles, and hrefs over fragile visible text.
- For localized pages, put labels and URLs in a config map.
- Build or adapt a repo-local recorder.
- For simple selector/text/scroll jobs, try
scripts/run_tutorial_job.jsfirst. - For complex sites, PDFs, localization, downloads, or fragile flows, adapt a repo-local recorder using the Playwright + ffmpeg pattern.
- Use a high-resolution viewport such as
2560x1440and render at60 fpswhen the user asks for quality. - Hide or pre-accept cookie banners before recording unless requested.
- Apply page zoom intentionally while excluding the overlay.
- Inject an overlay with a large custom cursor, target highlight, and click ripple. Hide the native cursor.
- Keep a global cursor position and reinstall the overlay after navigation using that position so the cursor does not teleport.
- For each click target: show the highlight first, pause briefly, animate the cursor to the highlighted target, click, then show the ripple.
- Log click timestamps and coordinates for later audio mixing.
- For simple selector/text/scroll jobs, try
- Capture and render.
- Use Chrome DevTools screencast frames at high JPEG quality for normal browser motion.
- If browser-native PDF scrolling records at low FPS, stop screencast and capture manual screenshots at the target FPS while scrolling.
- For PDFs, download the file and open it in a local HTML viewer with browser
PDF parameters such as
#toolbar=1&navpanes=0&zoom=150. - Decode the click MP3 with ffmpeg to mono 48 kHz float samples, mix it at logged click times, write a WAV click track, and encode final audio as AAC.
- Render the final MP4 with H.264,
yuv420p, BT.709 color metadata,+faststart, and a low CRF such as10.
- Verify before claiming completion.
- Run syntax checks on the recorder.
- Inspect the MP4 with
ffprobe: width, height, video FPS, audio codec, sample rate, duration, and size. - If a click timeline exists, run
scripts/tutorial_video_qa.jsto extract pre-click, post-click, interval, and long-scroll checkpoint frames plus a contact sheet. - Check the click timeline JSON includes the expected click sound and click count.
- Extract control frames around each click: one before the click to confirm the highlight appears before the cursor arrives, one at or after click for the ripple, and one near any PDF or long-scroll ending.
- View representative frames before the final response.
Quality Rules
- Do not add instructional text overlays when the user asked for a clean recording; keep only cursor, highlight, and click effects.
- Prefer recording at the final high resolution over upscaling a low-resolution capture.
- Preserve smoothness by capturing enough source frames; do not rely on nominal output FPS alone.
- When a site blocks default headless automation, switch to persistent Chrome with a realistic user agent and the same setup used for final capture.
- Avoid waiting on localized modal titles when a stable functional element exists.
- Keep outputs separate by locale or variant so rerenders do not overwrite completed videos.
- Keep Remotion, Stagehand, rrweb, and other helpers optional. The final recording path should stay deterministic Playwright plus ffmpeg unless a project-specific need justifies extra moving parts.
Output
- MP4 video artifact paths.
- Verification summary: syntax check,
ffprobemetadata, click count, and QA frame checks. - Contact sheet and QA summary paths when
scripts/tutorial_video_qa.jswas used. - Any residual limitation, such as target-site layout drift, PDF viewer behavior, or authorization boundaries.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

