Changelog
The tool is at version 0.1.0 and has been in development since August 2026. Entries below are the actual changes, newest first. There is no release cadence: things change when the operator hits a problem worth fixing.
September 2026
September 7 — Titles and coverage
Stopped ending generated titles on a preposition. Gave an entry point to the five books that had none. Started measuring narration length instead of estimating it, so video timing matches the actual audio.
September 6 — Never return an empty book
A filter meant to strip front matter could delete an entire book when the file was a single document with a generic page title, and it failed silently — surfacing much later as "text too short". Now a document over a size threshold is never treated as front matter, and if the filter would remove everything, it returns everything instead.
September 5 — PKCE, title validation, short timing
The YouTube authorization flow moved to PKCE (S256), so the authorization code cannot be exchanged by anyone who obtains it without the verifier. Titles YouTube would reject are now blocked before upload rather than after. Shorts carry their scheduled hour.
September 5 — TikTok publishing
Added publishing to TikTok, with caption text handled separately so it is not mangled by the formatting used for YouTube descriptions.
September 4 — Reliability of captions, shorts and reading
Stopped losing the caption track and the short when one was left as a draft. Started reading the whole book rather than only its opening pages. Added an opening and closing that address the viewer directly.
September 2 — Script duration and cover checks
Fixed the target duration of the script, and blocked producing a video carrying the wrong cover.
August 2026
August 28 — Vertical shorts
Added production of vertical 1080×1920 shorts and publishing them to YouTube.
August 27 — Three languages
Added production in Portuguese, English and Spanish from the same source material.
August 26 — First commit
Environment loading and provider-dependent API key selection. The repository starts here.
The repository is private and has a single contributor. Version 0.1.0 is the only version declared; there is no semantic versioning beyond it.