Skip to main content

Gimmie

A simple command-line tool to download files from a list of URLs.

Description

Gimmie ("Give me your files") is a lightweight utility that downloads files from a list of web addresses. Simply provide a text file with one URL per line, and Gimmie will handle the rest.

Features

  • Downloads files from multiple URLs in sequence
  • Extracts filenames automatically from URLs
  • Supports any file type available via HTTP/HTTPS
  • Handles errors gracefully, continuing to the next file if one fails
  • Option to specify a custom download directory

Installation

Requirements

  • Python 3.10 or higher
  • pip package manager

From PyPI (Recommended)

pip install gimmie

From Source

  1. Clone the repository:

    git clone https://github.com/yourusername/gimmie.git
    cd gimmie
    
  2. Install the package:

    pip install .
    

Usage

Basic Usage

  1. Create a text file (e.g., files-to-download.txt) with one URL per line:

    https://example.com/file1.pdf
    https://example.com/file2.jpg
    https://example.com/file3.zip
    
  2. Run Gimmie with the file as an argument:

    gimmie files-to-download.txt
    
  3. Files will be downloaded to a downloads directory in your current working directory.

Command-Line Options

gimmie [-h] [-d DIRECTORY] url_file

Arguments:

  • url_file: Path to text file containing URLs (one per line)

Options:

  • -h, --help: Show help message and exit
  • -d DIRECTORY, --directory DIRECTORY: Directory to save downloaded files (default: downloads)

Example

# Download files to a custom directory
gimmie files-to-download.txt -d my_files

URL File Format

The URL file should contain one URL per line. The tool will:

  • Strip whitespace from lines
  • Skip empty lines and lines starting with '#' (for comments)

Example URL file:

# Files to download
https://example.com/file1.pdf
https://example.com/file2.jpg
https://example.com/file3.zip

Development

Docker Dev Container

The recommended approach is to use a Docker Dev Container as this includes everything you need.

  1. Install VSCode
    1. Ensure the ms-vscode-remote.remote-containers extension is installed.
  2. Install Docker Desktop
  3. Clone the repository
  4. Reopen in Container

Setting Up Development Environment

  1. Clone the repository

  2. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate   # On Linux / MacOS
    venv\Scripts\activate      # On Windows
    
  3. Install development dependencies:

    pip install -e ".[dev,test]"
    

Running Tests

Run the tests using PyTest:

pytest

Set the environment variable RUN_INTEGRATION_TESTS=1 to run integration tests that will actually download a file from the internet.

Linux:

export RUN_INTEGRATION_TESTS=1

Windows:

set RUN_INTEGRATION_TESTS=1

Updating Release version number

Rather than set the version explicitly, use Hatch to roll version numbers:

$ hatch version minor
Old: 0.1.0
New: 0.2.0

The final word in the command above controls how the version is incremented:

Segments New version
release 1.0.0
major 2.0.0
minor 1.1.0
micro patch fix 1.0.1
a alpha 1.0.0a0
b beta 1.0.0b0
c rc pre preview 1.0.0rc0
r rev post 1.0.0.post0
dev 1.0.0.dev0

This ensures that versions are rolled correctly.

Contributing

Contributions are welcome! See CONTRIBUTING.md for how to file issues and submit pull requests. Open a pull request using the provided PR template. CODEOWNERS in .github/CODEOWNERS will be requested for review. This project follows a Code of Conduct. See SECURITY.md for how to report vulnerabilities.

.editorconfig and .vscode/settings.json keep editor formatting consistent (indentation, line endings, trailing whitespace), .gitattributes normalizes line endings and marks binary files, and pre-commit hooks in .pre-commit-config.yaml catch common issues locally before you push (install with pre-commit install).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gimmie-0.3.1.tar.gz (91.9 kB view details)

Uploaded Source

Built Distribution

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

gimmie-0.3.1-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file gimmie-0.3.1.tar.gz.

File metadata

  • Download URL: gimmie-0.3.1.tar.gz
  • Upload date:
  • Size: 91.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gimmie-0.3.1.tar.gz
Algorithm Hash digest
SHA256 4c29780751e202f94e50c3fe33060af7005536a07a9357015347acdce2682f4c
MD5 4b859e70f035e0f6a896725369f36607
BLAKE2b-256 e0ddeca87a104600b19de61ac747e84e594a557810b615d89118447218b1c2fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for gimmie-0.3.1.tar.gz:

Publisher: publish.yml on laywill/gimmie

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

File details

Details for the file gimmie-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: gimmie-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gimmie-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1b461b6393e293fcfc534c92dc608621c9b30bcea2c753f6a2a1a50afdbe0fce
MD5 49051fe400690ebf90f24994e144f2af
BLAKE2b-256 42fbe8fc5dbb6e98682789adee0a8f44535d5a43faeae83a6d979b72cd2537fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for gimmie-0.3.1-py3-none-any.whl:

Publisher: publish.yml on laywill/gimmie

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

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page