Installation
#Prebuilt binary (no Python needed)
Linux and macOS (x86_64 and arm64):
curl -fsSL https://villoh.github.io/goopdl/install.sh | shWindows (x86_64 and arm64), in PowerShell:
irm https://villoh.github.io/goopdl/install.ps1 | iexThe script downloads the binary from the GitHub release, checks its SHA-256,
and copies it to ~/.local/bin (Linux/macOS) or %LOCALAPPDATA%\goopdl\bin
(Windows). It never edits your PATH; it prints the command to add the
directory if needed. Set GOOPDL_VERSION=2.0.0 to pin a version and
GOOPDL_INSTALL_DIR to change the destination. To update, run it again.
The rest of this page assumes Python 3.10 or newer.
#As a CLI tool
Install it into an isolated environment so goopdl lands on your PATH:
uv tool install goopdl
# or
pipx install goopdlTry it once without installing anything:
uvx goopdl --help#With Nix
The repository is a flake:
nix run github:Villoh/goopdl -- --helpTo install it declaratively, add it as an input and use inputs.goopdl.packages.${system}.default.
overlays.default adds goopdl to every Python package set, for flakes that use it as a library.
#As a library
Install it into the current environment:
pip install goopdl#Pinning a version
Pin an exact version in production. In a Dockerfile:
RUN pip3 install goopdl==1.2.2In requirements.txt:
goopdl==1.2.2To try unreleased changes, install from git:
pip install git+https://github.com/Villoh/goopdl.git#From source
You need uv.
git clone https://github.com/Villoh/goopdl.git
cd goopdl
uv sync
uv run goopdl --helpuv sync installs goopdl into .venv. Prefix commands with uv run, or
activate the environment (source .venv/bin/activate) and call goopdl
directly. The module entry point works too:
uv run python -m goopdl download com.whatsappRun the test suite:
uv run python -m unittest discover -s tests