agentleFS
bosfor273-cryptobosfor273-crypto/claude-skills/skills/video-sync/SKILL.md

video-sync

Skill0 starsChanged 4 months agoMITView on GitHub

Локальное видео (скринкаст, запись встречи, walkthrough ручного процесса) → транскрипт + кадры по таймкодам + синхронная сборка sync.md (таймкод ↔ текст ↔ кадр). Транскрипт локально через faster-whisper (наружу не уходит, ru+vad), кадры через PyAV (без системного ffmpeg). Нужно, когда по видео надо ПОВТОРИТЬ действия (робот из ручного процесса): транскрипт говорит ЧТО, кадры показывают КУДА нажали. Не для YouTube-URL (там youtube-study). Триггеры: видео, транскрипт, кадры из видео, нарезать кадры, скрин из видео по таймкоду, таймкоды, синхронизировать видео с текстом, разобрать видео, скринкаст, запись встречи, walkthrough, логика нажатий из видео, mp4.

  • Installs packages

4 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Files
SKILL.md

Video Sync — видео → транскрипт + кадры

Когда применять

Есть локальный видеофайл (mp4/иное) — запись встречи, скринкаст, демонстрация ручного процесса — и нужно разобрать его для воспроизведения: получить транскрипт И кадры, синхронизированные по таймкодам. Типовой кейс: робот повторяет ручные действия человека — транскрипт передаёт ЧТО делают, но не КУДА кликают; кадры на тех же таймкодах закрывают этот пробел. Для видео по URL с YouTube — скилл youtube-study (там транскрипт скрейпится браузером), не этот.

Правила (must follow)

  1. Запуск скриптов — общим окружением скиллов $env:SKILLS_PY ($SKILLS_RUNTIME/.venv), НЕ venv проекта. Зависимости (av, faster-whisper) живут в рантайме скиллов — скилл проектно-нейтрален. Нет библиотеки → & $env:SKILLS_PY -m pip install av faster-whisper и дописать в $SKILLS_RUNTIME/requirements.txt.
  2. Транскрипт — локально, наружу не отправлять. faster-whisper на CPU; видео с КТ/ПДн не уходит в облако. Модель medium тянется с HF при первом запуске (~1.5 ГБ, один раз). За корп-MITM-прокси скачивание с huggingface.co падает (CERTIFICATE_VERIFY_FAILED). Обход: (а) модель уже в кэше (~/.cache/huggingface/hub/models--Systran--faster-whisper-*) → запускать с $env:HF_HUB_OFFLINE='1' (+TRANSFORMERS_OFFLINE='1'), скачивание не дёргается; (б) первое скачивание — через объединённый CA (скилл cert-doctor) либо REQUESTS_CA_BUNDLE. transcribe.py при наличии модели в кэше сам выставит offline-флаг (см. CHANGELOG 2026-07-23).
  3. ASR-текст содержит ошибки распознавания. Термины/имена/цифры восстанавливать по контексту и кадрам (кадр на таймкоде — арбитр: на нём видно реальное поле/значение).
  4. Длинное видео (>20 мин, десятки таймкодов) — sync.md и кадры не грузить целиком в основную сессию: читать sync.md кусками (Read offset/limit) или отдать субагенту, а зрением смотреть только кадры ключевых шагов.
  5. Кадры и транскрипт писать в git-ignored место проекта (store/<задача>/, .playwright-mcp/, scratchpad) — не в src/ и не в репозиторий скилла. Это артефакты разбора, не код.
  6. Кадр = истина по «куда нажали». Если транскрипт и кадр расходятся — верить кадру.

Процедура

  1. Есть готовый транскрипт с таймкодами [MM:SS]? (например, уже сделан скиллом jira для вложения Jira) → сразу шаг 3. Иначе — шаг 2.
  2. Транскрипт:
    & $env:SKILLS_PY $SKILLS_HOME/skills\video-sync\scripts\transcribe.py `
      --video "<путь>.mp4" --out "<store>\transcript.txt" --lang ru
    Долго (10 мин видео ≈ 10-15 мин на CPU) — при необходимости запускать в фоне (run_in_background). Выход — строки [MM:SS] текст.
  3. Кадры + синхронизация:
    & $env:SKILLS_PY $SKILLS_HOME/skills\video-sync\scripts\frames.py `
      --video "<путь>.mp4" --transcript "<store>\transcript.txt" --out "<store>\frames"
    Много таймкодов → --every N (каждый N-й), чтобы не плодить сотни кадров. Выход: frames\t_<sec>.jpg + frames\sync.md.
  4. Разбор: открыть sync.md, читать кадры ключевых шагов зрением (Read по .jpg). Для «робот повторяет процесс» — по кадрам собрать точную последовательность экран→клик→результат.

Данные

Перед работой: git -C $SKILLS_HOME pull. При активации допиши строку <дата> video-sync <проект> в data/usage.log (координатор закоммитит — сам git add/commit/push не делай).

Если скилл подвёл

Заметку в feedback/YYYY-MM-DD.md (в папке этого скилла): что ожидал, что оказалось. Правку по жалобе пользователя — в SKILL.md + запись в конец CHANGELOG.md (дата, что просил, что изменено), commit+push в master.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.