chat-screenrec-extractor

chat-screenrec-extractor is a skill for Claude Code, Codex from cafe3310/public-agent-skills. It costs 48 tokens per session (1,665 once invoked), scanned A, original, Apache-2.0.

A tool that turns screen recordings of scrolling group chats into grouped Markdown records. It uses selected screen areas and Apple Vision, Apple's built-in text recognition system, to read messages from video frames.

In plain words
What is it for?
Use it to sample recordings, mark the chat title and message regions, recognize text, remove duplicates, group messages by chat, and export names, timestamps, and system notices.
Why use it?
It removes repeated messages caused by overlapping video frames and reduces the work of transcribing and separating multiple chats.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to sample recordings, mark the chat title and message regions, recognize text, remove duplicates, group messages by chat, and export names, timestamps, and system notices.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/cafe3310/public-agent-skills/chat-screenrec-extractor
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add cafe3310/public-agent-skills --skill chat-screenrec-extractor
Clone the repo
git clone --depth 1 https://github.com/cafe3310/public-agent-skills

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for chat-screenrec-extractor

README.md
[![agentmods](https://agentmods.dev/badge/skills/cafe3310/public-agent-skills/chat-screenrec-extractor/github.svg)](https://agentmods.dev/skills/cafe3310/public-agent-skills/chat-screenrec-extractor)
Your own site
<a href="https://agentmods.dev/skills/cafe3310/public-agent-skills/chat-screenrec-extractor"><img src="https://agentmods.dev/badge/skills/cafe3310/public-agent-skills/chat-screenrec-extractor/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.

agentmods 80×15 button for chat-screenrec-extractor

Your own site · 80×15
<a href="https://agentmods.dev/skills/cafe3310/public-agent-skills/chat-screenrec-extractor"><img src="https://agentmods.dev/badge/skills/cafe3310/public-agent-skills/chat-screenrec-extractor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 48 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,665 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00048 $0.01665
Opus 5.5 $0.00019 $0.00666
Sonnet 5.5 $0.00010 $0.00333
Haiku 4.5 $0.00005 $0.00167

Measured 2d ago against content hash ac81208f75cc, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

chat-screenrec-extractor scanned grade A with 0 findings 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 2d ago.

The scan reads SKILL.md. This mod also ships 6 executable files (scripts/dedup_and_stitch.py, scripts/extract_and_ocr.py, scripts/format_markdown.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/chat-screenrec-extractor/SKILL.md · 112 lines

How it starts

The opening of the file, as written. The whole thing — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.

技能:群聊录屏记录提取器 (Chat Screenrec Extractor)

概述

此技能用于将包含群聊滚屏录屏的一系列视频文件(.mp4 / .mov 等)转化为结构化、分群归档的 Markdown 聊天记录。支持:

  1. 交互式 Web 调参与 ROI 标定:可视化调整切帧采样周期(步长/帧率),并在大图上交互式框选「群聊标题栏」与「聊天消息正文区」ROI,一键保存配置。
  2. 高精度本地 OCR:调用 macOS 原生 Apple Vision 框架,零外部 Python 繁重依赖,快速输出文本与精确像素/归一化坐标。
  3. 滚屏时序去重与聚类:利用群聊滚屏在垂直方向移动的坐标连续性与文本相似度算法,自动剔除重叠帧中的冗余行并完成消息段聚合。
  4. 分群独立成文:根据标题栏识别自动识别群聊切换,输出包含发送人、消息内容、时间戳与系统提示的标准 Markdown 文件。

核心工作流

第一阶段:交互式采样调参与 ROI 框选标定 (Calibration)

  1. 启动服务:调用 server.py,传入包含录屏视频的目录:
    python3 <path_to_skill>/scripts/server.py --input-dir /path/to/videos --port 8765
    
  2. 浏览器标定:
    • 访问 http://localhost:8765。
    • 拖动采样滑块(如 0.5s ~ 1.5s/帧),观察当前视频不同时刻的帧画面。
    • 在主画布上拖拽框选:
      • Title ROI (红色框):锁定顶部群聊名称区域(用于自动识别群名及群切换)。
      • Body ROI (蓝色框):锁定消息展示区域(排除顶部状态栏与底部输入键盘)。
    • 点击 保存配置 (Save Configuration),参数将自动写入目标目录下的 roi_config.json。

第二阶段:批量切帧与原生 OCR 识别 (Batch OCR)

  1. 执行提取与识别:
    python3 <path_to_skill>/scripts/extract_and_ocr.py --config /path/to/videos/roi_config.json
    
  2. 处理逻辑与产物存放:
    • 脚本使用 ffmpeg 按配置周期将视频抽帧保存至 <video_dir>/video-frames/ 目录。
    • 图片命名遵循 原始名称-mmssSSS.jpg(例如 recording-0133500.jpg,精确到毫秒)。
    • 同时调用 macOS 原生 OCR CLI 工具对每帧进行文本识别,并在 video-frames/ 目录下生成同名的文本文件 原始名称-mmssSSS.txt,记录时间戳、Title 标题和消息区域识别行,便于人工直接快速对照复核。
    • 汇总数据保存为 .cache/ocr_results/all_frames_data.json。

第三阶段:滚屏去重与消息聚合 (Dedup & Stitching)

  1. 执行去重合并:
    # 若录屏为向下拉取历史记录(从晚到早),使用 --direction reverse
    python3 <path_to_skill>/scripts/dedup_and_stitch.py --ocr-data /path/to/videos/.cache/ocr_results/all_frames_data.json --output-dir /path/to/videos/output --direction reverse
    
  2. 处理逻辑:
    • 群识别:根据 Title ROI 的文字变化切分 Session,自动过滤主屏列表与瞬态系统横幅。
    • 时间标记提取:识别日期/时间标签(如 7/28 09:53、8/26 14:20、昨天 10:15)。
    • 时序去重与反转重整:对于向下滑动录制的视频,自动将时间轴重整为正序(从早到晚),比对多帧垂直位移文本行,过滤滚动产生的冗余重复,拼接跨帧长文本。
    • 生成聚合后的候选消息数据 intermediate_chats.json。

第四阶段:Agent / 模型循环整理与输出 (Format & Polish)

  1. 生成最终 Markdown:
    • 运行格式化导出脚本,或由 Agent 循环校验并补全上下文(修复 OCR 偶发断行、规范化发送人与气泡归属),按群组输出为独立 Markdown 文件: output/[群聊名称].md
    python3 <path_to_skill>/scripts/format_markdown.py --input /path/to/output/intermediate_chats.json --output-dir /path/to/output
    

Read the full file on GitHub · 112 lines

Changes

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.

  1. 2d ago First seen · 112 lines · 48 tokens per session scan A ac81208f75cc

Subscribe to this mod's changes

chat-screenrec-extractor is a skill published in the GitHub repository cafe3310/public-agent-skills (256 stars, last pushed yesterday), licensed Apache-2.0. It adds 48 tokens to every session and 1,665 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-11-05.

Related

chat-screenrec-extractor compared with skills from other repositories

chat-screenrec-extractor next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
chat-screenrec-extractorcafe3310/public-agent-skillsSkill256yesterdayApache-2.0A48Claude Code, Codex
yuqueflc1125/skillsSkill39yesterdayMITA72Claude Code, Codex
getnoteflc1125/skillsSkill39yesterdayMITA83Claude Code, Codex
preview-mermaidveelenga/preview-skillsSkill918d agoMITA25Claude Code
preview-csvveelenga/preview-skillsSkill918d agoMITA20Claude Code
preview-markdownveelenga/preview-skillsSkill918d agoMITA20Claude Code
visa-doc-translatex-cmd/skillSkill264mo agoApache-2.0A23Claude Code, Codex