VPS Downloader + MEGA Upload (Flask) A lightweight, self-hosted web application to bridge the gap between high-speed VPS bandwidth and your local storage. Core Features
Browser-Based Download Manager: Paste a URL and download directly to your VPS.
Three Download Modes:
Direct: Standard file links.
yt-dlp: For video platforms (YouTube, etc.).
Auto: Intelligent fallback from Direct to yt-dlp.
MEGA Integration: One-click upload of downloaded files to your MEGA root using MEGAcmd.
Job Monitoring: View real-time logs, progress bars (where supported), and cancel active jobs.
Local Retrieval: Download files from your VPS to your local machine via the browser.
Requirements
Server Environment OS: Ubuntu (20.04/22.04/24.04 recommended).
Python: 3.10+ (3.8+ compatible).
Network: Open port 5000/tcp (or configured reverse proxy).
External Dependencies MEGAcmd: Required for MEGA uploads (mega-put).
yt-dlp: Required for video downloads.
Installation
sudo apt install -y python3
python3-pip pip3
install flask requests yt-dlp
Verify Installation: mega-version mega-put --help
Note: Ensure the mega-cmd-server is running (usually starts automatically on login).
Configuration & Usage Running the App Default execution starts the server on 0.0.0.0:5000:
python3 downloader_web.py
Environment Variables: Customise the app behaviour by setting variables before execution:
Variable | Description | Default
DOWNLOAD_DIR | Path where files are saved | ./downloads
PORT | Port the Flask app runs on | 5000
MAX_CONCURRENT | Number of simultaneous jobs | 2
Example with custom path:
export DOWNLOAD_DIR="/home/user/my_files"
mkdir -p "$DOWNLOAD_DIR" python3 vpssever.py
Usage Guide Download: Paste your URL in the UI, select your mode, and hit Download. Monitor the "Jobs" section for progress. Pro TIP: To get the downloadable URL of anything, download it in your local browser, go to Downloads, and click Cancel the download. Copy the download URL. That is it
Upload to MEGA: Navigate to the "MEGA Upload" section, select your downloaded files, and click Upload Selected.
Manage: Use the "Jobs" dashboard to cancel stuck transfers or view logs for failed yt-dlp attempts.
Security Warning This application is currently in TEST MODE and lacks built-in authentication. To prevent unauthorised access to your VPS bandwidth and MEGA account: Do not expose port 5000 directly to the internet. Recommended: Use a reverse proxy like Nginx with Basic Auth or Cloudflare Access. Firewall: Use ufw to restrict access to your specific IP address. Thanks!
Code- https://telegra.ph/vpssever-03-04
I developed this with ChatGPT. works well. Saved (downloaded, uploaded) Windows 11 iso to my Mega in just a minute
Get a free vps trial from Vultr (Good, fast, powerful)
Or get a free vps forever from Oracle Cloud (slower, yet, way better than your internet)
------ Post added on Mar 4, 2026 at 3:04 PM
Direct: Standard file links.
yt-dlp: For video platforms (YouTube, etc.).
Auto: Intelligent fallback from Direct to yt-dlp.
Requirements
Server Environment OS: Ubuntu (20.04/22.04/24.04 recommended).
Python: 3.10+ (3.8+ compatible).
Network: Open port 5000/tcp (or configured reverse proxy).
External Dependencies MEGAcmd: Required for MEGA uploads (mega-put).
yt-dlp: Required for video downloads.
Installation
- Install Python Dependencies
sudo apt install -y python3
python3-pip pip3
install flask requests yt-dlp
- Install MEGAcmd MEGA provides official .deb installers. For Ubuntu 22.04, use:
Verify Installation: mega-version mega-put --help
- MEGA Login (Required) The application uses your existing MEGA session. You must log in manually on the VPS once:
Note: Ensure the mega-cmd-server is running (usually starts automatically on login).
Configuration & Usage Running the App Default execution starts the server on 0.0.0.0:5000:
python3 downloader_web.py
Environment Variables: Customise the app behaviour by setting variables before execution:
Variable | Description | Default
DOWNLOAD_DIR | Path where files are saved | ./downloads
PORT | Port the Flask app runs on | 5000
MAX_CONCURRENT | Number of simultaneous jobs | 2
Example with custom path:
export DOWNLOAD_DIR="/home/user/my_files"
mkdir -p "$DOWNLOAD_DIR" python3 vpssever.py
Usage Guide Download: Paste your URL in the UI, select your mode, and hit Download. Monitor the "Jobs" section for progress. Pro TIP: To get the downloadable URL of anything, download it in your local browser, go to Downloads, and click Cancel the download. Copy the download URL. That is it
Upload to MEGA: Navigate to the "MEGA Upload" section, select your downloaded files, and click Upload Selected.
Manage: Use the "Jobs" dashboard to cancel stuck transfers or view logs for failed yt-dlp attempts.
Code- https://telegra.ph/vpssever-03-04
I developed this with ChatGPT. works well. Saved (downloaded, uploaded) Windows 11 iso to my Mega in just a minute
Get a free vps trial from Vultr (Good, fast, powerful)
Or get a free vps forever from Oracle Cloud (slower, yet, way better than your internet)
------ Post added on Mar 4, 2026 at 3:04 PM