Skip to main content

General Purpose Downloader โ€” HTTP, YouTube/media, Torrents

Project description

camelDownloader ๐Ÿซ

Python 3.8+ PyPI version License: MIT yt-dlp

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

cameldownloader-3.0.1.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cameldownloader-3.0.1-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

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

Hashes for cameldownloader-3.0.1.tar.gz
Algorithm Hash digest
SHA256 e2014453462bff2ae5b03b787089e2975c968d83a921364897448b1ef9f008e8
MD5 53ef7d6cb47f76b4b29fbf7a6c8be459
BLAKE2b-256 fd1a8da4f505a31073f6ac0a4f53204a41efee7bac629849d7b22267ffc14ae5

See more details on using hashes here.

File details

Details for the file cameldownloader-3.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for cameldownloader-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 68430506a1aff7b41dd2a862aa31b3f5297b656342ed99a214954ebdef27abaf
MD5 62213f1bb3319a44453795b1eac4a480
BLAKE2b-256 cadc0634944d92bd0ae8692246c8810ff0e9b7a4ebeef9efd864f7dc0ee29461

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page