Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 YouTube Transcript Generator

A fast, modern, and production-ready web application for extracting YouTube video transcripts with a clean user experience, intelligent caching, and built-in rate limiting.

Python Flask License Status Responsive


📖 Overview

YouTube Transcript Generator allows users to instantly retrieve transcripts from YouTube videos by simply pasting a video URL.

Designed with performance, scalability, and clean architecture in mind, this project demonstrates production-oriented backend development using Flask, efficient caching, robust error handling, and API protection.


✨ Features

🚀 Core Features

  • Paste any YouTube video URL

  • Automatic Video ID extraction

  • Fetch transcripts in seconds

  • Timestamped transcript view

  • Plain text transcript view

  • One-click copy transcript

  • Download transcript as TXT

  • Search within transcript

  • Transcript statistics

    • Word count
    • Character count
    • Duration
    • Number of transcript segments

⚡ Performance

  • Intelligent in-memory caching
  • Automatic cache cleanup
  • Retry mechanism with exponential backoff
  • Reduced API calls
  • Fast response times

🔒 Security

  • API rate limiting
  • Daily request quota
  • Input validation
  • Secure HTTP headers
  • Graceful error handling
  • Protection against abusive requests

📱 User Experience

  • Responsive design
  • Modern UI
  • Loading indicators
  • Error notifications
  • Mobile friendly
  • Clean typography

🏗️ Tech Stack

Backend

  • Python
  • Flask
  • Flask-Limiter
  • youtube-transcript-api

Frontend

  • HTML5
  • CSS3
  • JavaScript (Vanilla)

Deployment

  • Gunicorn
  • Render
  • Cloudflare (optional)

📂 Project Structure

.
├── app.py
├── requirements.txt
├── services/
│   └── transcript.py
├── static/
│   ├── style.css
│   ├── script.js
│   └── favicon.svg
└── templates/
    └── index.html

⚙️ Installation

Clone the repository

git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.git

Move into the project

cd YOUR_REPOSITORY

Create a virtual environment

python -m venv venv

Activate it

Windows

venv\Scripts\activate

Linux / macOS

source venv/bin/activate

Install dependencies

pip install -r requirements.txt

Run the application

python app.py

Open

http://127.0.0.1:5000

🌐 Live Demo

Try the application here:

🚀 https://yt-subtitle-generator-1.onrender.com

No installation required paste a YouTube URL and retrieve the transcript instantly.

⚠️ Demo Notice

The live demo may occasionally be unavailable for transcript retrieval. This is not an application issue. The project uses youtube-transcript-api, and YouTube frequently blocks requests originating from cloud hosting providers (such as Render, AWS, Azure, etc.). As a result, transcript requests from the hosted demo may fail even though the application itself is functioning correctly.

For the best experience, clone the repository and run the project locally, where transcript retrieval is significantly more reliable.

Local Usage Recommendation

  • Run the application on your local machine for consistent results.
  • Avoid sending a large number of transcript requests in a short period of time. Excessive requests can cause YouTube to temporarily block your IP address, preventing transcript retrieval until the restriction is lifted.
  • The application includes caching and rate limiting to reduce unnecessary requests, but responsible usage is still recommended.

Thank you for your understanding.

🛡️ Production Features

  • Request validation
  • Centralized error handling
  • Structured logging
  • Rate limiting
  • Intelligent caching
  • Retry mechanism
  • Security headers
  • Health endpoint
  • Scalable architecture
  • Clean project structure

📈 Future Improvements

  • Export as SRT
  • Export as VTT
  • Multi-language transcript selection
  • AI-powered transcript summarization
  • Chapter generation
  • Keyword extraction
  • Sentiment analysis
  • Docker support
  • Redis caching
  • PostgreSQL support
  • User authentication
  • REST API documentation

💡 What This Project Demonstrates

This project showcases practical software engineering skills beyond basic CRUD applications.

  • REST API development
  • Backend architecture
  • Production-ready Flask development
  • API security
  • Caching strategies
  • Error handling
  • Performance optimization
  • Clean code organization
  • Deployment readiness

🤝 Contributing

Contributions, feature requests, and bug reports are welcome.

Feel free to fork the repository and submit a pull request.


📄 License

This project is licensed under the MIT License.


👨‍💻 Author

Mohit Bhatt

Master's in Computer Science

If you found this project useful, consider giving it a ⭐ on GitHub.

About

Production-ready YouTube Transcript Generator using Flask and youtube-transcript-api with caching, retry mechanisms, rate limiting, REST API, and responsive frontend.

Resources

Stars

Watchers

Forks

Contributors

Languages