Skip to content
← All work

Media automation · 1 min read

ISMA

★ Used in production at a company

Takes YouTube Shorts all the way to Instagram — finding videos, prepping them, scheduling, and posting. It's part of a company's day-to-day now.

🔒 Private code

/ 01

The problem

Moving a YouTube Short to Instagram looks simple — until it's every day. Find the video, prep the file, pick a time, then check whether it actually went out. Repeated by hand, that loop eats hours and quietly drops posts.

☝ Poke the mini version

isma · dashboard

/ 02

Decisions that mattered

  1. 1

    The playlist decides the route

    Instead of a settings screen, the YouTube playlist a Short lands in decides how it gets published — a normal Reel or a collab. The team keeps working in a tool they already use.

  2. 2

    Every step is a tracked job

    Download, prep, schedule, and post each run as jobs in a SQLite engine with retries and cancellation. When the Instagram API answers ambiguously, ISMA checks whether the post exists before trying again — no double posts.

  3. 3

    Fewer moving parts

    It started as SyncPost: n8n, Postgres, and a separate Mac worker. I folded all of it into one service on a single Mac mini with no external database — less to break, less to babysit.

  4. 4

    Ops where the team already is

    A Slack /check command with action buttons plus a small dashboard, both reading the same job engine. Checking the queue is one message away.

/ 03

How it flows

  1. 01

    New Short

    detected, route by playlist

  2. 02

    Prep

    yt-dlp + FFmpeg

  3. 03

    Schedule

    in Bali time (WITA)

  4. 04

    Post

    Reels & collabs via Graph API

  5. 05

    Check

    Slack /check + dashboard

/ 04

Where it landed

  • ✦Running in production as part of a company's daily workflow
  • ✦The find → prep → schedule → verify loop no longer needs a person in it
  • ✦One machine, no external database, every step visible and retryable

Built with

  • Python
  • FastAPI
  • SQLite
  • yt-dlp
  • FFmpeg
  • Instagram / Slack API
Next projectSistem Tugas↗