Коротко
Нужна программа на Python, которая запускается у меня на ПК (Windows) и делает faceless-видео формата «закадровый голос + сменяющийся видеоряд из фото и клипов» — как исторические документалки на YouTube (пример прикреплю отдельно).
Я ввожу тему → программа пишет сценарий, озвучивает, подбирает под каждый кусок текста видео/фото из бесплатных архивов, склеивает → выдаёт готовый MP4.
Только для меня. Без сайта, без пользователей, без продажи. Один пользователь — я.
Как работает (по шагам)
1. Ввод. Открывается простое окно. Я ввожу тему ролика и выбираю голос озвучки из списка (**список голосов подтягивается автоматически из ElevenLabs по API** — доступные на моём аккаунте). Жму «Создать». (Второй режим: вставить готовый сценарий вместо генерации.)
2. Сценарий. Программа через LLM API (OpenAI/Anthropic, ключ в настройках) пишет сценарий по теме, заданной длины.
3. Разбивка на сцены. LLM делит сценарий на сцены и для каждой возвращает:
- текст сцены;
- тип визуала: видео или фото;
- поисковый запрос (развёрнутая фраза, что должно быть в кадре);
- пометку «highlight» + оценку важности 1-10 (для интро, см. ниже).
4. Озвучка. Текст отправляется в ElevenLabs API выбранным голосом → аудио. Под длину аудио каждой сцены режется видеоряд.
5. Подбор видео/фото — из бесплатных источников по API (см. список ниже). Под каждый источник запрос формируется по-своему (для точности). Если в одном не нашлось — пробует следующий.
6. Проверка (максимум 3 шага на сцену).
- Шаг 1: программа берёт первый найденный вариант (видео/фото) по запросу.
- Шаг 2: отправляет кадр в LLM — «подходит под сцену?». Подходит → стоп.
- Шаг 3 (если не подходит): программа переключается на поиск фото (по точному
запросу фото найти проще, чем видео, — так гарантированно попадаем по смыслу) и берёт его с усиленным движением (зум + панорама).
- Больше 3 шагов на одну сцену не делать — это экономит бюджет LLM и гарантирует, что
кадр в тему.
7. Сборка через ffmpeg/moviepy: клипы и фото под тайминг озвучки, фото оживляются зумом (эффект Кена Бёрнса), голос поверх, простые переходы. Выход: MP4 1920×1080.
Правила видеоряда (важно — за это отвечает программа)
- Первые 60 секунд — интро-тизер: нарезка самых эффектных клипов из всего ролика
(берутся сцены с высшей оценкой важности, где есть видео) под отдельный текст-вступление от LLM («в этом видео вы узнаете…»), кадры без пояснений, как интрига. Потом переход и основная часть.
- Чередование: видео-вставка минимум каждые ~6 секунд, нельзя много фото подряд.
- Доля видео: не меньше ~40% времени — живые клипы, остальное — фото с зумом.
- Длина кадра: 4-6 секунд (и фото, и видео). Не мельтешить, не держать статику долго.
- Для чисто исторических тем, где видео нет — фото с усиленным движением (зум + панорама).
Источники (все бесплатные, с API)
Современное видео+фото: Pexels, Pixabay. Историческое / архивное (public domain): Wikimedia Commons, Archive.org,Library of Congress, Europeana, NASA, Smithsonian Open Access,Flickr Commons, openverse.
Каждый источник — отдельный модуль, легко добавить новый. Использовать только public domain / свободные лицензии с правом коммерческого использования. Никакого парсинга чужих YouTube/сайтов, кусков фильмов, картинок «из гугла».
Уникальность подбора
Чтобы видео не совпадали с чужими: брать случайный клип из топ-выдачи (не первый), вести базу уже использованных (не повторять), опционально — лёгкая обработка клипа (кроп/зеркало/ скорость).
Опции (вкл/выкл в настройках)
- Только фото — если включено, видео собирается ЧИСТО из фото, без видео-клипов.
Каждое фото ОБЯЗАТЕЛЬНО с движением (зум и/или панорама, эффект Кена Бёрнса) — даже в этом режиме не должно быть статичных «мёртвых» кадров, минимальная динамика всегда. Если выключено — стандартный режим (фото + видео-клипы с чередованием, как в правилах видеоряда).
- Без озвучки — если включено, видео собирается по тексту БЕЗ генерации голоса: код
НЕ обращается к ElevenLabs и не накладывает озвучку (видеоряд подбирается по тексту сцен, тайминг кадров — по правилам/параметрам, без привязки к аудио). Если выключено — автоматически делает озвучку по тексту через ElevenLabs, как обычно.
- Атмосферный оверлей — если включено, поверх всего видеоряда накладывается
полупрозрачный слой с плавающими частицами / пылью / светящимися боке / лёгким туманом (particle / dust / bokeh / fog overlay, режим наложения screen/add), чтобы кадры выглядели живыми и кинематографичными.
- При установке программы кладётся набор из 5-8 популярных оверлеев (частицы, пыль,
copyбоке, туман, лёгкое киношное «зерно») в локальную папку — я выбираю нужный из списка.
- Регулируемая прозрачность/яркость оверлея (ползунок 0-100%), чтобы эффект не был ни
copyслишком тусклым, ни слишком выраженным — я сам настраиваю силу.
- Желательно, чтобы оверлей можно было накладывать и на УЖЕ готовое видео отдельно
copy(постобработка: взять готовый MP4 → выбрать оверлей → задать прозрачность → сохранить),
а не только при сборке.
- Откуда взять оверлеи для комплектации (свободная лицензия): Pexels, Pixabay (запросы
copy«particle overlay», «bokeh overlay», «dust overlay», «light leaks», «film grain»),
Mixkit, Videezy. Исполнитель подбирает 5-8 штук и кладёт в папку программы.
- Субтитры (вшить или отдельным .srt).
- Обработка клипов для уникальности.
- Разрешение/формат, длина видео, доля видео, глубина поиска.
Технические требования
- Python. Модульная структура (источники и LLM — через сменные модули, чтобы легко
заменить или добавить).
- Все API-ключи — в файле настроек, не в коде.
- Простое окно (GUI на выбор исполнителя — Tkinter/PyQt), запуск двойным кликом.
- README с инструкцией, понятные логи, комментарии в коде.
Что даю я
- API-ключи (ElevenLabs, LLM, где нужна регистрация — оформлю). Платное оплачиваю сам.
- Примеры видео-референсов (прикреплю) и примеры тем для тестов.
Приёмка (готово, если)
- Запускаю → окно → ввожу тему, выбираю голос → «Создать» → получаю готовый MP4.
- Видеоряд по смыслу текста, чередование видео/фото, интро-тизер 60 сек, озвучка поверх.
- Работает минимум с 6 бесплатными источниками, с fallback между ними.
- Проверка кадров через LLM: макс. 3 шага на сцену (нашли → LLM проверил → если нет,
фото с движением как верняк).
- Уникальность: рандомизация + база использованного.
- Только легальные источники. Есть README, запускается с нуля.
Передача результата
- Весь исходный код — в открытом виде (все файлы), без обфускации + собранная рабочая версия.
- Я могу сам запустить из исходников по инструкции (README: установка, ключи, запуск).
- Код должен быть чистым, прокомментированным и понятным, чтобы **любой другой программист
мог продолжить работу** над ним, если понадобится (не привязка к автору).
- **Вся повседневная работа — через интерфейс (кнопки, поля, ползунки, выпадающие списки),
БЕЗ необходимости трогать код.** Все настройки (тема, голос, опции, оверлей, папки, длина, форматы) меняются в окне программы, а не редактированием файлов. Код на руках — только как моя собственность и страховка, а не как способ управления программой.
- Все права на код после оплаты — мои.
Управление местом на диске (важно)
Программа не должна забивать диск. Реализовать:
- После сборки видео все промежуточные файлы (скачанные клипы, временные куски,
аудио-нарезки) автоматически удаляются — на диске остаётся только готовый MP4.
- Лимит на кэш (параметр в настройках, напр. 5 ГБ): при превышении старые скачанные
файлы удаляются автоматически (сначала самые старые).
- Папку для готовых видео и для временных файлов я задаю в настройках.
- Показывать, сколько места занято, и кнопка «очистить кэш» вручную.
Прошу указать в отклике
- Примеры похожих работ (ffmpeg/moviepy, работа со стоковыми/архивными API, ElevenLabs/LLM).
- Предложение по GUI.
- Использует ли решение базу данных (какую и зачем) — или хватает локальных файлов.
- Срок и стоимость.