Skip to content
Back to skills

Video Overview

ASecurity

Видеопрезентация из сценария — как Video Overview в NotebookLM, только лучше. Озвученные сцены, карандашный скетч или фирменный стиль, 16:9 для уроков и 9:16 для рилсов из одного сценария, субтитры в кадре и .srt, главы для YouTube, обложка. ru, uz (кириллица и латиница), en. Использовать при «сделай видео-объяснение», «ролик по документу», «видеоурок», «рилс с объяснением», «видеообзор как в NotebookLM».

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
toolspythongobash

Security analysis

A100/100

Pro scans all 17 files and shows the line behind each finding

Scanned September 25, 2026

npx -y skills add shakhruz/mila-companion --skill video-overview --agent claude-code

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.

Security grade badge for Video Overview
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shakhruz-video-overview/badge)](https://www.skillsdirectory.com/skills/shakhruz-video-overview)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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 обложки).

Files in this skill

  • SKILL.md8.5 KB
  • fonts/fonts.css3 KB
  • fonts/montserrat-cyrillic-800.woff210.9 KB
  • fonts/montserrat-cyrillic-ext-800.woff211.9 KB
  • fonts/montserrat-latin-800.woff218.6 KB
  • fonts/montserrat-latin-ext-800.woff232.8 KB
  • fonts/noto-sans-cyrillic-500.woff27.1 KB
  • fonts/noto-sans-cyrillic-600.woff27.2 KB
  • fonts/noto-sans-cyrillic-ext-500.woff222.4 KB
  • fonts/noto-sans-cyrillic-ext-600.woff222.5 KB
  • fonts/noto-sans-latin-500.woff213.2 KB
  • fonts/noto-sans-latin-600.woff213.2 KB
  • fonts/noto-sans-latin-ext-500.woff258.4 KB
  • fonts/noto-sans-latin-ext-600.woff258.8 KB
  • prompts/style-sketch.txt522 B
  • scripts/vo_build.py24.5 KB
  • vendor/gsap.min.js71.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.