Dev.to
6/17/2026

Why your YouTube transcript scraper started returning empty strings (and how to fix it in 2026)
Short summary
YouTube transcript scrapers return empty responses in 2026 because YouTube now requires a Proof-of-Origin token (PoToken) bound to each video, plus datacenter IPs are blocked. Use bgutils-js to handle the BotGuard challenge, mint a video-specific token, and fetch captions with &pot=<token>&c=WEB&fmt=json3 parameters. For single videos, use the free get-youtube-transcript CLI; for scale, add residential proxies via Apify.
- •YouTube now requires PoToken for caption access; datacenter IPs are blocked
- •Use bgutils-js + jsdom to solve BotGuard challenge and mint video-bound tokens
- •Free CLI tool available for single videos; use Apify proxies for batch scraping
Generated with AI, which can make mistakes.
Is this a good recommendation for you?



