Васин Константин
Васин Константин · монтаж локально

Урок «голова + экран»: как смонтировать его самому

Формат для обучающих роликов: голова в рамке поверх записи экрана. Собирать это руками в таймлайне — недели работы или деньги монтажёру. Я собрал 18-минутный урок про SEO-машину локально: геометрия кадра в ffmpeg, резка тишины через auto-editor, поиск фальстартов через whisper-server, вставки — из собственного каталога материалов. Ниже — весь процесс, включая места, где реально потерял время. Всё это собрано в открытый скилл для Claude Code: ставится одной командой и монтирует сам.

Забрать скилл целиком →
Весь пайплайн ниже — одним скиллом для Claude Code. Открытый код, ставится одной командой.

Пример: 33 секунды из того самого урока. Голова в рамке не двигается, меняется только содержимое окна — живой экран, потом врезка со скринкастом Яндекс.Метрики, потом карточка с цифрой и слайд из урока. Всё это собрано командами ниже. Ролик целиком — на странице гайда «SEO-завод».

Цифры одного реального ролика
Урок для канала «Васин Константин», собран полностью локально.
Готовый скилл · открытый код · 0 ₽

Забрать скилл целиком

Всё, что разобрано ниже, собрано в скилл для Claude Code и Codex: синхронизация дорожек, резка тишины, поиск оговорок, сборка кадра, инфографика, громкость и обложка. Материал никуда не уходит с твоего компьютера.

Один промпт — поставит и объяснит, как пользоваться
Поставь мне скилл «голова + экран» для автомонтажа видео.

1. Скачай и запусти установщик:
   curl -fsSL https://raw.githubusercontent.com/vasin-k-i/golova-ekran/main/install.sh | bash
   Если curl недоступен — склонируй https://github.com/vasin-k-i/golova-ekran
   и скопируй папку skills/golova-ekran в ~/.claude/skills/golova-ekran

2. Запусти ~/.claude/skills/golova-ekran/scripts/check_deps.sh и посмотри, чего не хватает.
   Чего нет — поставь сам: ffmpeg и whisper-cpp (brew на macOS, apt на Linux),
   pillow и numpy через pip3, модель ggml-large-v3.bin положи в ~/.whisper-models/
   Про каждую установку скажи, что делаешь, и покажи результат.

3. Проверь, что скилл на месте: выведи первые строки ~/.claude/skills/golova-ekran/SKILL.md

4. В конце объясни мне человеческим языком и коротко:
   — какую фразу сказать, чтобы запустить монтаж;
   — что нужно на входе (какие файлы и как их снимать);
   — что получится на выходе и сколько это считает;
   — в какой момент я должен буду что-то решить сам.

Напомни перезапустить Claude Code, чтобы скилл подхватился.

Дальше скажи агенту своими словами: «смонтируй ролик из папки ~/Movies/урок — там телефон и запись экрана». Он посмотрит файлы, синхронизирует дорожки, вырежет тишину, найдёт повторы и покажет список до резки.

Зачем собирать самому

Если снимаешь обучающие ролики и разборы регулярно — экран + голова в углу становится основным форматом. Заказывать монтаж каждого выпуска — это либо деньги на фрилансера, либо очередь и ожидание. Собрать один раз рабочий локальный пайплайн — вложение, которое окупается на втором-третьем ролике.

ИИ здесь — рычаг на трёх местах: расшифровка сегментов для поиска фальстартов (руками нереально прослушать 330+ обрезков), подбор вставок по собственному каталогу материалов (без него не вспомнишь, что где лежит) и генерация карточек-инфографики. Резка тишины, геометрия композита, финальный рендер — это ffmpeg и авто-detector, без нейросетей, но именно они делают тяжёлую работу.

Ниже — не абстрактная теория, а разбор одного реального ролика: 18 минут 47 секунд, 331 финальный сегмент, ни рубля на монтажные сервисы.

Геометрия кадра

Холст — 1920×1080. Окно записи экрана — 1500×844 в позиции (48, 90). Голова — кроп из вертикального видео с телефона, crop=1762:3340:199:500, затем scale=544:1032, позиция (1352, 24). Сверху — PNG-рамка на весь кадр.

Важное следствие этих чисел: голова перекрывает правые 196 px окна экрана (окно кончается на 1548, голова начинается на 1352). Это влияет на всё, что показывается внутри окна — вставки и карточки нужно проектировать с учётом этой полосы.

Рабочий filter_complex (вход 0 — чёрный фон через lavfi 1920×1080, 1 — запись экрана, 2 — видео с телефона, 3 — PNG-рамка):

filter_complexкомпозит головы и экрана
[1:v]scale=1500:844,fps=30,setpts=PTS-STARTPTS[scr];
[2:v]crop=1762:3340:199:500,scale=544:1032,fps=30,setpts=PTS-STARTPTS[head];
[0:v][scr]overlay=48:90[tmp1];
[tmp1][head]overlay=1352:24[tmp2];
[tmp2][3:v]overlay=0:0[vout]

Звук берётся с телефона (-map 2:a) — микрофон чище, чем у захвата экрана. На каждом сегменте фейды afade: 0.03 с на вход, 0.08 с на выход. Без них на склейках слышны щелчки.

Запись экрана часто идёт в 60 fps, телефон — в 30. Оба потока нужно привести к общему fps и сбросить PTS (fps=30,setpts=PTS-STARTPTS), иначе в композите проскакивают чёрные микрокадры на стыках.

8 шагов пайплайна

  1. Съёмка. Телефон снимает лицо вертикально, параллельно идёт запись экрана. Хлопок не нужен — синхронизация дальше идёт по звуку.
  2. Синхронизация ракурсов. Кросс-корреляция звуковых дорожек телефона и записи экрана. На реальном ролике офсет вышел 0.92 с. Принимать офсет стоит, только если корреляция уверенная.
  3. Резка тишины. auto-editor режет по амплитуде звука, не по паузам в транскрипте — Whisper врёт про паузы: показывает разрыв там, где его нет. На выходе — список сегментов (source_in/source_out в кадрах + fps).
  4. Посегментный рендер. Каждый кусок рендерится отдельным mp4, затем склейка ffmpeg -f concat. Смысл не в красоте: пересобрать один сегмент — 2 секунды, пересобрать весь 19-минутный ролик целиком — 12 минут.
  5. Повторы и фальстарты. Отдельный проход после резки тишины — auto-editor их не убирает (раздел ниже).
  6. Вставки. Подмена содержимого окна экрана; голова в рамке не двигается и не пересобирается.
  7. Инфографика-карточки. Размер ровно 1500×844 — под окно экрана.
  8. Экспорт. mp4 H.264, CRF 26, preset slow, -movflags +faststart + постер-кадр. Либо FCPXML для DaVinci Resolve, если дочищать хочется руками.

Повторы и фальстарты

Это самый ценный раздел — здесь реально теряется время, если не знать про две ловушки заранее. Человек, записывая дубль, начинает фразу, обрывает и говорит заново. Auto-editor это не убирает: пауза между фальстартом и переспросом обычно короче порога тишины.

Главная ловушка: искать по расшифровке всей дорожки — бесполезно

Если расшифровать всю дорожку целиком, повторы не видно: Whisper схлопывает фальстарт с переспросом в одно вхождение, и текст в этом месте выглядит чистым, хотя фраза сказана дважды.

Рабочий способ — расшифровать КАЖДЫЙ сегмент отдельным коротким клипом. На клипе в 2 секунды модели нечем «причесать» повтор, и она отдаёт его как есть. Массово это гоняется через whisper-server, модель грузится один раз: 332 сегмента ≈ 4 минуты.

whisper-serverзапуск локально
whisper-server -m ~/.whisper-models/ggml-large-v3.bin -l ru --port 8178 -mc 0 -bo 1 -bs 1 -nf

POST на /inference, поле file. Флаг -tp серверу не передавать — падает в help.

Обратная ловушка: слово разрезано пополам на стыке сегментов

Она дороже первой. На границе сегментов слово физически разрезано пополам, и распознавалка достраивает его целиком с обеих сторон. В тексте это выглядит как повтор — в звуке его нет:

хвост сегмента 71: «…и сама карта системы,»
начало сегмента 72: «системы, которая открывается…»

Здесь «системы» произнесено один раз — просто разрезано склейкой. Наличие выреза между сегментами само по себе ничего не доказывает.

Признаки настоящего фальстарта: вторая версия звучит иначе, чем первая (обрублено против полного — «стате…» против «статейная»), и первый сегмент целиком состоит из этой фразы. Реальная цифра с этого ролика: из 8 кандидатов, прошедших автоматический фильтр, настоящим оказался один. Остальные семь отбраковали на слух за минуту.

Правило резки: первое вхождение режем, последнее оставляем. И список всегда показывать человеку до резки — дословно, с таймкодами, обе версии фразы, что именно уйдёт.

Показ с экрана — самая дорогая ошибка

Если в ролике ты включаешь видео на своём экране и показываешь результат — звук плеера приходит на микрофон телефона примерно на −45 дБ. Это ниже порога тишины −32 дБ. Для резки весь показ формально является тишиной, и она выносит его целиком.

Живая цифра с этого ролика: из 166 секунд демонстрации готового видео в первой сборке выжило 42 %. Девяносто шесть секунд — то самое доказательство, ради которого сцену и снимали, — уехали в мусор. Сверху добило второе правило: «сегмент тише −40 дБ = огрызок без речи». Whisper выдавал на этих кусках обрывки чужого текста («Углубление», «который упал»), и они выглядели как шум.

На дорожке три полосы разделяются уверенно:

  • речь в кадре — −25…−32 дБ
  • звук плеера на ноутбуке — −50…−38 дБ
  • настоящая тишина комнаты — ниже −55 дБ

Значит, порог надо опускать не везде, а внутри окон показа. Рабочие настройки: −52 дБ, пауза от 0,80 с, оставляем 0,40 с. Порог −52 дБ проходит между плеером и комнатой, длинная пауза не даёт показу рассыпаться на конфетти из склеек. И правило «тише −40 дБ = мусор» внутри этих окон не применяется вовсе.

Границы окон ищутся по профилю громкости: пол комнаты берётся как 5-й перцентиль, речь как 75-й, а между ними — полоса плеера. Дальше отмечаются отрезки, где полоса держится, а речи нет, и склеиваются через паузы на комментарий. Окна лучше брать с запасом: прихватишь лишнего — тихий порог всё равно вырежет настоящую тишину, а недоберёшь — кусок показа исчезнет.

Как проверить на готовом. Показ должен быть примерно на 15 дБ тише речи: замерь ffmpeg -ss ВРЕМЯ -t 8 -i мастер.mp4 -af volumedetect -f null -. Речь около −14 дБ, показ около −28 дБ — слышно, но с голосом не спорит.

Звук: громкость и синхронность

Речь с телефона идёт на −25…−30 LUFS, но одиночные щелчки и касания стола дотягивают до −1 дБ. Гребёнка в 20+ дБ не даёт loudnorm поднять уровень линейно — он упирается в −16 LUFS и останавливается. YouTube приводит всё к −14 LUFS и только приглушает: сдашь тише — он не поднимет, ролик будет звучать тише соседних.

acompressor такие всплески не ловит: щелчок короче его attack. Нужен быстрый lookahead-лимитер. Рабочая цепочка целиком:

ffmpegцепочка звука
highpass=f=75, volume=<подобранное>dB, alimiter=limit=0.78:level=false:attack=1:release=60

У alimiter параметр level по умолчанию включён. Он подтягивает выход обратно к нулю и полностью съедает limit: сколько ни ставь limit=0.66, на выходе пик 0,0 дБ, а true peak уезжает за 0 dBTP. Всегда level=false. И ещё: makeup у acompressor — линейный множитель, а не децибелы, makeup=3 это ×3, то есть +9,5 дБ.

Усиление подбирается итерациями по невязке: лимитер съедает тем больше, чем сильнее давишь, поэтому одним делением не обойтись. Считать на выжимке из трёх кусков по 40 с — замер по всему файлу слишком долгий, а результат тот же.

Картинка и звук должны сходиться кадр в кадр

  • Длительности считать в кадрах на обоих концах. Если в плане складывать сырые секунды сегментов, а резать по кадрам, план расходится с резкой. На 130 склейках это дало два кадра, и картинка вышла короче звука.
  • В конце цепочки резки звука обязательны apad,atrim=0:<длина>. -t перед -i округляется до кадра AAC-декодера (~21 мс), каждый сегмент выходит на доли миллисекунды длиннее, и на сотне склеек звук уезжает от картинки на десятки миллисекунд.
  • -ss и -t ставим ДО -i. Если после, фильтр видит исходные таймкоды, и afade=out со своим st срабатывает ещё до начала сегмента — на выходе цифровая тишина во всех сегментах, кроме первых.
  • Границы блоков задавать через -frames:v. Иначе каждый блок округляется вверх на кадр-другой, за полтора десятка блоков набегает полсекунды, и к финалу губа уезжает от звука.

Вставки — грабли, которые стоили времени

  • Вторая голова в кадре. Почти во всех скринкастах в правом нижнем углу своя вебка. Если оставить — в кадре два лица. Решение: кропать врезку crop=1500:844 нативно из 1920×1080 — вебка уходит за границу кадра, качество не теряется, потому что масштабирования нет. Правые 196 px врезки всё равно перекрыты головой.
  • Со слайдами так нельзя. Голова срезает заголовок. Для слайдов — crop=1920:840,scale=1304:-2,pad=1500:844:0:(844-ih)/2:0x0a0a0a: слайд целиком влезает в видимую зону, поля — в цвет карточек.
  • Если у источника вебка занимает половину кадра — берётся только окно браузера и апскейлится. На боевом ролике для сцены «Обзор сайтов» это был crop=1240:698 с последующим апскейлом до 1500×844.
  • Кроп только с чётными сторонами — x264 не берёт нечётную ширину после масштабирования.
  • Разный fps источников. Запись экрана часто в 60 fps, телефон в 30 — приводить к общему fps и сбрасывать PTS у обоих потоков, иначе чёрные микрокадры.
  • -ss перед -i прыгает на ближайший ключевой кадр, промахи на секунды. Для точной перемотки внутри исходника — -ss после -i.

Карточки-инфографика

Делаются в HyperFrames (HTML + GSAP, рендер в mp4). Размер — ровно 1500×844, под окно экрана. Стиль на реальном ролике: фон #0a0a0a, шрифт Manrope, акцент #ff5a30, крупная цифра + подпись капсом. Примеры реальных карточек с этого урока: «300–500 тыс ₽ — стоимость продвижения в месяц у агентств», «660 000 ₽ продано с сайта за месяц», «4 фазы сборки» списком.

HyperFramesрендер карточки
npx hyperframes@0.7.109 render

Нужен Node ≥ 22 — системный v20 не подойдёт.

Содержимое карточки прижимай влево, не центрируй. Правые 196 px окна перекрыты головой — отцентрированный текст в композите выглядит смещённым.

Каталог материалов

Когда на диске лежат сотни своих записей экрана и съёмок, вставку под конкретный тезис подобрать невозможно — не помнишь, где что. Решение — один раз построить каталог.

Индексатор проходит по папкам с видео (~/Movies, ~/Documents/Материалы YT) и собирает index.tsv: id, длительность, разрешение, путь — плюс контактный лист (сетка миниатюр кадров) на каждый клип. Дальше ИИ смотрит кадры каждого клипа и дописывает человеческий каталог CATALOG.md: что происходит на экране, теги, лучшие куски с таймкодами.

Реальный масштаб: проиндексировано 568 файлов, в каталог попало 433 клипа. Покрытие по тегам: #скринкаст 125, #говорящая-голова 123, #claude 55, #сайт 53, #агенты 32, #аналитика 31 и так далее.

Что это даёт на монтаже: вместо «где-то был скринкаст с Метрикой» — грепнул каталог по слову, получил id, путь и таймкод лучшего куска. Именно так на боевом ролике подобрались 17 вставок под конкретные тезисы: урок про семантику под блок о семантике, таймлапс сборки под «ставится за полтора часа», Яндекс.Метрика со списком сайтов под «продвигаю 15 своих сайтов».

Как построить такой каталог у себя. Весь этот шаг вынесен на отдельную страницу: Индекс видеотеки — где какой кусок лежит. Там один готовый промпт: агент смотрит кадры, слушает речь и режет каждую запись на смысловые куски — с какой по какую секунду что происходит, что при этом говорится и подо что кусок годится в монтаже. Дальше вставка ищется словами, а не перематыванием.

5 промптов

Это ядро гайда — готовые промпты под каждый этап. Копируешь в Claude Code, подставляешь свои пути и тезисы. В каждый зашита геометрия и флаги из этого разбора, чтобы агент не выдумывал их сам. Если не хочешь возиться руками — поставь скилл: там эти шаги уже собраны в один пайплайн и добавлены грабли, которых в промптах нет.

Промпт 1Подготовка материала
Ты работаешь с двумя дорожками одной записи: [путь к записи экрана] (обычно 60 fps) и
[путь к видео с телефона] (обычно 30 fps — с этой дорожки берём звук, микрофон телефона чище записи экрана).
Сделай:
1. Синхронизируй два ракурса кросс-корреляцией звуковых дорожек (не по хлопку). Прими офсет,
   только если корреляция уверенная.
2. Прогони получившийся звук через auto-editor по реальной амплитуде (не по паузам в транскрипте —
   на паузы в транскрипте нельзя полагаться, Whisper их искажает) — получи список сегментов
   source_in/source_out в кадрах + fps.
3. Приведи оба потока к общему fps и сбрось PTS у обоих (fps=30,setpts=PTS-STARTPTS) — иначе на
   стыках 60fps/30fps будут чёрные микрокадры.
Отчитайся: какой офсет получился, сколько сегментов на выходе, сколько секунд вырезано тишины,
есть ли подозрительно короткие сегменты (короче 0.1 с).
Промпт 2Поиск повторов и фальстартов
У тебя есть список сегментов реза (source_in/source_out, fps) и исходное аудио на дорожке телефона.
Задача — найти фальстарты (человек начал фразу, оборвал, сказал заново), которые резка тишины
не убрала, потому что пауза между обрывом и повтором короче порога тишины.
НЕ расшифровывай всю дорожку целиком — Whisper схлопывает фальстарт с переспросом в одно вхождение,
и место в тексте выглядит чистым, хотя фраза сказана дважды. Вместо этого:
1. Нарежь КАЖДЫЙ сегмент отдельным коротким mp4-клипом.
2. Подними локальный whisper-server (модель грузится один раз, на ~330 сегментов уходит около 4 минут):
   whisper-server -m ~/.whisper-models/ggml-large-v3.bin -l ru --port 8178 -mc 0 -bo 1 -bs 1 -nf
   Флаг -tp серверу не передавай — падает в help. Расшифровку получай POST-запросом на /inference,
   поле file.
3. Сравнивай соседние сегменты нежёстко: фальстарт обычно обрублен («стате…» против «статейная»),
   а не идентичен слово в слово.
4. Отсеивай ложные срабатывания на стыках: если хвост сегмента N физически обрывает слово, а начало
   сегмента N+1 договаривает его целиком — это НЕ повтор, слово разрезано пополам монтажной склейкой
   и звучит один раз. Признак настоящего фальстарта — вторая версия звучит иначе, чем первая, и
   первый сегмент ЦЕЛИКОМ состоит из этой фразы.
Верни таблицу кандидатов: номер сегмента, что говорит, чем отличается от соседнего, почему это
фальстарт, а не разрезанное слово. НЕ РЕЖЬ САМ — это список на утверждение человеком. Правило по
умолчанию, если утвердят: первое вхождение режем, последнее оставляем.
Промпт 3Подбор вставок по каталогу
У меня есть индекс своей видеотеки: index.tsv (id, длительность, разрешение, путь) и CATALOG.md
(что на экране, теги, лучшие куски по таймкодам для каждого id).
Вот тезисы ролика с таймкодами: [вставь список].
Для каждого тезиса найди в CATALOG.md подходящую вставку. Верни таблицу: тезис → id клипа → путь
(из index.tsv) → таймкод лучшего куска → чем обосновано (что на экране совпадает с тезисом).
Жёсткое ограничение: НЕ предлагай клип, где в кадре есть посторонняя вебка/лицо в углу, если её
нельзя убрать кропом. Окно записи в композите — 1500×844, в рамке уже есть голова автора, второе
лицо в кадре не годится. Если у кандидата вебка есть, но занимает угол в скринкасте 1920×1080 —
годится, кроп crop=1500:844 её уберёт (правые 196px всё равно перекрыты головой). Если вебка
занимает половину кадра или это слайд с заголовком — отметь кандидата отдельно, для него нужен
другой кроп, не crop=1500:844.
Промпт 4Карточка-инфографика
Собери HyperFrames-композицию с инфографической карточкой размером ровно 1500×844 px (под окно
записи экрана в финальном видео 1920×1080, окно стоит в позиции 48,90).
Цифра/тезис: [вставь].
Стиль: фон #0a0a0a, шрифт Manrope, акцент-цвет #ff5a30, крупная цифра + подпись капсом.
Важно: содержимое прижимай к левому краю, не центрируй — правые 196px карточки в финальном
композите перекрыты головой в рамке, отцентрированный текст будет визуально смещён.
Рендер: npx hyperframes@0.7.109 render (нужен Node ≥ 22, системный v20 не подходит). Результат
положи как renders/video.mp4.
Промпт 5Финальная сборка
У тебя есть список сегментов (после резки тишины и вырезания подтверждённых фальстартов) и, где
нужно, подменённые вставки для окна экрана. Собери финальное видео:
1. Рендери каждый сегмент отдельным mp4 через filter_complex (вход 0 — чёрный фон lavfi 1920×1080,
   1 — запись экрана или вставка, 2 — видео с телефона, 3 — PNG-рамка):
   [1:v]scale=1500:844,fps=30,setpts=PTS-STARTPTS[scr];
   [2:v]crop=1762:3340:199:500,scale=544:1032,fps=30,setpts=PTS-STARTPTS[head];
   [0:v][scr]overlay=48:90[tmp1];
   [tmp1][head]overlay=1352:24[tmp2];
   [tmp2][3:v]overlay=0:0[vout]
   Звук бери с телефона (-map 2:a, микрофон чище записи экрана). На каждом сегменте ставь
   audio-фейды: afade вход 0.03с, выход 0.08с — без них на склейках слышны щелчки.
2. Склей все сегменты ffmpeg -f concat.
3. Экспортируй: H.264, CRF 26, preset slow, -movflags +faststart, добавь постер-кадр. Если дальше
   дочищать в DaVinci Resolve руками — вместо mp4 собери FCPXML.
Важно: если нужна точная перемотка внутри длинного исходника (не с начала файла) — ставь -ss ПОСЛЕ
-i, а не перед: -ss перед -i прыгает на ближайший ключевой кадр и промахивается на секунды. Кроп
делай только с чётными сторонами — x264 не берёт нечётную ширину после масштабирования.

Честно про время

Это не кнопка «сделать красиво». Резка тишины и рендер — быстрые (whisper-server прожёвывает 332 сегмента за 4 минуты), но список фальстартов и подбор вставок всё равно смотрит человек — иначе рискуешь либо оставить повтор в эфире, либо вырезать слово, которое на самом деле не повторялось. На этом ролике из 8 автоматических кандидатов реальным оказался один — семь остальных отбраковали на слух.

Каталог материалов строится один раз и потом обновляется — это разовая инвестиция часов, не пятиминутный скрипт. И если мычания «э/эм/нуу» из речи не чистить отдельным проходом — их придётся вычищать руками в Resolve, автоматика тишины и повторов их не трогает.

Путь с кириллицей в названиях папок DaVinci Resolve импортирует нестабильно — если собираешь FCPXML для Resolve, держи исходники на ASCII-путях рядом с проектом.

Забрать скилл и промпты

Всё, что выше, лежит открыто на GitHub одним скиллом: скрипты, справочники с граблями и шаблон конфига. Ставится одной командой, работает локально, стоит 0 ₽.

Хочешь такие разборы по мере выхода

Следи за новыми гайдами через бота — там же остальные материалы: SEO-машина под ключ, второй мозг, контент-пайплайн. Или загляни в Цех — там разбираем такие связки вживую.

Читать дальше

Все гайды рабочие: каждый — то, что реально крутится у меня, а не пересказ документации.

Claude Code и агенты

Хуки в Claude CodeАгент сам запускает твой скрипт: память на старте, сохранение контекста между сессиями, стоп-кран на опасные команды. Экономия токеновСтартовый вес сессии пересылается каждый ход. Как срезать его в разы: 48 400 → 15 200 токенов, готовые правила. Панель анализа расходаГотовый промпт: собирает локальную панель — сколько токенов и денег ушло по дням, проектам и моделям. Разбор инструментаСкилл: кидаешь ссылку на Reels, пост или репозиторий — получаешь вердикт, брать или мимо, и первый тест.

SEO и сайты

SEO-машинаКарта из десяти систем, из которых собран сайт на ИИ-агентах: что делает каждая и как собрать такую же. GEO-оптимизация сайтаКак попадать в ответы ChatGPT, AI Overviews и Яндекс Нейро: механика, чеклист по четырём уровням и промпт для аудита и правок. Разведка нишиСкилл: go/no-go по нише до сборки сайта — спрос через Wordstat, деньги-страницы, контент-план. Сайт с нуля с ИИ-агентомЧто решить до первого промпта, зачем два раздельных ТЗ и как сразу заложить блог с категориями. Самоаудит сайта20 проверок за 30 секунд и сравнение с медианой по 83 сайтам малого бизнеса. Скрипт бесплатный. Wordstat APIПодключение через Yandex Cloud за 15 минут: API-ключ, Folder ID, роль, проверка, лимиты и деньги. API поисковиковТокен Яндекс.Вебмастера и доступ к Google Search Console. Включая ловушку с семью днями.

Видео и контент

6 проектов в Claude CodeКонтент-пайплайн целиком: карусели, Reels, озвучка клон-голосом, авто-монтаж, второй мозг. Индекс видеотекиГотовый промпт: ИИ режет все видео на диске на смысловые куски с таймкодами — что происходит, что говорится, подо что годится.