A friend sent me a 40-minute lecture recording two nights before her exam and asked if my quiz tool could just "pull the transcript" from the video URL. The honest answer was no, and after building the alternative, I don't think I want it to.
My first instinct when I started quizpaste.com was to build a YouTube scraper: paste a URL, hit the captions endpoint, extract the transcript, generate a quiz. I got as far as a working prototype using youtube-transcript-api before I stopped and thought about what happens six months from now when YouTube changes how captions are served, or rate-limits the endpoint, or the video is age-restricted, or the uploader disabled captions entirely. Every one of those breaks silently, and I'd be the one finding out from a support email instead of a test.
So I ripped it out. Instead, quizpaste just takes text. If you want a quiz from a YouTube video, you open the transcript panel under the video, click "Copy transcript," and paste the raw text into the same box you'd use for lecture notes. No API key, no scraping, no maintenance burden tied to a UI I don't control. It is a worse demo (you can't just drop a URL) and a more durable product.
The harder engineering problem turned out to be downstream of that decision, not upstream of it: making sure every question the model generates can actually be traced back to a sentence in whatever text you pasted, transcript or notes. The generation step asks the model for candidate question/answer pairs, but before anything reaches your screen, a second pass checks whether the answer text has a real match against the source: not a fuzzy vibe-check, an actual substring/near-match search against the original paragraph. If a candidate question doesn't clear that bar, it's discarded and never shown to you, quietly, no retry loop that eventually gives up and shows you something ungrounded anyway. That constraint is what makes the transcript-paste approach work at all: a hallucinated answer sourced from "general knowledge about the video" would be useless once you're staring at a flashcard with no way to check it.
The tradeoffs I made are honest ones. There's no account sync between devices right now, so if you generate a quiz on your laptop it doesn't follow you to your phone, and the free tier caps out at two generations per IP per day (that cap exists to keep the AI bill sane, not to push an upgrade, because there currently isn't a paid tier to push you to). Export is .tsv and CSV, Anki-importable, but there's no packaged .apkg file yet.
If you're building anything that ingests third-party platform content, I'd genuinely rather maintain a slightly worse first-run experience than own a scraper that breaks the moment someone else's frontend changes. Happy to talk through the citation-matching logic in more detail if anyone's solving a similar problem.
Top comments (0)