soham bhagatSOFTWARE ENGINEER
ALL WORK2023 — 2026

Video Automation

Video bots I've built over the years.

Video Automation is a line of attempts that started with one-off generators and ended with Faceless, a typed pipeline that can render and publish a short on schedule.

One question, asked for years

This isn't one repository. It's a line of attempts that kept circling the same question: can I automate creating videos which nature are simple enough to be automated?

What each attempt taught me

Sigma put hosted narration, external APIs, local media, SQLite, and publishing into a single run. It worked well enough as a demo and was miserable to recreate; I ended up preserving whole environment files because rebuilding the setup from scratch felt nearly impossible. Sigma for Life changed the goal from making one clip to keeping a stream alive, feeding generated videos into an always-on YouTube stream that I got running for roughly 176 hours after studying how services like Lofi Girl stayed up. The Stoic went deep on the voice itself through FastSpeech 2 and HiFi-GAN. Quotify and MediaMate tried to split the pipeline into modules that other projects could share. Fragile provider dependencies, browser state, credentials, and generated files kept showing up across all of them, easy to hide inside a working demo, painful to deal with six months later.

Doing it again with real boundaries

Faceless is a deliberate rerun of the same ambition with the standards I didn't have the first several times. It picks an authorized source, researches it, writes narration and captions, renders a vertical MP4 with Remotion, and publishes only when a run has been explicitly enabled. TypeScript contracts, tests across the CLI, config, media, and publishing paths, a fixture mode that avoids live provider calls by default, usage budgets, and temporary object storage that gets deleted once a platform has fetched the media, all make the boundaries the earlier projects lacked visible and enforced instead of implied. It is also the project where I opted for a more agentic development, rather than traditional.

Where it stands

Found in Code is the Instagram account Faceless publishes to and is running on a Kubernetes CronJob.

STACK

TYPESCRIPT · PYTHON · REMOTION · FFMPEG · PYTORCH · KUBERNETES