Krótko
Potrzebny program w Pythonie, który uruchamia się na moim PC (Windows) i tworzy faceless-wideo w formacie „głos lektora + zmieniający się materiał wideo z zdjęć i klipów” — jak dokumenty historyczne na YouTube (przykład dołączę osobno).
Wprowadzam temat → program pisze scenariusz, lekturuje, dobiera do każdego fragmentu tekstu wideo/zdjęcia z darmowych archiwów, montuje → wydaje gotowy MP4.
Tylko dla mnie. Bez strony, bez użytkowników, bez sprzedaży. Jeden użytkownik — ja.
Jak działa (krok po kroku)
1. Wprowadzenie. Otwiera się proste okno. Wprowadzam temat filmu i wybieram głos lektora z listy (**lista głosów pobierana automatycznie z ElevenLabs przez API** — dostępne na moim koncie). Klikam „Utwórz”. (Drugi tryb: wklej gotowy scenariusz zamiast generacji.)
2. Scenariusz. Program przez LLM API (OpenAI/Anthropic, klucz w ustawieniach) pisze scenariusz na zadany temat o określonej długości.
3. Podział na sceny. LLM dzieli scenariusz na sceny i dla każdej zwraca:
- tekst sceny;
- typ wizualizacji: wideo lub zdjęcie;
- zapytanie wyszukiwania (rozwinięta fraza, co powinno być w kadrze);
- oznaczenie „highlight” + ocenę ważności 1-10 (dla intro, patrz poniżej).
4. Lektura. Tekst wysyłany jest do ElevenLabs API wybranym głosem → audio. Pod długość audio każdej sceny przycinany jest materiał wideo.
5. Dobór wideo/zdjęć — z darmowych źródeł przez API (patrz lista poniżej). Dla każdego źródła zapytanie formułowane jest na swój sposób (dla dokładności). Jeśli w jednym nie znaleziono — próbuje następnego.
6. Weryfikacja (maksymalnie 3 kroki na scenę).
- Krok 1: program bierze pierwszy znaleziony wariant (wideo/zdjęcie) według zapytania.
- Krok 2: wysyła kadr do LLM — „czy pasuje do sceny?”. Pasuje → stop.
- Krok 3 (jeśli nie pasuje): program przełącza się na wyszukiwanie zdjęć (po dokładnym
zapytaniu zdjęcie znaleźć łatwiej niż wideo, — tak gwarantujemy trafność w sensie) i bierze je z wzmocnionym ruchem (zoom + panorama).
- Nie robić więcej niż 3 kroki na jedną scenę — to oszczędza budżet LLM i gwarantuje, że
kadr jest w temacie.
7. Montaż przez ffmpeg/moviepy: klipy i zdjęcia pod timing lektury, zdjęcia ożywiane zoomem (efekt Kena Burnsa), głos na wierzchu, proste przejścia. Wyjście: MP4 1920×1080.
Reguły materiału wideo (ważne — za to odpowiada program)
- Pierwsze 60 sekund — intro-zwiastun: montaż najbardziej efektownych klipów z całego filmu
(brane są sceny z najwyższą oceną ważności, gdzie jest wideo) pod osobny tekst-wprowadzenie od LLM („w tym filmie dowiesz się…”), kadry bez wyjaśnień, jako intryga. Potem przejście i główna część.
- Naprzemienność: wstawka wideo minimum co ~6 sekund, nie można mieć wielu zdjęć pod rząd.
- Udział wideo: nie mniej niż ~40% czasu — żywe klipy, reszta — zdjęcia z zoomem.
- Długość kadru: 4-6 sekund (zarówno zdjęcia, jak i wideo). Nie migać, nie trzymać statyki długo.
- Dla czysto historycznych tematów, gdzie nie ma wideo — zdjęcia z wzmocnionym ruchem (zoom + panorama).
Źródła (wszystkie darmowe, z API)
Nowoczesne wideo+zdjęcia: Pexels, Pixabay. Historyczne / archiwalne (domena publiczna): Wikimedia Commons, Archive.org,Biblioteka Kongresu, Europeana, NASA, Smithsonian Open Access,Flickr Commons, openverse.
Każde źródło — oddzielny moduł, łatwo dodać nowe. Używać tylko domeny publicznej / wolnych licencji z prawem do użytku komercyjnego. Żadnego parsowania cudzych YouTube/stron, fragmentów filmów, obrazków „z googla”.
Unikalność doboru
Aby wideo nie pokrywały się z cudzymi: brać losowy klip z top wyników (nie pierwszy), prowadzić bazę już użytych (nie powtarzać), opcjonalnie — lekka obróbka klipu (crop/lustro/szybkość).
Opcje (włącz/wyłącz w ustawieniach)
- Napisy (wbudowane lub osobnym .srt).
- Muzyka w tle.
- Obróbka klipów dla unikalności.
- Rozdzielczość/format, długość wideo, udział wideo, głębokość wyszukiwania.
Wymagania techniczne
- Python. Modułowa struktura (źródła i LLM — przez wymienne moduły, aby łatwo
zmienić lub dodać).
- Wszystkie klucze API — w pliku ustawień, nie w kodzie.
- Proste okno (GUI do wyboru wykonawcy — Tkinter/PyQt), uruchamiane podwójnym kliknięciem.
- README z instrukcją, zrozumiałe logi, komentarze w kodzie.
Co daję ja
- Klucze API (ElevenLabs, LLM, gdzie potrzebna rejestracja — załatwię). Płatne opłacam sam.
- Przykłady wideo-referencji (dołączę) i przykłady tematów do testów.
Odbiór (gotowe, jeśli)
- Uruchamiam → okno → wprowadzam temat, wybieram głos → „Utwórz” → otrzymuję gotowy MP4.
- Materiał wideo zgodny z sensownością tekstu, naprzemienność wideo/zdjęć, intro-zwiastun 60 sek, lektura na wierzchu.
- Działa minimum z 6 darmowymi źródłami, z fallback między nimi.
- Weryfikacja kadrów przez LLM: maks. 3 kroki na scenę (znaleziono → LLM sprawdził → jeśli nie,
zdjęcie z ruchem jako pewniak).
- Unikalność: randomizacja + baza używanego.
- Tylko legalne źródła. Jest README, uruchamia się od zera.
Przekazanie wyniku
- Cały kod źródłowy — w otwartym widoku (wszystkie pliki), bez obfuskacji + zbudowana wersja robocza.
- Mogę sam uruchomić z źródeł według instrukcji (README: instalacja, klucze, uruchomienie).
- Kod powinien być czysty, skomentowany i zrozumiały, aby **jakikolwiek inny programista
mógł kontynuować pracę** nad nim, jeśli zajdzie taka potrzeba (bez przywiązania do autora).
- Wszystkie prawa do kodu po zapłacie — moje.
Zarządzanie miejscem na dysku (ważne)
Program nie powinien zapełniać dysku. Zrealizować:
- Po zmontowaniu wideo wszystkie pliki pośrednie (pobrane klipy, tymczasowe fragmenty,
audio-montaże) automatycznie usuwane — na dysku pozostaje tylko gotowy MP4.
- Limit na cache (parametr w ustawieniach, np. 5 GB): przy przekroczeniu stare pobrane
pliki usuwane automatycznie (najpierw najstarsze).
- Folder dla gotowych wideo i dla plików tymczasowych ustalam w ustawieniach.
- Pokazywać, ile miejsca zajęte, i przycisk „wyczyść cache” ręcznie.
Proszę wskazać w odpowiedzi
- Przykłady podobnych prac (ffmpeg/moviepy, praca z API stockowymi/archiwalnymi, ElevenLabs/LLM).
- Propozycja dotycząca GUI.
- Czy rozwiązanie wykorzystuje bazę danych (jaką i po co) — czy wystarczą lokalne pliki.
- Termin i koszt.