605 USD
11 proposals
Brief I need a program in Python that runs on my PC (Windows) and creates faceless videos in the format of "voiceover + changing visuals from photos and clips" — like historical documentaries on YouTube (I will attach an example separately).
I input a topic → the program writes a script, voices it, selects video/photos from free archives for each piece of text, edits them together → outputs a ready MP4.
For me only. No website, no users, no sales. One user — me.
How it works (step by step) 1. Input. A simple window opens. I enter the topic of the video and choose a voice from the list (**the list of voices is automatically pulled from ElevenLabs via API** — available on my account). I click "Create." (Second mode: insert a ready script instead of generating.)
2. Script. The program writes a script on the topic of the specified length via LLM API (OpenAI/Anthropic, key in settings).
3. Scene breakdown. LLM divides the script into scenes and returns for each: scene text; visual type: video or photo; search query (a detailed phrase of what should be in the frame); highlight mark + importance rating 1-10 (for intro, see below). 4. Voiceover. The text is sent to ElevenLabs API with the chosen voice → audio. The video sequence is cut to match the length of the audio for each scene.
5. Video/photo selection — from free sources via API (see the list below). A specific request is formed for each source (for accuracy). If one doesn't yield results — it tries the next.
6. Verification (maximum 3 steps per scene). Step 1: the program takes the first found option (video/photo) based on the request. Step 2: sends the frame to LLM — "does it fit the scene?". If it fits → stop. Step 3 (if it doesn't fit): the program switches to searching for photos (it's easier to find photos with an exact request than videos — this guarantees relevance) and takes it with enhanced motion (zoom + pan). No more than 3 steps per scene — this saves the LLM budget and ensures that the frame is relevant.
7. Assembly via ffmpeg/moviepy: clips and photos timed to the voiceover, photos are animated with zoom (Ken Burns effect), voice on top, simple transitions. Output: MP4 1920×1080.
Video sequence rules (important — the program is responsible for this) First 60 seconds — intro teaser: a montage of the most impactful clips from the entire video (scenes with the highest importance rating that contain video) under a separate introductory text from LLM ("in this video you will learn..."), frames without explanations, creating intrigue. Then a transition to the main part. Alternation: video insert at least every ~6 seconds, no many photos in a row. Video share: at least ~40% of the time — live clips, the rest — photos with zoom. Frame length: 4-6 seconds (both photos and videos). No rapid cuts, no prolonged static shots. For purely historical topics where there is no video — photos with enhanced motion (zoom + pan).
Sources (all free, with API) Modern video + photos: Pexels, Pixabay. Historical/archive (public domain): Wikimedia Commons, Archive.org, Library of Congress, Europeana, NASA, Smithsonian Open Access, Flickr Commons, openverse.
Each source is a separate module, easy to add new ones. Use only public domain / free licenses with the right for commercial use. No parsing of other YouTube/sites, movie clips, images "from Google".Uniqueness of selection To ensure videos do not match others: take a random clip from the top results (not the first), maintain a database of already used clips (do not repeat), optionally — light processing of the clip (crop/mirror/speed).
Options (enable/disable in settings) Photos only — if enabled, the video is assembled PURELY from photos, without video clips. Each photo MUST have motion (zoom and/or pan, Ken Burns effect) — even in this mode, there should be no static "dead" frames, minimal dynamics always. If disabled — standard mode (photos + video clips alternating, as per video sequence rules). No voiceover — if enabled, the video is assembled based on the text WITHOUT generating voice: the code DOES NOT call ElevenLabs and does not overlay voice (the video sequence is selected based on the text of the scenes, timing of frames — according to rules/parameters, without reference to audio). If disabled — it automatically generates voiceover based on the text through ElevenLabs, as usual. Atmospheric overlay — if enabled, a semi-transparent layer with floating particles/dust/glowing bokeh/light fog (particle/dust/bokeh/fog overlay, screen/add mode) is applied over the entire video sequence to make the frames look alive and cinematic. When installing the program, a set of 5-8 popular overlays (particles, dust,copybokeh, fog, light cinematic "grain") is placed in a local folder — I choose the needed one from the list. Adjustable transparency/brightness of the overlay (slider 0-100%), so the effect is neithercopytoo dull nor too pronounced — I adjust the strength myself. Ideally, the overlay should also be applicable to ALREADY finished videos separatelycopy(post-processing: take a ready MP4 → choose overlay → set transparency → save),
not just during assembly. Where to get overlays for packaging (free license): Pexels, Pixabay (queriescopy"particle overlay", "bokeh overlay", "dust overlay", "light leaks", "film grain"),
Mixkit, Videezy. The performer selects 5-8 pieces and places them in the program folder. Subtitles (embed or separate .srt). Clip processing for uniqueness. Resolution/format, video length, video share, search depth.Technical requirements Python. Modular structure (sources and LLM — through interchangeable modules, to easily replace or add). All API keys — in the settings file, not in the code. Simple window (GUI at the discretion of the performer — Tkinter/PyQt), launched by double-clicking. README with instructions, clear logs, comments in the code.What I provide API keys (ElevenLabs, LLM, where registration is needed — I will arrange). I will pay for any fees myself. Examples of video references (I will attach) and examples of topics for tests.Acceptance (ready if) I launch → window → I enter the topic, choose the voice → "Create" → I receive a ready MP4. The video sequence matches the meaning of the text, alternating video/photos, intro teaser 60 sec, voiceover on top. Works with at least 6 free sources, with fallback between them. Frame verification through LLM: max. 3 steps per scene (found → LLM checked → if not, photo with motion as a sure bet). Uniqueness: randomization + database of used. Only legal sources. There is a README, runs from scratch.Delivery of results All source code — in open view (all files), without obfuscation + compiled working version. I can run it myself from the sources according to the instructions (README: installation, keys, launch). The code must be clean, commented, and understandable, so **any other programmer can continue working** on it if needed (not tied to the author). **All everyday work — through the interface (buttons, fields, sliders, dropdown lists), WITHOUT the need to touch the code.** All settings (topic, voice, options, overlay, folders, length, formats) are changed in the program window, not by editing files. The code in hand — only as my property and insurance, not as a way to control the program. All rights to the code after payment — mine.Disk space management (important) The program should not fill up the disk. Implement: After assembling the video, all intermediate files (downloaded clips, temporary pieces, audio cuts) are automatically deleted — only the ready MP4 remains on the disk. Cache limit (parameter in settings, e.g., 5 GB): when exceeded, old downloaded files are automatically deleted (starting with the oldest). I set the folder for ready videos and for temporary files in the settings. Show how much space is occupied, and a button "clear cache" manually.Please specify in your response Examples of similar works (ffmpeg/moviepy, working with stock/archive APIs, ElevenLabs/LLM). Proposal for GUI. Does the solution use a database (which and why) — or are local files sufficient. Timeline and cost.