A web-based tool for downloading and managing Instagram content with resolution filtering and Firebase integration.
Modern, minimalist web interface with dark theme.
# Install Python dependencies
pip3 install -r requirements.txt
# Install Node.js dependencies (for Puppeteer scraper)
npm install
# Start web server
python3 web_app.pyThen visit: http://localhost:8080
- β Instagram Account Scraping (via Puppeteer)
- β Manual Image Upload by URL
- β Resolution Filtering (400px - 1920px)
- β Account Management (view existing downloads)
- β Image Preview & Gallery
- β Firebase Storage Integration (optional)
- β Dark Minimalist UI
Abric Util Manager/
βββ web_app.py # Main Flask web application
βββ config.py # Centralized configuration
βββ requirements.txt # Python dependencies
βββ package.json # Node.js dependencies (Puppeteer)
βββ .env # Environment variables (create from env.example)
βββ env.example # Environment variables template
β
βββ src/ # Source modules
β βββ instagram_scraper.py # Web scraper wrapper
β βββ firebase_config.py # Firebase integration
β βββ utils.py # Utility functions
β βββ ...
β
βββ instagram_node_scraper.py # Puppeteer-based scraper
β
βββ templates/ # HTML templates
β βββ index.html # Main page
β βββ gallery.html # Gallery view
β
βββ output/ # Output directory
β βββ downloads/ # Downloaded images by username
β βββ username1/
β βββ username2/
β βββ ...
β
βββ config/ # Configuration files
β βββ config_example.py # Config template
β βββ firebase_env_example.txt # Firebase setup example
β
βββ docs/ # Documentation
βββ FIREBASE_SETUP.md # Firebase setup guide
βββ firestore.rules # Firestore security rules
- Python 3.8+
- Node.js 14+ (for Puppeteer scraper)
- pip & npm
# Python dependencies
pip3 install -r requirements.txt
# Node.js dependencies (Puppeteer)
npm installCreate .env file from template:
cp env.example .envEdit .env with your credentials:
# Flask Settings
SECRET_KEY=your_secret_key_here
DEBUG=True
HOST=0.0.0.0
PORT=8080
# File Paths
UPLOAD_FOLDER=output/downloads
TEMPLATE_FOLDER=templates
# Instagram API (Optional - for RapidAPI backup)
RAPIDAPI_KEY=your_rapidapi_key_here
# Firebase Configuration (Optional)
FIREBASE_PROJECT_ID=your_project_id_here
FIREBASE_STORAGE_BUCKET=your_project_id.appspot.com
FIREBASE_PRIVATE_KEY_ID=your_private_key_id
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nyour_private_key_here\n-----END PRIVATE KEY-----\n"
FIREBASE_CLIENT_EMAIL=your_service_account_email
FIREBASE_CLIENT_ID=your_client_id
# Image Processing Settings
DEFAULT_MIN_RESOLUTION=800
MAX_IMAGE_SIZE=10485760For Firebase Storage integration, follow the guide in FIREBASE_SETUP.md.
python3 web_app.pyServer will start at http://localhost:8080
- Enter Instagram username
- Select minimum resolution
- Click "Fetch Images"
- Preview and download images
- Click "Manual Image Upload"
- Select existing account or enter new username
- Paste image URLs (one per line)
- Optionally enable Firebase upload
- Click "Upload"
After downloading images, click "View Full Gallery" to see all images for a user.
- 400px (Low quality)
- 800px (Default)
- 1200px (High quality)
- 1920px (Full HD)
- Puppeteer (Primary): Headless browser scraping
- RapidAPI (Backup): API-based scraping (requires API key)
GET /- Main pageGET /api/status- API status checkGET /api/accounts- List all downloaded accountsGET /api/account/<username>/images- Get images for specific accountPOST /api/fetch- Fetch images from InstagramPOST /api/manual_upload- Upload images from URLsGET /gallery/<username>- Gallery view for userGET /download/<username>/<filename>- Download specific image
- Background:
#121212 - Text:
#f5f5f5 - Borders:
1.2px solid #f5f5f5 - Minimalist "skeleton" design
- Hover effects with color inversion
- View existing accounts
- See total images and storage size
- Check last update time
- Preview recent images
- Respect Terms of Service: Only download publicly available content
- Rate Limiting: Built-in delays to prevent abuse
- Personal Use: For personal projects, not commercial redistribution
- Attribution: Credit original content creators
- Puppeteer requires Chrome/Chromium
- Instagram may block repeated requests
- Firebase is optional but recommended for backup
- Large downloads may take time
# Reinstall Puppeteer
npm install puppeteer --force# Change PORT in .env
PORT=8081- Check
FIREBASE_SETUP.md - Verify environment variables
- Ensure service account has proper permissions
- Keep downloaded images in
output/downloads/<username>/ - Temporary scraper files in
temp_scrapes/(auto-cleaned) - Cache in
__pycache__/(gitignored)
- Update
web_app.pyfor backend logic - Modify
templates/index.htmlfor UI - Add utilities to
src/utils.py
- Never commit
.envfile - Keep Firebase credentials secure
- Use environment variables for sensitive data
.gitignoreconfigured for security
For issues:
- Check console logs in terminal
- Verify environment variables
- Test API connectivity
- Review browser developer console
Note: This tool is for educational and personal use. Always respect copyright laws and platform terms of service.