Skip to main content

Universal file hosting downloader with TUI - supports GoFile, PixelDrain, MediaFire, 1Fichier, Mega.nz

Project description

getit

Universal file hosting downloader with a beautiful Terminal UI

PyPI License: GPLv3 Python 3.10+ CI CodeRabbit Pull Request Reviews

Download files from GoFile, PixelDrain, MediaFire, 1Fichier, and Mega.nz with a single command.


🌟 Why GetIt?

GetIt transforms the mundane task of downloading files from various hosting services into a seamless, visual experience. Whether you are a casual user wanting a simple download or a power user needing batch processing and encryption support, GetIt handles it all with style.

✨ Features

  • Broad Host Support: Seamlessly download from GoFile, PixelDrain, MediaFire, 1Fichier, and Mega.nz.
  • Stunning TUI: innovative terminal interface that provides real-time progress visualization, speed metrics, and active management.
  • Robust CLI: Complete command-line control for scripting and headless operations.
  • Performance First:
    • Concurrent Downloads: Maximize bandwidth by downloading multiple files at once.
    • Smart Resume: Automatically resumes interrupted downloads where possible.
    • Speed Limiting: strict bandwidth controls for background usage.
  • Advanced Capabilities:
    • Recursive Folder Support: Downloads entire directory structures.
    • Security: Handles password-protected links and fully decrypts Mega.nz AES-CTR encryptions.
    • Integrity: Auto-verifies MD5/SHA256 checksums to ensure file safety.
  • Cross-Platform: Runs flawlessly on macOS, Linux, and Windows.

🚀 Quick Start

Installation

Install via pip (recommended):

pip install getit-cli

Or using Homebrew (macOS/Linux):

brew tap ahmedeltigani/getit
brew install getit

Basic Usage

Download a single file:

getit download https://gofile.io/d/abc123

Launch the interactive TUI:

getit tui

Batch download from a file:

getit download -f urls.txt

📖 Comprehensive Guide

Command Line Interface

The CLI is designed for efficiency.

getit download <URL> [OPTIONS]

Common Options:

  • -o, --output DIR: Specify target directory (default: ./downloads).
  • -c, --concurrent NUM: Set max simultaneous downloads (default: 4).
  • -p, --password TEXT: Provide password for protected resources.
  • -l, --limit SPEED: Set a speed cap (e.g., 1M, 500K).
  • --no-resume: Force restart of downloads.

Interactive TUI Controls

Manage your queue effortlessly with keyboard shortcuts:

Key Action Description
a Add URLs Add one or more URLs with optional folder grouping
b Batch Import Load multiple URLs from a file
p Pause/Resume Toggle state of selected download
c Cancel Stop and remove selected download
s Settings Configure global preferences
q Quit Exit the application

Host Specifics

Host Files Folders Password Encryption Notes
GoFile - Handles rate limits & guest tokens automatically.
PixelDrain - - Supports lists and individual files.
1Fichier - - Manages wait times between downloads.
Mega.nz - Features full client-side decryption.

Configuration

GetIt looks for config.json in:

  • macOS: ~/Library/Application Support/getit/
  • Linux: ~/.config/getit/
  • Windows: %APPDATA%\getit\

Example config.json:

{
  "download_dir": "~/Downloads/getit",
  "max_concurrent_downloads": 4,
  "enable_resume": true,
  "gofile_token": "your_token_here"
}

🛠 Development

We welcome contributions!

  1. Clone: git clone https://github.com/ahmedeltigani/getit.git
  2. Setup: pip install -e ".[dev]"
  3. Test: pytest

Production Readiness

For detailed information about the project's production readiness status, risk register, and mitigation plans, see the Production Readiness Scorecard.

Architecture Overview

  • core/downloader.py: Async engine handling HTTP streams and decryption.
  • core/manager.py: Semaphore-based orchestrator for concurrency.
  • extractors/: Modular logic for each file host.
  • tui/app.py: Textual-based interface implementation.

📄 License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

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

getit_cli-0.2.0.tar.gz (56.3 kB view details)

Uploaded Source

Built Distribution

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

getit_cli-0.2.0-py3-none-any.whl (68.3 kB view details)

Uploaded Python 3

File details

Details for the file getit_cli-0.2.0.tar.gz.

File metadata

  • Download URL: getit_cli-0.2.0.tar.gz
  • Upload date:
  • Size: 56.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for getit_cli-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e683faa0658c2ce9f9dfd58b47dc604473632f6c44c3032e63e069fcc9e5121d
MD5 b82966bd436e4cb24b105dd57d26da56
BLAKE2b-256 11d3a0bb5dc58e6ac769e5f9fd0a9b3c9bc87785992d318ea69b0ca795b33fd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for getit_cli-0.2.0.tar.gz:

Publisher: release.yml on Eltigani-web/getit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file getit_cli-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: getit_cli-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 68.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for getit_cli-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06d08186017d5c7a69760a6309bca78d1c0eb217ab67376edb1b8d5b88e6c21e
MD5 ed092cac193212f32f5bade4d0025c67
BLAKE2b-256 28e2e164cef7cc44dd4bf9f98e278ae092f350a6cd2c15eb9869bc3cd3f16104

See more details on using hashes here.

Provenance

The following attestation bundles were made for getit_cli-0.2.0-py3-none-any.whl:

Publisher: release.yml on Eltigani-web/getit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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