Видеопрезентация из сценария — как Video Overview в NotebookLM, только лучше. Озвученные сцены, карандашный скетч или фирменный стиль, 16:9 для уроков и 9:16 для рилсов из одного сценария, субтитры в кадре и .srt, главы для YouTube, обложка. ru, uz (кириллица и латиница), en. Использовать при «сделай видео-объяснение», «ролик по документу», «видеоурок», «рилс с объяснением», «видеообзор как в NotebookLM».
Installs into .claude/skills of the current project.
Are you the author of Video Overview?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/shakhruz-video-overview)
---
name: video-overview
description: Видеопрезентация из сценария — как Video Overview в NotebookLM, только лучше. Озвученные сцены, карандашный скетч или фирменный стиль, 16:9 для уроков и 9:16 для рилсов из одного сценария, субтитры в кадре и .srt, главы для YouTube, обложка. ru, uz (кириллица и латиница), en. Использовать при «сделай видео-объяснение», «ролик по документу», «видеоурок», «рилс с объяснением», «видеообзор как в NotebookLM».
---
# video-overview — видеопрезентация как в NotebookLM, только лучше
Заведён 25.09.2026 по слову владельца MILAGPT: видеопрезентации нужны всем компаньонам для
маркетинга и обучения. Разведка того, как это устроено у Google, — в центре MILAGPT
(`products/media-gen-2026-09-25/video-overview-razvedka.md`).
## Чем мы лучше NotebookLM
| У них | У нас |
|---|---|
| Кадр — картинка, правка = перегенерация всего ролика | Сценарий в JSON: поменяли строку, пересобрали; голос и картинки берутся из кэша |
| Статичные слайды («скучный PowerPoint», TechRadar) | Медленный наезд на картинку, пункты появляются под голос, титры глав, полоса прогресса |
| Узбекского нет, вертикаль только в коротком английском | ru · uz (кириллица и латиница) · en; 16:9 и 9:16 из одного сценария |
| Нет субтитров и глав | Субтитры в кадре + `subtitles.srt`, `chapters.txt` в формате YouTube |
| Бренда нет | Фирменный стиль или стиль клиента, обложка, концовка с призывом |
## Правила (не нарушать)
- **Голоса.** Клоны голосов команды MILAGPT (владельца и сотрудников) — только для дел MILAGPT, не для клиентов.
Клиенту — голос из библиотеки ElevenLabs (`el.py library ru female`) или клон самого клиента
с его согласия.
- **Ключи.** Клиенту генерируем только на его ключах (OpenRouter для картинок, ElevenLabs для голоса).
Ключа нет — скажите, как его завести, и предложите стиль `brand` с `voice: none`: ролик с
субтитрами без трат.
- **Тексты** реплик и заголовков перед озвучкой — через `humanizer-ru` / `humanizer-uz`.
- **Факты** — только из источника. У каждой сцены поле `source`; `plan` предупреждает, если его нет.
- **Наружу** (пост, канал, отправка клиенту) — только после «да» владельца на готовый ролик.
## Шаги
```bash
S=~/.claude/skills/video-overview/scripts/vo_build.py
mkdir -p ~/work/video/<имя> && cd ~/work/video/<имя>
# 1. сценарий scenario.json (формат ниже) → проверить план и цену, ничего не тратит
python3 $S plan scenario.json
# 2. голос → картинки (только sketch) → проекты и заявки в очередь рендера
python3 $S all scenario.json ~/work/video/<имя> --chat <chat_id>
```
`--chat` — в этот чат вам придёт записка «рендер готов» (сами проекты рендерит хост). Шаги можно
гонять по отдельности: `voice`, `images`, `compose`. Повторный запуск берёт готовое из кэша.
**Перед compose посмотрите каждую картинку глазами** (Read): буквы, обрезка, лишние слова (модель
любит дописать подписи, даты, «штампы чертежа»). Плохую перерисуйте точечно:
`python3 $S images scenario.json <WORKDIR> --redo 16:9:3,9:16:5` — остальные не трогаются, деньги
зря не уходят. Готовые картинки без `--redo` не перерисовываются даже при правке сценария.
Сжатие: по умолчанию `crf` 28 — ролик 80 с ≈ 20 МБ, лезет в Telegram. Для мастер-копии на YouTube
поставьте в сценарии `"crf": 20`.
Результат в `~/work/video/<имя>/out-16x9/` и `out-9x16/`:
`<name>-16x9.mp4`, `<name>-16x9-cover.png`, `subtitles.srt`, `chapters.txt`, `index.html`.
Рендер ≈ 1–3 минуты на ролик в минуту; готовность — файл `~/work/render-queue/<name>-16x9.done`.
## Сценарий
```json
{
"name": "mila-pro-90s",
"title": "Мила Про за полторы минуты",
"subtitle": "ИИ-компаньон, который учит профессии",
"lang": "ru", // ru | uz (латиница) | uz-cyrl | en
"style": "sketch", // sketch — картинки карандашом (genimage) | brand — вёрстка HTML, без трат
"aspects": ["16:9", "9:16"],
"voice": "<voice_id или имя>", // none — без голоса, темп чтения
"voice_settings": {"speed": 1.08, "stability": 0.4, "style": 0.4},
"voice_model": "eleven_v3", // для узбекского; для ru/en по умолчанию multilingual_v2
"brand": {"palette": "teal", "handle": "milagpt.io"}, // palette: teal | sand | night или свои bg1/bg2/ink/accent/muted
"music": "music.mp3", // необязательно, файл в WORKDIR, громкость music_volume (0.12)
"end": {"headline": "Начните за 15 минут", "text": "...", "cta": "milagpt.io"},
"chapters": [
{"title": "Что это", "scenes": [
{"say": "Текст диктора, 1–3 предложения, ≤ 250 знаков",
"headline": "Заголовок в кадре, ≤ 70 знаков",
"points": ["до 3 пунктов", "появляются под голос"], // brand
"visual": "что нарисовать в центре кадра (по-английски)", // sketch
"labels": ["до 4 коротких подписей на картинке"], // sketch
"source": "откуда факт"}
]}
]
}
```
Мера: 5–8 сцен на ролик 60–90 с, 2–4 главы. Для рилса 9:16 — 30–45 с, 3–4 сцены.
## Стиль sketch
Фиксированный блок стиля — `prompts/style-sketch.txt` (эталон NotebookLM: «professional pencil
sketch, masterpiece»). Модель `gemini-3-pro` ($≈0.14 за картинку 2K, русский текст держит без
ошибок при ≤ 6–8 подписях). Нижние 22 % кадра модель оставляет пустыми — туда ложатся субтитры.
Картинки рисуются отдельно под каждый формат: 16:9 и 9:16 не обрезаются друг из друга.
## Цена ролика 60–90 с
- голос: ≈ 900–1300 знаков из месячной квоты ElevenLabs;
- sketch: 6 сцен × 2 формата × $0.14 ≈ $1.70 (один формат — ≈ $0.85);
- brand: $0 за картинки;
- рендер на хосте — бесплатно.
## Устройство
- `scripts/vo_build.py` — только стандартная библиотека Python, работает в контейнере.
Длительность mp3 считается по размеру (el.py пишет CBR 128 кбит/с).
- Проект HyperFrames самодостаточен: шрифты Montserrat и Noto Sans (OFL, покрывают ў қ ғ ҳ и ʻ)
и GSAP лежат рядом, сеть при рендере не нужна.
- Рендер — очередь хоста `~/work/render-queue/*.json` (mp4 и png обложки).