Create polished 60 fps 4:3 4K browser screen-recording style videos from Codex in-app browser captures, with browser-only crop, natural macOS cursor styling, de
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-browser-video-recording-862888183210 ,按照其中的说明把「browser-video-recording」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
Separate the workflow into three layers:
This skill is enough for another Codex instance to perform the Python rendering as long as the full skill folder is installed, including scripts/render_browser_demo.py. Codex should run the bundled script instead of recreating the renderer.
Required local tools:
python3Pillowffmpeg and ffprobeOptional macOS cursor extraction uses swift and /usr/sbin/screencapture. If those are unavailable, provide a transparent PNG through cursor_asset and set cursor_hotspot in the config.
The Browser skill/MCP is still needed for fresh Codex in-app browser screenshots. If it is unavailable, use the best available browser automation screenshot source and state the fallback.
For native app recording, verify the MCP supports:
frameRate: 60.resolutionRawValue: "4K".ratioPresetRawValue: "4:3" for region recordings.selectedRegionOnScreen when cropping to an embedded browser viewport.For the local renderer, 4K 4:3 means 3840x2880. If a native recorder exposes a 4K enum, treat it as an app-side resolution preset and pair it with 4:3 region selection when recording through that MCP.
Use browser:control-in-app-browser first. After loading its docs, drive the in-app browser with the Node/browser API:
1920x1440 for 4:3 4K output, then reset it before finishing.01-results-top.png, 02-after-card-click.png, 03-back-results.png.Avoid desktop coordinate automation unless the user explicitly needs system UI. Codex browser visibility may not expose a capturable macOS surface; screenshots from the browser API are the reliable source.
Make the cursor feel purposeful:
Default visual target:
3.0, matching the large cursor style commonly used in edited demo recordings.15 for a subtle click scale dip.8deg, only from horizontal velocity.Use scripts/render_browser_demo.py for deterministic 60 fps 4:3 4K output:
python3 /path/to/browser-video-recording/scripts/render_browser_demo.py \
--config /tmp/browser-demo-config.json \
--output /tmp/browser-demo-4x3-4k-60fps.mp4
Generate a starter config:
python3 /path/to/browser-video-recording/scripts/render_browser_demo.py --write-template
The config supplies:
shots: map of state names to screenshot PNG paths.scene_starts: [time, shotName, transition] entries.cursor_keys: [time, x, y] viewport-coordinate entries.camera_keys: [time, x, y, zoom] entries.click_times: click timestamps.duration, fps, output_size, source_size, cursor_scale.Preferred defaults:
{
"fps": 60,
"output_size": [3840, 2880],
"source_size": [1920, 1440]
}
If cursor_asset is omitted, the script briefly shows a solid-color overlay and uses screencapture to extract the real current macOS cursor into a transparent PNG. This is local rendering support, not an MCP dependency.
Always verify the delivered video:
ffprobe -v error \
-show_entries stream=codec_name,width,height,r_frame_rate \
-show_entries format=duration,size \
-of json /path/to/output.mp4
Extract at least one mid-video thumbnail and inspect it:
ffmpeg -y -ss 8 -i /path/to/output.mp4 -frames:v 1 -update 1 /tmp/browser-demo-thumb.png
Confirm:
3840x2880 for 4:3 4K.60/1 or equivalent.