Abstract
A compact Python pipeline that converts text content into narrated video files by chaining TTS audio generation, subtitle timing, and FFmpeg rendering into a repeatable batch workflow. The interesting part is the deterministic, stage-based structure that lets multiple text items be processed without touching a non-linear editor.
1. What This Is
The project automates a repetitive text-to-video content format. Each run takes a text item, splits it into narration-ready segments, generates speech audio, produces synchronized subtitle timing, and renders a final video with FFmpeg. The goal was batch throughput: process many items without manual editing per video.
2. How It Works
The pipeline is linear and deterministic. Python orchestrates each stage; FFmpeg handles the final composition. No interactive editing step is involved.
| # | Stage | Input | Tool | Output |
|---|---|---|---|---|
| 01 | Load & prepare text | Raw text item | Python | Normalized text |
| 02 | Segment for narration | Normalized text | Python | Narration-ready segments |
| 03 | Generate speech | Text segments | TTS engine | Audio file |
| 04 | Build subtitle timing | Audio + segments | Python | Subtitle/timing data |
| 05 | Render final video | Audio + subtitles + visuals | FFmpeg | Video file |
3. Constraints
-
No public repository
No matching GitHub repo was identified, so implementation details beyond the staged pipeline are undocumented. The specific TTS provider, subtitle aligner, and background-media source are not specified.
-
Source acquisition undefined
The portfolio does not document how source text is obtained (scraping, API, manual input). The pipeline assumes text arrives pre-prepared at stage one.
-
Closed project, no iteration
Marked CLOSED in the 2026 project set. No further development, testing, or refinement was performed after the initial build.
-
Single-format scope
The pipeline targets one fixed output format. Adapting it to different aspect ratios, subtitle styles, or narration voices would require modifying the FFmpeg composition step.
4. Next
- a. Document the specific TTS provider and subtitle-timing method so the pipeline is reproducible from source.
- b. Add a background-media stage (static image or looping video) before the FFmpeg render so output is not audio-only.
- c. Wrap the five stages in a CLI entry point with a simple input-directory / output-directory contract for batch runs.
— end of report —