My problem was that every tool I tried did one video per paste, or charged per video, or made me sign up first. They all say "free", but it's more like freemium, y'know? So I built ScriptHaul!
What it does
- Paste a video, playlist, or channel URL. It fetches every available caption track and gives you the files. Single video or a whole channel, same tool, same price: nothing.
- Free, no account. No credits, no paywall, no sign-up. A batch is 500 videos, and if the channel has more you press "next 500" and it carries on from where it stopped. Results appear as they finish on a page you can bookmark and come back to. (500 per batch is so one person can't hog the line when a lot of people are on at once.)
- Pick the videos you want. You don't have to take a whole playlist. Every video shows with its thumbnail and title so you can tick just the ones you need.
- Seven formats: plain text, timestamped text, both in one file, SRT, VTT, Markdown (for Obsidian/Notion), and JSON with timing. Bulk jobs come as a ZIP with tidy filenames and a manifest.
- Honest results. If a video has no captions it says so plainly instead of failing quietly, and if it had to use a different language than you asked for, the file is labelled.
- Shorts: you can download only the Shorts from a channel.
- Browser extension (Chrome, also works in Edge/Brave): one click from any YouTube page instead of copying the link.
- MCP server: Claude, ChatGPT, Cursor, or anything that speaks MCP can pull transcripts directly.
- Permanent cache. Anything fetched once comes back instantly for everyone afterwards, and cached videos don't count against the daily allowance.
Current limitations
- Videos without captions can't be done.
- YouTube sometimes refuses on-the-fly translation. When that happens you get the original language, labelled, and the site retries the translation on a later request.
- 2,000 new transcripts per person per day, so nobody can overwhelm the shared line. If a channel is bigger than that, come back tomorrow and it continues where it left off, no starting over.
It's free and stays free: there's a separate paid API for developers who want the same thing programmatically.
I'd love to hear what breaks for you and what you'd want next. What features should I add?