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: wklejenie gotowego scenariusza 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ęcia 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-teaser: 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ń, jak 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 (i zdjęcia, 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 (public domain): 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 public domain / wolnych licencji z prawem do komercyjnego wykorzystania. Ż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)
- Tylko zdjęcia — jeśli włączone, wideo zbierane jest CZYSTO z zdjęć, bez klipów wideo.
Każde zdjęcie OBOWIĄZKOWO z ruchem (zoom i/lub panorama, efekt Kena Burnsa) — nawet w tym trybie nie powinno być statycznych „martwych” kadrów, minimalna dynamika zawsze. Jeśli wyłączone — standardowy tryb (zdjęcia + klipy wideo z naprzemiennością, jak w regułach materiału wideo).
- Bez lektury — jeśli włączone, wideo zbierane jest według tekstu BEZ generacji głosu: kod
NIE zwraca się do ElevenLabs i nie nakłada lektury (materiał wideo dobierany jest według tekstu scen, timing kadrów — według reguł/parametrów, bez powiązania z audio). Jeśli wyłączone — automatycznie robi lektury według tekstu przez ElevenLabs, jak zwykle.
- Atmosferyczny overlay — jeśli włączone, na całym materiale wideo nakładany jest
półprzezroczysty layer z unoszącymi się cząstkami / pyłem / świecącym bokeh / lekką mgłą (particle / dust / bokeh / fog overlay, tryb nakładania screen/add), aby kadry wyglądały na żywe i filmowe.
- Przy instalacji programu umieszczany jest zestaw z 5-8 popularnych overlayów (cząstki, pył,
copybokeh, mgła, lekkie filmowe „ziarnko”) w lokalnym folderze — wybieram potrzebny z listy.
- Regulowana przezroczystość/jasność overlayu (suwak 0-100%), aby efekt nie był ani
copyzbyt przyciemniony, ani zbyt wyraźny — sam dostosowuję siłę.
- Pożądane, aby overlay można było nakładać i na JUŻ gotowe wideo osobno
copy(postprodukcja: wziąć gotowy MP4 → wybrać overlay → ustawić przezroczystość → zapisać),
a nie tylko przy montażu.
- Skąd wziąć overlaye do kompletu (wolna licencja): Pexels, Pixabay (zapytania
copy„particle overlay”, „bokeh overlay”, „dust overlay”, „light leaks”, „film grain”),
Mixkit, Videezy. Wykonawca dobiera 5-8 sztuk i umieszcza w folderze programu.
- Napisy (wbudowane lub osobnym .srt).
- 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
zamienić 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 sensownym tekstem, naprzemienność wideo/zdjęć, intro-teaser 60 sek, lektura na wierzchu.
- Działa minimum z 6 darmowymi źródłami, z fallbackiem 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 otwartej formie (wszystkie pliki), bez obfuskacji + zbudowana wersja robocza.
- Mogę sam uruchomić z źródeł według instrukcji (README: instalacja, klucze, uruchomienie).
- Kod musi być czysty, skomentowany i zrozumiały, aby **każdy inny programista
mógł kontynuować pracę** nad nim, jeśli zajdzie taka potrzeba (bez powiązania z autorem).
- **Cała codzienna praca — przez interfejs (przyciski, pola, suwaki, rozwijane listy),
BEZ potrzeby dotykania kodu.** Wszystkie ustawienia (temat, głos, opcje, overlay, foldery, długość, formaty) zmieniają się w oknie programu, a nie edytowaniem plików. Kod w rękach — tylko jako moja własność i zabezpieczenie, a nie jako sposób zarządzania programem.
- 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-clipy) automatycznie usuwane — na dysku pozostaje tylko gotowy MP4.
- Limit na cache (parametr w ustawieniach, np. 5 GB): przy przekroczeniu stare pobrane
pliki usuwane są 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 ze stockowymi/archiwalnymi API, ElevenLabs/LLM).
- Propozycja dotycząca GUI.
- Czy rozwiązanie wykorzystuje bazę danych (jaką i po co) — czy wystarczą lokalne pliki.
- Termin i koszt.