← Все проекты

Кузница коротких видео из длинных подкастов

Кладёте двухчасовое интервью в папку input/ — забираете готовые вертикальные клипы с вшитыми субтитрами, описаниями и хештегами. Всё локально: ни одна секунда звука не уходит в облако.

  • Python 3.10+
  • faster-whisper large-v3
  • llama.cpp + Gemma
  • FFmpeg / NVENC
  • MIT
GitHub → Как это устроено 11Pythonобновлён 1 месяц назад
  • ~5 минна час аудио (fast-режим, RTX 5060 Ti)
  • 5 ролейLLM-конвейер: scout → judge → metadata
  • 9:16умный кроп с трекингом лица
  • 0 ₽облачных API — всё на вашей машине

// пайплайн

От записи до рилса — четыре удара молота

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

faster-whisper large-v3 на CUDA превращает звук в текст с пословными таймкодами. Два режима: fast — батчевый, ~5 минут на час звука, и quality — последовательный с контекстом, вытягивает тихие и шумные записи. Встроенная защита от галлюцинаций гасит бесконечные «Спасибо.» на тишине.

Опциональная диаризация (pyannote) размечает, где чья реплика, — чтобы клип не обрывал собеседника на полуслове и кроп знал, за чьим лицом следить.

Ролевой конвейер на локальных Gemma-моделях через llama.cpp: разведчик находит кандидатов, чистильщик выкидывает мусор, редактор подрезает границы, судья выставляет виральные оценки, а метаданные пишут описание и пять хештегов к каждому клипу. Watchdog перезапускает зависшую генерацию.

  • scout
  • cleanup
  • refine
  • judge
  • metadata

FFmpeg + NVENC (~5× быстрее софтверного кодирования) нарезает клипы, ведёт вертикальное окно 9:16 за лицом спикера с медианным сглаживанием и вшивает стилизованные ASS-субтитры. Рядом с каждым клипом — reel_XX.md с описанием и reels_preview.mp4 со всеми клипами подряд.

// транскрибация

Быстро или дотошно — решаете вы

Один и тот же час аудио — два сценария. Переключите режим и сравните.

Время на час аудио
Точность на чистой записи
Тихая / шумная запись

Fast — батчевый: сегменты обрабатываются независимо. Идеален для чистых студийных записей и быстрых черновиков.

// smart crop

Кадр сам следит за спикером

MediaPipe находит лица на нескольких точках клипа, и окно 9:16 плавно ведётся за спикером с медианным сглаживанием — без дёрганья. Нет лица — честный центр-кроп с пометкой в логе.

Горизонтальный исходник 16:9 — окно ведётся за лицом
Вертикальный клип 9:16 — спикер в кадре

// интерфейс

Браузерный GUI — без сервера

Статические страницы с Material Design 3: собирают config.yaml один-в-один с конфигом пайплайна, а визуальный редактор ASS-стиля с превью на «телефоне» сохраняет стиль прямо туда, откуда его читает рендер. Двуязычный, RU/EN.

GUI Podcast Reels Forge: визуальный редактор ASS-субтитров с превью на телефоне
Редактор стиля субтитров: безопасные зоны IG Reels / TikTok / Shorts и живое превью
GUI Podcast Reels Forge: страница нарезки и экспорта
Нарезка: NVENC-кодирование, фильтры качества и умный кроп
GUI Podcast Reels Forge: настройки транскрибации Whisper
Транскрибация: модель, устройство, режимы fast/quality

// что ещё в кузнице

Мелочи, которые экономят вечера

  • 📦Batch-обработка

    Несколько видео в input/ — Forge проходит их по очереди, пропуская уже готовые стадии.

  • 🛡️Анти-галлюцинации

    Temperature-ladder и repetition penalty гасят зацикливания Whisper на тишине и музыке.

  • 🐶Watchdog для LLM

    Модель молчит дольше таймаута — генерация перезапускается автоматически.

  • 🎚️Типы клипов

    Stories, Reels и Highlights настраиваются отдельно: количество и длительность.

  • ♻️Перегенерация без AI

    rerender_videos.py пересобирает видео с новыми параметрами, не повторяя анализ.

  • 🧯Деградация без падений

    OOM — батч делится пополам вплоть до CPU; нет NVENC — тихий откат на libx264.

// результат

Что окажется в output/

output/my_podcast/
├── video.json                 # транскрипт с таймкодами
├── diarization.json           # спикеры (опционально)
└── gemma4/
    ├── judge_report.json      # оценки виральности
    ├── moments.json           # финальные моменты
    ├── reels.md               # сводка клипов
    ├── reels/
    │   ├── reel_01.mp4        # готовый клип 9:16 с сабами
    │   ├── reel_01.md         # описание + 5 хештегов
    │   └── reel_01.srt
    └── reels_preview.mp4      # все клипы одним файлом

Час монтажа — за чашку кофе

Открытый код, MIT, подробный USER_GUIDE и русскоязычный README. Если Forge экономит вам вечера — можно поддержать разработку.

Поддержать Podcast Reels Forge Кузница экономит вам вечера монтажа — купите автору кофе. donationalerts.com/r/bormotoon