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.