Skip to content
explainroo

explainroo 0.5: run it with npx, and use outside services

Version 0.5.0

explainroo 0.5 runs with npx, and it can use outside services on your own key, like AI video clips and posting to your channels. A whole video still needs no account and no key.

Run it with npx

You don’t have to clone explainroo anymore. Tell your agent to run npx --yes explainroo docs and follow what it prints. That page has the steps for making a video, and the agent reads the topic it needs for each step. The prompt on the home page says this now. See getting started.

Outside services on your own key

Each step of making a video has a free choice first. Some steps can now also use a service that you pay for yourself. explainroo services lists the choices with what each costs and what leaves your computer, and explainroo connect sets one up. Your agent shows you the choices, free ones first, and you choose. The connected services page lists them too.

  • AI video clips come from OpenRouter, on the same key as images. explainroo clip shows the price first, and a budget in video.json covers all the clips of a video. See AI video clips.
  • Cartesia is a second paid voice, next to ElevenLabs.
  • Posting works through YouTube directly, or through Buffer and Blotato for the other platforms. explainroo package writes a folder with the video and the words for one platform. explainroo publish posts it after a dry run and a yes, and Buffer can keep it as a draft. See posting a video.

A project keeps a record of what was paid for in its history/ folder. The same request again uses the file it already bought, and a request whose outcome is unknown is never sent again by itself.

explainroo share is meant to give a video a page link on explainroo.com. That hosted service doesn’t run yet, so for now the command sends nothing and says so.

German narration

German works with a paid voice or your own recording, because Kokoro has no German voice. The speech check reads German numbers the way a voice says them, and short forms like “z. B.” too. doctor --language de checks what a language needs before you have a project. See a German video.

Short vertical videos

"captions": "bold" shows two to four big words at a time, and s.short draws a hook title that is there on the first frame. "sizes" in video.json gives one size settings of its own. So the TikTok version can have bold captions while the wide video has none. See settings for one size.

Your own music

A video can play your own music file at the level of the built-in music, and s.sound plays a sound file on a word. Soundroo is a free tool where your agent writes original music, and its tracks go into a video as a music file. I also make Soundroo. See your own music.

Checks

check now also sees shapes and arrows, so it finds shapes that cover each other and arrows that run through a shape. The speech check lists the words it only nearly heard. render keeps the sound at -1 dBTP or lower, and verify fails a file that clips. See checking a video.

Older projects keep their look

A project made before keeps its look, frame for frame, until you add "defaults": "0.5" to its video.json. The line brings the new look, like bigger arrow labels. Look at the stills again after you add it, because labels may move. init writes the line into every new project. See the defaults of 0.5.

Also

  • "targetSeconds" in video.json gives a video an exact length, and voice --estimate shows the length before you make the voice.
  • explainroo set writes one setting into video.json, like targetSeconds 40.
  • s.draw takes a box, so check can see a drawing.
  • On Debian and Ubuntu, doctor --fetch --language es sets up espeak-ng without root.
  • The example projects come with explainroo, and explainroo doctor prints their folder.
  • explainroo words lists the spoken words of a scene with their times, for picking cues.
  • One project can make the same video in several languages, with a script for each.
  • capture saves the font files a page loaded, and --name keeps several pages of one site side by side.

The full list is in the release notes on GitHub.

All news