English | Русский
- Что делает проект
- Ключевые особенности
- Быстрый старт
- Как устроен пайплайн
- Где лежат результаты
- Аргументы командной строки
- Конфигурация (config.yaml)
- Smart Crop по лицу
- Перегенерация видео
- Производительность и стабильность
- Лицензия
Podcast Reels Forge — это мощный CLI-инструмент для автоматического извлечения виральных моментов (Reels, Shorts, TikTok) из длинных подкастов или интервью. Он берет на себя всё — от распознавания речи до финального монтажа.
Основные этапы работы:
- Распознавание речи (Whisper): Преобразование аудио/видео в текст с точными таймкодами.
- Диаризация (Опционально): Определение разных спикеров в записи.
- AI Анализ (LLM): Поиск самых интересных и виральных моментов, генерация цепляющих заголовков.
- Обработка видео (FFmpeg): Нарезка клипов, вертикальный кроп (9:16) и центрирование по лицам.
Подробное руководство: docs/USER_GUIDE.md
- Batch-обработка: Просто положите несколько видео в
input/, и Forge обработает их по очереди. - Мульти-модельность: Поддержка локальных моделей через Ollama (qwen3, deepseek, gemma) и облачных провайдеров (OpenAI, Anthropic, Gemini).
- Smart Face Crop: Автоматическое обнаружение лиц для центрирования кадра при вертикальной нарезке.
- Аппаратное ускорение: Использование CUDA для Whisper и NVENC для быстрого рендеринга видео.
- Ollama Watchdog: Контроль отзывчивости модели и автоматический перезапуск зависших генераций.
- Гибкие типы клипов: Настройка количества и длительности для Stories, Reels и Highlights отдельно.
- Python 3.10+
- FFmpeg (должен быть в PATH)
- Ollama (для работы с локальными LLM)
- NVIDIA GPU (крайне рекомендуется для производительности)
- Клонируйте репозиторий.
- Создайте виртуальное окружение и установите зависимости:
python3 -m venv whisper-env
source whisper-env/bin/activate
pip install -r requirements.txt
playwright install chromiumПоложите ваши видеофайлы (mp4, mkv, mov) в директорию input/.
Совет: Если рядом с видео уже есть одноименный mp3, Forge использует его. Если mp3 нет, он автоматически извлечёт аудио из видео в video.mp3 с битрейтом 320k и продолжит пайплайн как обычно.
python3 start_forge.pyОркестратор start_forge.py запускает podcast_reels_forge/pipeline.py, который выполняет следующие стадии для каждого файла:
- Transcription: Используется
faster-whisper. Выход:output/<file_stem>/<audio_name>.json. - Diarization: (Если включено) Создает
diarization.json. - Analyze (Parallel): Анализ транскрипта всеми моделями, указанными в конфиге. Каждая модель сохраняет результаты в
output/<file_stem>/<model_name>/. - Video Processing: Нарезка клипов на основе
moments.json, созданного каждой моделью. Для каждого ролика Forge вшивает субтитры черезpycaps, кладёт рядомreel_XX.mdс готовым описанием и 5 хештегами, а такжеreel_XX.srtс локальным таймлайном сабов.
Внутри директории output/:
output/
my_podcast/
video.json # Транскрипт
diarization.json # (Опционально) Информация о спикерах
qwen3/ # Результаты модели Qwen
moments.json # Список найденных моментов
reels.md # Описания клипов
reels/ # Нарезанные .mp4 клипы
reel_01.srt # Локальные субтитры, из которых pycaps вшивает сабы в reel_01.mp4
reel_01.md # Описание + 5 хештегов для reel_01.mp4
reels_preview.mp4 # Превью всех клипов одним файлом
deepseek/ # Результаты модели DeepSeek
...
Основные флаги для start_forge.py:
--config <path>: Путь к конфигу (по умолчанию:config.yaml).--verbose: Подробный вывод всех команд и логов.--quiet: Режим "только ошибки".--no-skip-existing: Перезапустить все стадии, даже если файлы уже существуют.--autotune: Автоматическая подстройка параметров под текущее железо (меньше чанки, больше таймауты).--no-progress: Отключить прогресс-бар (полезно для логов/CI).
transcription: Выбор модели Whisper (medium,large-v3), устройства (cuda/cpu) и языка.ollama:models: Список моделей для параллельного анализа.watchdog: Настройки таймаутов для обнаружения зависаний.model_overrides: Твики таймаутов и размеров чанков для конкретных моделей.
processing: Настройка количества и длительности клипов (stories,reels,highlights).video:vertical_crop: Включить/выключить соотношение сторон 9:16.smart_crop_face: Включить умное центрирование по лицам.use_nvenc: Использовать аппаратное ускорение NVIDIA.
subtitles:enabled: Включить автоматическую генерацию вшитых субтитров черезpycaps.font: Путь к файлу шрифта. По умолчанию:assets/fonts/bignoodletoooblique.ttf.css: Путь к CSS-шаблону внешнего вида сабов. По умолчанию:assets/subtitles/forge_subtitles.css.font_size_px,max_lines,vertical_align,vertical_offset: Тонкая подстройка визуала сабов.- Для визуальной настройки откройте
assets/subtitles/style-editor.html.
diarization: Включение и настройка определения спикеров (требуется HuggingFace token).
При включении smart_crop_face: true в конфиге:
- С каждого клипа берется несколько кадров-семплов.
- Используются каскады Хаара (OpenCV) для поиска лиц.
- Если лица найдены, окно 9:16 смещается так, чтобы спикер был в центре.
- Если лица не найдены, используется стандартный кроп по центру.
Если вы хотите изменить параметры видео (битрейт, кроп, отступы) без повторного долгого AI-анализа, используйте rerender_videos.py:
# Перерендерить всё с включенным smart crop
python3 rerender_videos.py --smart-crop-face --replace- Whisper: Если возникает ошибка Out of Memory (OOM), используйте модели
smallилиbase. - Ollama: Если модель отвечает слишком долго, увеличьте
first_token_timeoutв конфиге. - FFmpeg: При ошибках энкодера попробуйте отключить
use_nvencв конфиге для рендеринга на CPU. - Pycaps / Playwright: Если субтитры не рендерятся и в ошибке упоминается Chromium, выполните
playwright install chromium.