General Purpose Downloader โ HTTP, YouTube/media, Torrents
Project description
camelDownloader ๐ซ
camelDownloader is a free, open-source general purpose downloader that runs entirely in your terminal. One command. Paste any link. It auto-detects whether it's a YouTube video, a direct file, a TikTok, a magnet link, or a torrent โ and downloads it.
Works on Linux, macOS, Android (Termux), and Windows.
What It Handles
| Link Type | Examples |
|---|---|
| ๐ฌ YouTube & 1000+ sites | YouTube, TikTok, Twitter/X, Instagram, Vimeo, SoundCloud, Twitchโฆ |
| ๐ Direct HTTP/HTTPS | .zip, .mp4, .pdf, any direct file link |
| ๐งฒ Magnet links | magnet:?xt=urn:btih:... |
| ๐ฆ Torrent files | .torrent URL or local file path |
Quick Demo
camel
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
camelDownloader ๐ซ
General Purpose Downloader
Handles YouTube, HTTP files, Torrents & 1000+ sites
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Paste your link (or 'q' to quit): https://youtube.com/watch?v=dQw4w9WgXcQ
โ
Detected: ๐ฌ Media / YouTube / TikTok / Twitterโฆ
๐ SELECT QUALITY:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
1) 360p (SD)
2) 720p (HD)
...
๐ Your choice (1-7): 2
๐น Never Gonna Give You Up
๐ค Rick Astley โฑ๏ธ 3:33 ๐๏ธ 1,500,000,000 views
โฌ๏ธ 100% | 45.2MB/45.2MB | Speed: 3.2MiB/s | ETA: 0s
โ
DOWNLOAD COMPLETE!
๐ ~/Downloads/camelDownloader
Installation
Linux (Ubuntu / Debian)
# Prerequisites
sudo apt update
sudo apt install python3 python3-pip ffmpeg -y
# Optional: torrent/magnet support
sudo apt install python3-libtorrent -y
# Install
pip install camelDownloader
macOS
brew install python ffmpeg
pip3 install camelDownloader
Android (Termux)
# Update and install prerequisites
pkg update -y && pkg upgrade -y
pkg install python ffmpeg openssl -y
# Grant storage access (one-time โ tap Allow when prompted)
termux-setup-storage
# Install
pip install camelDownloader
Windows
# Install Python and FFmpeg via winget (run as admin)
winget install Python.Python.3 -e
winget install Gyan.FFmpeg -e
# Then install in Command Prompt
pip install camelDownloader
From Source
git clone https://github.com/troubleman96/camelDownloader-.git
cd camelDownloader-
pip install -e .
Usage
Run the command from any terminal:
camel
You will be prompted to paste a link. The app auto-detects the type and routes it:
- YouTube / TikTok / Twitter / Vimeo / etc. โ shows quality menu (1โ7), then downloads
- Direct file URL โ downloads immediately with progress bar
- Magnet link or .torrent โ connects to DHT, fetches metadata, downloads
Type q at the link prompt to quit.
Quality Options (media links only)
| # | Quality | Best For | ~Size (10 min) |
|---|---|---|---|
| 1 | 360p SD | Slow internet, mobile data | ~50 MB |
| 2 | 720p HD | Most use cases | ~150 MB |
| 3 | 1080p Full HD | Desktop viewing | ~300 MB |
| 4 | 1440p 2K | Large screens | ~600 MB |
| 5 | 2160p 4K | 4K displays, editing | ~1.5 GB |
| 6 | Best Auto | Maximum available | Varies |
| 7 | Audio MP3 | Music, podcasts | ~25 MB |
Where Downloads Go
| Platform | Location |
|---|---|
| Linux | ~/Downloads/camelDownloader/ |
| macOS | ~/Downloads/camelDownloader/ |
| Android (Termux) | ~/storage/downloads/camelDownloader/ โ Android Downloads folder |
| Windows | C:\Users\YourName\Downloads\camelDownloader\ |
Troubleshooting
camel: command not found
# Linux / macOS
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
On Termux, close and reopen the app then try again.
ffmpeg not installed
# Ubuntu/Debian
sudo apt install ffmpeg
# macOS
brew install ffmpeg
# Termux
pkg install ffmpeg
# Windows
winget install Gyan.FFmpeg -e
libtorrent not installed (torrent/magnet only)
# Ubuntu/Debian
sudo apt install python3-libtorrent
# pip (if apt version not available)
pip install libtorrent
Download fails / 403 error
Update yt-dlp โ YouTube changes its API frequently:
pip install -U yt-dlp
termux-setup-storage failed (Android)
Run it again and tap Allow when prompted. If the popup never appears, go to Android Settings โ Apps โ Termux โ Permissions โ Files and Media โ Allow.
Project Structure
src/camel_downloader/
โโโ main.py # entry point โ banner, prompt, routing
โโโ detect.py # classifies any URL (media / http / torrent)
โโโ http.py # direct HTTP/HTTPS file downloads
โโโ media.py # yt-dlp backend (YouTube, TikTok, 1000+ sites)
โโโ torrent.py # magnet links & .torrent files (libtorrent)
โโโ utils.py # shared helpers (fmt_bytes, get_download_dirโฆ)
Contributing
# Fork on GitHub, then:
git clone https://github.com/YOUR_USERNAME/camelDownloader-.git
cd camelDownloader-
pip install -e .
git checkout -b my-feature
# make your changes...
git add . && git commit -m "describe your change"
git push origin my-feature
# open a Pull Request on GitHub
Bug reports and feature requests โ open an issue.
License
Distributed under the MIT License โ free to use, modify, and distribute for any purpose.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cameldownloader-3.0.1.tar.gz.
File metadata
- Download URL: cameldownloader-3.0.1.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2014453462bff2ae5b03b787089e2975c968d83a921364897448b1ef9f008e8
|
|
| MD5 |
53ef7d6cb47f76b4b29fbf7a6c8be459
|
|
| BLAKE2b-256 |
fd1a8da4f505a31073f6ac0a4f53204a41efee7bac629849d7b22267ffc14ae5
|
File details
Details for the file cameldownloader-3.0.1-py3-none-any.whl.
File metadata
- Download URL: cameldownloader-3.0.1-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68430506a1aff7b41dd2a862aa31b3f5297b656342ed99a214954ebdef27abaf
|
|
| MD5 |
62213f1bb3319a44453795b1eac4a480
|
|
| BLAKE2b-256 |
cadc0634944d92bd0ae8692246c8810ff0e9b7a4ebeef9efd864f7dc0ee29461
|