BY JULIEN JUNG IN BUILDING IN PUBLIC

Day 11 – Deploying My App & Fighting YouTube’s IP Blocks

Overcoming YouTube's anti-bot system (part 1)

Today was a big challenge. I finally deployed my backend on Railway, but I hit a major roadblock: YouTube blocked my server's IP. Since I’m using an unofficial API to fetch video transcripts, YouTube’s anti-bot system detected my repeated requests and shut me out.

🔥 The Problem: YouTube Blocks IPs After Too Many Requests

I quickly realized that without a workaround, my app wouldn’t function. Every time I tried to fetch transcripts, YouTube would blacklist my IP.

🛠️ The Solution: Proxy Rotation with WebShare

To bypass this, I set up a proxy rotation system using WebShare. This allows me to switch between multiple IP addresses, preventing YouTube from catching and blocking a single one.

🏗️ Major Refactoring – Cleaning Up My Code

Another big task today was refactoring my code. My content.js file had grown to over 2100 lines, making it almost impossible to manage. I broke it down into smaller, modular files, improving readability and maintainability.

🔑 Licensing System with Gumroad

I also implemented a license key system using Gumroad. Now, every user who downloads my Chrome extension gets a unique license key to activate it. This ensures better control over who can use the extension.

🐍 Implementing Proxy Rotation in Python

To make my proxy system work, I coded a proxy rotation algorithm in Python inside my youtube.py file. Each request now switches between different proxies, reducing the risk of getting blocked.

🚀 Deployment Issues on Railway

Even after deploying everything, I encountered failures in fetching transcripts. The proxy system still needs tweaking to work correctly in a production environment. That’s my next challenge!

💡 Key Takeaways from Today:

Always expect roadblocks when dealing with third-party APIs
Proxy rotation is a must when scraping or making frequent requests.
Refactoring is worth the effort—cleaner code makes life easier.
A licensing system adds control is pretty easy to set up with Gumroad.
Deployment is never just “set it and forget it”—there’s always debugging!

Tomorrow, I’ll refine my proxy rotation logic, ensure my app runs smoothly on Railway, and start working on the branding and marketing of my app.

JayI'm also posting daily updates on X, you can follow me there too!

Want more updates? 🚢

I share occasional email updates about my entrepreneurial journey and interesting stories along the way