Skip to content

Repository files navigation

πŸ“± YouTube to 3GP Converter for Feature Phones

Convert YouTube videos to 3GP format optimized for feature phones like Nokia 5310 and old browsers like Opera Mini 4.4.

Feature Phone Friendly Opera Mini 2G Network

✨ Features

Core Features

  • Quality Options - Choose from 4 MP3 qualities (128k-320k) and 4 video qualities
  • Smart Compression - Advanced FFmpeg settings for better quality at smaller sizes
  • Cookie-Less Operation - Works without cookies on cloud hosting (Render free tier compatible)
  • No JavaScript - Works on Opera Mini 4.4 and older browsers
  • Ultra-Low Bitrate - Optimized for 2G networks (176x144 resolution)
  • Long Videos - Supports up to 6 hours of video
  • Auto Cleanup - Files deleted after 6 hours
  • Free Forever - No API keys, no ads, completely free
  • Time Estimates - Shows processing time from the start (no guessing!)

Advanced Features

  • Cookie-Less Downloads - Works WITHOUT cookies using 7 different download methods optimized for cloud hosting
  • Smart Download Strategy - Android Client β†’ Android Embedded β†’ Android Music β†’ iOS β†’ TV Embedded β†’ Web Embedded β†’ Media Connect
  • Intelligent Retry Logic - Exponential backoff (2sβ†’4sβ†’8sβ†’12sβ†’15sβ†’20s) to avoid rate limiting
  • Anti-Bot Detection - Realistic browser headers, randomized sleep intervals, and sequential fragment downloads
  • Memory Optimized - Runs perfectly on Render's 512MB free tier
  • Health Monitoring - /health endpoint for uptime checks
  • Graceful Shutdown - Automatic cleanup on container restart
  • Optional Cookies - Upload cookies only if downloads fail repeatedly (see /cookies page)

πŸ“Š Technical Details

3GP Video Quality Options

  • Resolution: 176x144 (perfect for feature phone screens)
  • Format: 3GP with MPEG-4 video codec and AAC audio
  • Audio: 24kbps AAC, 16kHz (same across all presets for compatibility)
  • Quality Presets (video bitrate/fps only):
    • Ultra Low: 150kbps video, 10 fps (~1 MB per 5 min) - 2G networks
    • Low (Default): 200kbps video, 12 fps (~2 MB per 5 min) - Recommended for feature phones
    • Medium: 300kbps video, 15 fps (~2.5 MB per 5 min) - Better quality
    • High: 400kbps video, 20 fps (~3 MB per 5 min) - Best quality

MP3 Audio Quality Options

  • Format: MP3 with optimized VBR compression
  • Quality Presets (minimum 128kbps for reliability):
    • 128 kbps (Default): Good quality, stereo (~5 MB per 5 min)
    • 192 kbps: High quality, stereo (~7 MB per 5 min)
    • 256 kbps: Very high quality, stereo (~9 MB per 5 min)
    • 320 kbps: Maximum quality, stereo (~12 MB per 5 min)

General Settings

  • Max Duration: 6 hours (configurable)
  • Max File Size: 500 MB
  • Auto Quality: 128kbps for MP3, Low for 3GP

πŸš€ Deployment Options

Option 1: Render.com (Recommended - Free Tier)

Deploy to Render

Quick Setup (5 minutes):

  1. Push this repo to GitHub
  2. Create account on Render.com (free, no credit card)
  3. Click "New Web Service" β†’ Connect GitHub repo
  4. Render auto-detects render.yaml and deploys!

πŸ“– Deployment Guides:

Option 2: Docker (Any Platform)

Using Docker Compose:

docker-compose up --build

Manual Docker:

docker build -t youtube-3gp .
docker run -p 5000:5000 youtube-3gp

πŸ“– Documentation:

Option 3: Native Python (Advanced)

See DEPLOY.md for traditional deployment instructions.

πŸ–₯️ Local Development

# Install Python dependencies (includes yt-dlp)
pip install -r requirements.txt

# Install system dependencies (Ubuntu/Debian)
sudo apt-get install ffmpeg

# Run locally
python app.py

Visit http://localhost:5000

πŸ“š Complete Documentation

⭐ NEW GUIDES ADDED!

πŸ†˜ Troubleshooting & Maintenance

πŸ”§ Advanced Customization

πŸ“– All Documentation

See DOCUMENTATION_INDEX.md for complete navigation guide.

πŸ“ Project Structure

.
β”œβ”€β”€ app.py                      # Main Flask application
β”œβ”€β”€ bin/                        # Optional: Place pre-compiled FFmpeg binaries here
β”‚   β”œβ”€β”€ .gitkeep               # Keeps bin folder in repo
β”‚   β”œβ”€β”€ ffmpeg                 # (Optional) Static FFmpeg binary
β”‚   └── ffprobe                # (Optional) Static FFprobe binary
β”œβ”€β”€ templates/                  # HTML templates (feature phone optimized)
β”‚   β”œβ”€β”€ base.html              # Base template with minimal CSS
β”‚   β”œβ”€β”€ index.html             # Homepage with URL input and quality selection
β”‚   β”œβ”€β”€ status.html            # Conversion progress page
β”‚   └── cookies.html           # Cookie management page
β”œβ”€β”€ requirements.txt           # Python dependencies
β”œβ”€β”€ Dockerfile                 # Production Docker image
β”œβ”€β”€ docker-compose.yml         # Local Docker testing
β”œβ”€β”€ .dockerignore             # Docker build optimization
β”œβ”€β”€ .env.example              # Environment variables template
β”œβ”€β”€ render.yaml               # Render deployment config
β”œβ”€β”€ build.sh                  # Build script for Render (checks bin/ first)
└── Documentation/
    β”œβ”€β”€ RENDER_MANUAL_SETUP.md    # Step-by-step Render guide (START HERE!)
    β”œβ”€β”€ RENDER_DEPLOYMENT.md      # Render optimization guide
    β”œβ”€β”€ DOCKER_DEPLOYMENT.md      # Docker setup guide
    β”œβ”€β”€ DEPLOYMENT_SUMMARY.md     # Quick overview
    β”œβ”€β”€ COOKIE_SETUP_GUIDE.md     # Optional cookie authentication
    └── DEPLOY.md                 # General deployment guide

βš™οΈ Environment Variables

Variable Default Description
SESSION_SECRET Auto-generated Flask session secret
MAX_VIDEO_DURATION 21600 Max video duration (seconds)
DOWNLOAD_TIMEOUT 3600 Download timeout (seconds)
CONVERSION_TIMEOUT 21600 Conversion timeout (seconds)
FILE_RETENTION_HOURS 6 File retention time (hours)
MAX_FILESIZE 500M Max download file size

🎯 Use Cases

  • Download music videos for Nokia feature phones
  • Convert lectures/tutorials for offline viewing on 2G
  • Save YouTube content for devices with limited storage
  • Perfect for areas with slow internet connections

πŸ“± Compatible Devices

Tested and working on:

  • Nokia 5310
  • Nokia 3310 (newer models)
  • Any feature phone with 3GP support
  • Opera Mini 4.4 browser

πŸ”’ Privacy

  • No data collection
  • No user tracking
  • No analytics
  • Files auto-delete after 6 hours
  • Open source - see the code yourself!

πŸ“ License

MIT License - Free to use, modify, and distribute

πŸ™ Acknowledgments

  • Built with Flask (Python)
  • Powered by yt-dlp
  • Video conversion by FFmpeg
  • Optimized for the nostalgia of feature phones πŸ“±

Made with ❀️ for feature phone users everywhere

About

It's a 3gp video and mp3 audio downloader which can run on feature phones though it needs and if u want u can run it on your local pc which works without cookies(sometimes might hit rates and dont try big videos, audio) cookies.txt(dont use your main acc)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages