Sennable

Portfolio / AI automation systems

HSID Shorts Engine

A devotional-content Shorts factory that writes, verifies, renders, and publishes two videos a day — every generative model local, every publish scheduled.

Built and run by Joel Wickremasinghe

running in production

2/day

publish cadence to YouTube + TikTok — 70 automated slots hit, Jun 19 – Jul 30 2026

measured · publish sentinel files

Problem

What needed to exist

A daily devotional channel lives or dies on cadence. Producing one short by hand — script, scene art, narration, captions, upload — takes hours, and a schedule that depends on someone showing up every day eventually breaks.

Faith content adds a harder constraint: a doctrinal error isn't a typo, it's a breach of trust. The pipeline needed a verification gate as rigorous as the render itself.

What we built

The system

A two-generation system. Era one was a nightly saint-of-the-day pipeline fired at 22:00 by Windows Task Scheduler (57 finished dailies). The current engine selects from a Needs × Moments content matrix and batch-builds a buffer of shorts — currently rendered 12 days ahead of the publish schedule.

Each short passes through a script grader, a theology verifier running a two-revision Reflexion loop on a separate model family, scene generation, a voice-cloned narration, word-synced burned captions, and a motion-upgrade finishing pass. Nothing publishes without human approval in a local review server — the publish gate enforces it.

Every generative stage runs on local GPUs: gemma4:26b writes and visually QCs, deepseek-r1:14b verifies theology, ComfyUI paints the scene, Qwen3-TTS narrates, faster-whisper times the captions. Zero cloud API calls in the render path. Publishing drives a real Chrome browser over the DevTools Protocol — two scheduled slots a day, timed to the US audience.

Live surface

Where it publishes

live channel

@HolySpiritInspirationDaily

The YouTube channel this pipeline publishes to, twice a day

Open channel

live channel

@holyspiritinspirationd

The TikTok account the same pipeline cross-posts to automatically

Open channel

Links checked 1 August 2026. Screenshots are static captures — the live site is the source of truth.

Architecture

HSID Shorts pipeline — as implemented

HSID Shorts pipeline — as implementedVERIFIEDAPPROVED ONLYANALYTICS READBACKCONTENT MATRIXneeds × momentsSCRIPT AGENTgemma4:26b · gradedTHEOLOGY GATEdeepseek-r1 · reflexionSCENE ARTcomfyui · sdxlVOICE CLONEqwen3-ttsCAPTION SYNCfaster-whisperMOTION V2ltx-video i2vHUMAN REVIEWgate :5200CRON 2/DAYtask schedulerCDP HARNESSchrome :9222YOUTUBEprivate-firstTIKTOK

Stack

Built with

  • Python
  • Ollama · gemma4:26b
  • Ollama · deepseek-r1:14b
  • ComfyUI · SDXL
  • Qwen3-TTS voice clone
  • LTX-Video
  • faster-whisper
  • ffmpeg
  • Chrome DevTools Protocol
  • Windows Task Scheduler
  • SQLite + JSONL ledgers

Outcome

Numbers, with provenance

608

videos rendered into the pipeline's output tree

measured · filesystem count

70

automated publish slots hit between Jun 19 and Jul 30 2026 — the latest one yesterday

measured · publish sentinels

7.4 min

median end-to-end build time per short, over 73 successful runs

measured · pipeline event log

12 days

content buffer built ahead of the publish schedule

measured · output folders vs. date

19,137

YouTube views across 194 tracked videos, as of the 2026-07-27 analytics import

measured · metrics.sqlite

1,660

channel subscribers at the last on-disk capture (2026-05-08)

measured · channel registry

62

TikTok cross-posts in the current era, fully automated

measured · upload sentinels

0

cloud API calls in the render path — every generative model runs on local GPUs

architecture · pipeline source

[needs: current subscriber + view totals]

the freshest numbers on disk are dated above; we don't extrapolate

Every figure above is read from the system of record it describes. Gaps are marked, not filled in.

Also in this system

Supporting detail

The theology gate

A separate model family (deepseek-r1:14b) audits every script in a two-revision Reflexion loop before render, under hard content rules codified in the pipeline: no prosperity gospel, no health claims, no politics, no denominational judgment.

Nothing ships unreviewed

A local review server records an explicit human verdict on every short; the publish gate refuses anything not approved. Automation does the work — it doesn't get the final word.

Slots timed from analytics

The two daily publish slots (16:30 and 06:00 IST) map to 7:00 AM and 8:30 PM US Eastern — locked in June 2026 from the channel's own audience analytics, not guesswork.

Need content that ships every day without you?

This engine has hit 70 automated publish slots since June 19, with a 12-day content buffer so the schedule survives bad days. We build the same discipline for your content operation: local models, verification gates, honest telemetry.