Collaborated with Mykyta on the development of a rather complex local program for Windows that automatically creates full-fledged videos with minimal manual involvement.
The project included not just an interface or a separate script, but a complete production pipeline. The user inputs a topic or uploads their own script, after which the program generates and allows editing of the text, creates voiceover through TTS, breaks the material into scenes and individual frames, searches for images and videos in open licensed sources, checks usage rights, selects the most suitable materials using LLM, and assembles the final video through FFmpeg.
A very large volume of work was completed as part of the project.
A full-fledged interface was developed on PySide6 in a dark theme with separate screens for video creation, queues, sources, settings, API keys, logs, and project management.
Several different sources of images and video materials were connected and standardized — each with its own API, response structure, limitations, and technical features. The developer not only connected them formally but also separately checked real responses, resolved issues with limitations, timeouts, links, image quality, and key transmission.
Strict filtering by license types was implemented. The program uses only materials permitted for commercial use and automatically creates a separate file with authors, license types, and links to original materials next to each video.
A multi-tiered system for selecting materials based on the meaning of each scene was built, taking into account quality and usage history, so that the same frames do not repeat between videos. Re-searches and safe backup options are provided if exact material is not available.
The editing core was created on FFmpeg with hardware acceleration through NVIDIA. The program assembles videos in high resolution and frame rate, correctly processes materials of different aspect ratios without distortion, and adds smooth motion to static images. A flexible system of editing settings and style presets for different types of channels was implemented.
The program automatically creates an introductory teaser from the strong moments of the video, a subtitle file, and, if necessary, embeds subtitles into the video. Atmospheric visual effects with adjustable intensity and preview were also implemented.
Voiceover is created separately by scenes through a TTS provider. The model name is included in the settings, so it can be replaced without modifying the code if changes occur on the provider's side. The architecture includes a separate interchangeable module for an alternative voiceover provider that can be activated in the future.
The developer separately measured the actual speed of different voices and languages and made automatic calibration of the script duration — the program compares the requested and actual duration of the video and gradually adjusts.
A full queue for dozens of videos in a row was implemented, with the ability to change order, delete, and sequentially assemble automatically. An error in one video does not stop the other tasks. The queue is saved after closing the program and continues working from the saved state.
Special attention was paid to reliability. In case of a failure, computer reboot, API limit exhaustion, or manual stop, the program saves already completed stages and continues from the last successful step without re-paying for what has already been done.
Cache management was implemented: the program automatically deletes temporary files but saves completed videos, licenses, history of used materials, and the queue.
After each assembly, the program generates a detailed log with key metrics for the video.
I would like to highlight the developer's approach to testing and communication. Mykyta regularly checked not only the fact of the program's launch but also the real responses from external services, the quality and cost of work, and the duration of assembly. He reported all found issues immediately and in detail, even when the result turned out to be worse than the initial estimate, and did not try to hide or adjust the metrics — he proposed an honest correction plan, including at his own expense where it was fair.
Such a level of transparency is especially important to me. Throughout the work, I understood what was already ready, what limitations existed, and what was being worked on at that moment.
As a result, I received a portable Windows build that runs without separate installation of dependencies, complete source code without obfuscation, detailed instructions, a technical report with measurements, test videos, and accompanying files.
The project turned out to be significantly more complex than a regular automatic editing program, as it combines LLM, TTS, computer vision, multiple external APIs, content licensing, FFmpeg, task queues, and recovery from failures. Mykyta understood all parts of the system well, proposed many useful improvements, and in several cases found problems that could not be seen just from the initial technical assignment.
I am satisfied with the work and communication. We continue to collaborate on the next stage.