work / coursified

Coursified

Any public YouTube video into a structured course with quizzes, a graded assessment and a verifiable certificate.

Years
2025–26
Status
live
Live
coursified.app

What it is

Paste a YouTube link. About two minutes later there is a course: modules cut from the creator's own chapters, a summary per module, quizzes answerable only from the transcript, a graded final assessment with labs, and a certificate with a public verification page.

Read more

The hard part is the transcript. YouTube does not offer one through a stable public API, so the pipeline climbs a three-tier ladder: an edge fetcher Worker rotating Innertube clients (free), a residential-proxy relay on a VM, then a transcript library run through the same proxy. Each tier's health is tracked and emails me when it degrades. Transcripts sit in KV over a Neon row that expires after 21 days.

Generation runs on Z.ai's GLM-4.6, with GLM-4.5-Air for the cheaper steps, and every model call is traced with its token count. A course costs about $0.035 and takes about 115 seconds. Pricing is in naira, with transfer and mobile money, because the first users are in Nigeria.

It ships as a Next.js web app, an Expo app and an MCP server at mcp.coursified.app, so an agent can build and take courses with OAuth or an API key.

Stack

  • TypeScript
  • Next.js
  • Expo
  • Hono
  • Cloudflare Workers
  • Cloudflare Queues
  • Durable Objects
  • Neon Postgres
  • Drizzle
  • better-auth
  • Z.ai GLM
  • MCP

Counted

  • 543commits in the rebuild
    git rev-list, 2026-09-03 → 09-17
  • ~$0.035cost per generated course
    README, measured
  • ~115 swall clock per course
    README, measured
  • 103test files
    repo count
  • 5 / 10apps / packages
    workspace manifest

How it works

The system as a machine on a bench. Hover or use the arrow keys to drive it.

s
The part working now: the gripping roller, the blade, the quiz stamp, the sealThe tape: one video, cut on its own chapter marks into modulesIdle tiers: a roller stays up until the tier before it slipsCoursified's pipeline as a press line. Captions come through a three-tier ladder (edge fetcher, residential relay, transcript library) and the first tier that grips does the work; the outline follows the creator's chapters at one module per 20 minutes, never more than 16; every module gets a quiz, the course a graded assessment and a certificate anyone can verify, in about 115 s for about $0.035.

The path through it

  1. resolve_sourceThe URL becomes a video id and its metadata: title, duration, the creator's chapters.
  2. fetch_transcriptsTier 1 edge fetcher, tier 2 residential relay, tier 3 a transcript library through the proxy, then a chapter fallback. KV hot cache over a 21-day Neon row.
  3. classify_course · generate_outlineModules follow the creator's chapters, grouped and never split, about one per 20 minutes, capped at 16.
  4. enrich_modules · generate_quizzesSummaries, then questions that must be answerable from the transcript alone.
  5. generate_assessment · finalizeA graded final and labs, checked by the sheet and slides validators; the course is published.
  6. Learn and certifyPlayback stays in YouTube's own player. A pass issues a certificate verifiable at /verify-certificate.