Project · Automation and AI pipeline · In development

YouTube AI Story.

A Python pipeline that turns a topic into a finished video on my own PC: a local language model for ideas and scripts, local text-to-speech, video rendering with optional GPU encoding, similarity checks and a file manifest. It is treated here as a technical system, and the page says which parts are only partly built.

Status
In development · not released
Role
Developer
Core stack
Python, Ollama, Coqui XTTS, MoviePy and FFmpeg, OpenCV, Flask
Desktop shell
Tauri (Rust and TypeScript), early stage
How this page was written. I read the project source on my own PC. I have not benchmarked it or run an automated test, because none exist yet. Statements below describe what the code does, not measured results. Status words: Built means the code exists and is wired into the pipeline; Partial means some of it exists; Planned means it is not implemented.

Overview

What it is for.

It explores how far a chain of local AI tools can be automated end to end: choosing an idea, writing a script, recording a voiceover, rendering and checking the result. The interest for me is the orchestration, error handling and record keeping, not content volume.

Story-style videos are the test case. It is a technical system in progress, not a content business and not a finished product.

Architecture

How the parts fit together.

Read from the source. A Flask dashboard and a Tauri desktop shell sit alongside the same Python modules.

YouTube AI Story architectureA Flask dashboard calls a Python pipeline. The pipeline uses Ollama for ideas and scripts, XTTS for voice, MoviePy and FFmpeg for rendering, and similarity checks, then writes a manifest to local storage. A Tauri desktop shell prepares the runtime and lists workspace files but does not yet start the pipeline. Flask dashboardAPI routesPipelinePython orchestratorOllama · XTTS voiceMoviePy · FFmpegSimilarity checksLocal storagevideos · manifestsTauri shell: setup only
Solid boxes are built. The dashed box is the desktop shell, which does not yet drive the pipeline.

Technical evidence

What the code actually does.

Local models

Ideas and scripts come from a model served by Ollama on the PC (the default in the config is llama2, set by an environment variable). Voice uses Coqui XTTS v2, loaded on the GPU first and then the CPU. If the model fails, template ideas and scripts are used, so output may not come from the model.

GPU and rendering

Video is assembled with MoviePy and encoded through FFmpeg. The renderer detects an NVIDIA or AMD GPU and chooses a hardware encoder, otherwise it uses multi-threaded x264 on the CPU. Short clips are 1080 by 1920 and long-form is 1920 by 1080.

Error handling

Each idea gets up to three takes. A take that fails or is blocked is retried, and the pipeline returns separate lists for created, blocked and failed items instead of stopping on the first error.

File manifests

After a successful project it writes a local JSON file with the creation time, the inputs and a SHA-256 hash of each output file. It is a record for integrity checks, not proof of ownership or a legal registration.

Background jobs

None. The pipeline runs in the foreground and the Flask server is threaded. A scheduling library is listed as a dependency but the source does not use it, so scheduled or queued jobs are Planned.

Packaging

The Tauri app, named Creator Studio, version 0.1.0, has a build log from 2 September 2026 showing one MSI built. I have not tested installing it. It currently checks and prepares the Python, Ollama and FFmpeg runtime, lists project files and validates a YouTube API key. It does not yet start the pipeline.

Evidence

Screenshots and measurements.

None are published yet, and I will not publish invented ones.

Limits

Known limitations.

Go deeper

Go deeper.

Questions

About this project.

Is it finished?

No. The modules exist and run as a Python pipeline. The desktop app, tests, benchmarks and upload are not done.

Does it run in the cloud?

The models and rendering run locally. Optional research calls YouTube or SerpApi with your own key, and a cloud text-to-speech fallback exists but is off by default.

Is the source public?

Not yet. I can walk through it on request.

← Projects · All projects