gemini-dl

CLI Batch Downloader for Gemini Protocol, inspired by wget and yt-dlp

At this moment, project under development, some features already testing

Interface

Components

Client for Gemini protocol
Parser for Gemtext
Network toolkit for URL operations
CLI colors

Features

Environment

apt install git composer php-fpm php-mbstring

Install

git clone https://github.com/YGGverse/gemini-dl.git
cd gemini-dl
composer update

# for direct execution only:
chmod +x src/gemini-dl.php

Usage

src/gemini-dl.php --source gemini://.. --target /path/to/download

Options

# Required

-s, --source   - string, gemini protocol address
-t, --target   - string, absolute path to destination folder

# Optional

-a, --absolute - no value, links to absolute filepath (ignored on --keep), disabled by default
-c, --crawl    - no value, crawl document links (entire capsule download), disabled by default
-d, --delay    - integer, pause between requests to prevent abuse (seconds), 1 by default
-i, --index    - string, index filename of directory listing, index.gmi by default
-h, --help     - no value, show available commands
-k, --keep     - no value, keep original links (--crawl mode only), disabled by default
-m, --match    - string, collect links match regex rule, /.*/ by default
-r, --raw      - no value, include meta headers (--keep option ignored), disabled by default
-u, --unique   - no value, append snap version as folder timestamp, disabled by default

# Experimental (in development)

-e, --external - no value, follow external hosts, disabled by default
-f, --follow   - integer, follow redirects on --crawl, 0 by default
-l, --level    - integer, depth to --crawl, 0 by default

Get

Source on GitHub
Feedback
Contributions