Files
gallery-dl/.planning/codebase/STACK.md
eliott e034639a1d fix(02-03): fix extractor registry to return shared extractors
- Changed RegisteredExtractor to use Arc<Box<dyn Extractor>> for shared access
- Added SharedExtractor type alias
- Updated find() to return Result<SharedExtractor, ExtractorError>
- Added get_extractor() as convenience function
- Updated lib.rs exports to include SharedExtractor and get_extractor
2026-02-15 20:29:57 +01:00

1.6 KiB

Technology Stack

Analysis Date: 2026-02-15

Languages

Primary:

  • Python 3.x - All application logic, CLI, and download handling

Runtime

Environment:

  • CPython 3.x

Package Manager:

  • pip
  • setuptools (for package installation)

Frameworks

Core:

  • gallery_dl - Custom CLI framework
    • gallery_dl/__init__.py - Main entry point
    • gallery_dl/option.py - Command-line argument parsing

HTTP:

  • requests (>=2.11.0) - Primary HTTP client for API requests and downloads
    • gallery_dl/extractor/http.py - HTTP-based extractor base

Data/Config:

  • JSON (built-in) - Primary configuration format
  • YAML (optional) - Alternative configuration format
  • TOML (optional) - Alternative configuration format

Key Dependencies

Critical:

  • requests>=2.11.0 - HTTP requests for all network operations

Optional:

  • yt-dlp - YouTube/Video downloading support (gallery_dl/ytdl.py)
  • keyring - Secure credential storage
  • yaml - YAML configuration support
  • tomli / toml - TOML configuration support

Internal:

  • urllib3 (via requests) - HTTP connection pooling

Configuration

Environment:

  • Configuration files: JSON, YAML, or TOML
  • Default locations: ~/.config/gallery-dl/, ~/.gallery-dl/
  • Command-line arguments override config files

Build:

  • setup.py - Package setup
  • pyproject.toml - Build system configuration

Platform Requirements

Development:

  • Python 3.x
  • pip

Production:

  • Python 3.x
  • Unix-like systems, Windows, macOS

CLI Entry Point:

  • gallery_dl/__main__.py - Invokes gallery_dl/__init__.py:main()

Stack analysis: 2026-02-15