Коротко
Потрібна програма на 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/сайтів, шматків фільмів, картинок «з гугла».
Унікальність підбору
Щоб відео не співпадали з чужими: брати випадковий кліп з топ-видачі (не перший), вести базу вже використаних (не повторювати), опціонально — легка обробка кліпа (кроп/дзеркало/ швидкість).
Опції (вкл/викл в налаштуваннях)
- Субтитри (вшити або окремим .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.
- Використовує чи рішення базу даних (яку і навіщо) — або вистачає локальних файлів.
- Термін і вартість.