# abx-dl | ArchiveBox | Knowledge Base | Instagit

⬇️ A simple all-in-one CLI tool to download EVERYTHING from a URL (like youtube-dl/yt-dlp, forum-dl, gallery-dl, simpler ArchiveBox). 🎭 Uses headless Chrome to get HTML, JS, CSS, images/video/audio/subtitles, PDFs, screenshots, article text, git repos, and more...

GitHub Stars: 95

Repository: https://github.com/archivebox/abx-dl

---

## Articles

### [How to Debug Failed Hooks in abx-dl Using stdout.log and stderr.log Files](/archivebox/abx-dl/how-do-i-debug-failed-hooks-using-the-stdout-log-and-stderr-log-files-written-to-each-plugin-directory)

Debug failed abx-dl hooks by reviewing stdout.log and stderr.log files in plugin directories. Diagnose crashes, permissions, or logic issues effectively.

- Tags: how-to-guide
- Published: 2026-02-25

### [How abx-dl Integrates with the ArchiveBox Plugin Ecosystem via Symlinks](/archivebox/abx-dl/how-does-abx-dl-integrate-with-the-archivebox-plugin-ecosystem-via-symlinks)

Discover how abx-dl integrates with ArchiveBox plugins using symlinks. Enable seamless plugin discovery and execution without code duplication.

- Tags: deep-dive
- Published: 2026-02-25

### [Hook Naming Convention .bg.js Suffix for Background Daemon Hooks in abx-dl](/archivebox/abx-dl/what-is-the-hook-naming-convention-bg-js-suffix-for-background-daemon-hooks)

Learn the abx-dl hook naming convention using the .bg.js suffix for background daemon hooks. Discover how these hooks run as long-lived processes managed by PID files.

- Tags: how-to-guide
- Published: 2026-02-25

### [How Plugins Output Binary Records to Register Custom Binary Paths in abx-dl](/archivebox/abx-dl/how-do-plugins-output-binary-records-to-register-custom-binary-paths-for-subsequent-hooks)

Learn how abx-dl plugins output binary records to STDOUT using JSON to register custom binary paths for hooks. This enables flexible environment variable injection.

- Tags: internals
- Published: 2026-02-25

### [How abx-dl Handles Plugins with Missing Binaries When Using --no-install](/archivebox/abx-dl/how-does-abx-dl-handle-plugins-with-missing-binaries-when-no-install-is-used)

Learn how abx-dl with --no-install handles plugins missing binaries. It skips them and logs a warning instead of auto-installing, ensuring a smoother process.

- Tags: how-to-guide
- Published: 2026-02-25

### [How cleanup_background_hooks Handles Stuck Processes and Process Groups in abx-dl](/archivebox/abx-dl/how-does-the-cleanup-background-hooks-function-handle-stuck-processes-and-process-groups)

Learn how cleanup_background_hooks in abx-dl safely terminates stuck processes and process groups using SIGTERM and SIGKILL, preventing accidental system process termination.

- Tags: internals
- Published: 2026-02-25

### [How to Add a New Plugin to the abx-dl Plugin System: A Complete Developer Guide](/archivebox/abx-dl/what-is-the-process-for-adding-a-new-plugin-to-the-abx-dl-plugin-system)

Learn to add a new plugin to the abx-dl plugin system. Follow our developer guide to create hook scripts and output JSON-Lines with ArchiveResult records.

- Tags: how-to-guide
- Published: 2026-02-25

### [How PID Files Are Created and Validated for Background Hooks in abx-dl](/archivebox/abx-dl/how-are-pid-files-created-and-validated-for-background-hooks-in-the-executor)

Discover how abx-dl creates and validates PID files for background hooks, ensuring process integrity by comparing file modification times with process start times to prevent PID reuse.

- Tags: internals
- Published: 2026-02-25

### [How abx-dl CLI Resolves Default Commands When a URL Is Passed Directly](/archivebox/abx-dl/how-does-the-cli-resolve-default-commands-when-a-url-is-passed-directly)

Learn how the abx-dl CLI autodetects and prepends the dl command for direct URL invocation, simplifying downloads without explicit subcommands.

- Tags: how-to-guide
- Published: 2026-02-25

### [TTY vs Non-TTY Execution Modes in abx-dl: Output Behavior Explained](/archivebox/abx-dl/what-is-the-difference-in-output-behavior-between-tty-and-non-tty-execution-modes)

Understand TTY vs non-TTY execution in abx-dl. Learn how it provides interactive dashboards for humans and JSONL streams for automation pipelines.

- Tags: deep-dive
- Published: 2026-02-25

### [How to Use the abx-dl --plugins Option to Select Specific Plugins for Downloads](/archivebox/abx-dl/how-do-i-use-the-plugins-option-to-select-specific-plugins-for-a-download)

Master the abx-dl --plugins option. Learn to specify download plugins like wget, ytdlp, and git for targeted ArchiveBox downloads and improve your workflow today.

- Tags: how-to-guide
- Published: 2026-02-25

### [How abx-dl Detects New Files Created by Hooks and Excludes Log/PID Files from Output](/archivebox/abx-dl/how-does-abx-dl-detect-new-files-created-by-hooks-and-exclude-log-pid-files-from-output)

Learn how abx-dl detects new files from hooks by comparing directory snapshots and excludes log pid and sh files with suffix rules preventing junk in your output.

- Tags: internals
- Published: 2026-02-25

### [Hook Class in abx_dl/plugins.py: Role and Priority Sorting System](/archivebox/abx-dl/what-is-the-role-of-the-hook-class-in-abx-dl-plugins-py-and-how-are-hooks-sorted-by-priority)

Learn about the Hook class in abx_dl/plugins.py and how it manages plugin execution order using a priority sorting system for predictable pipeline processing.

- Tags: internals
- Published: 2026-02-25

### [How the abx-dl Executor Handles Hook Timeouts and Process Termination](/archivebox/abx-dl/how-does-the-executor-handle-hook-timeouts-and-what-happens-when-a-hook-exceeds-its-timeout)

Learn how the abx-dl executor enforces hook timeouts using subprocess Popen wait. Discover its SIGKILL termination and how it logs timeout errors for failed archives.

- Tags: internals
- Published: 2026-02-25

### [How abx-dl Lazy Dependency Auto-Installation Works: A Technical Deep Dive](/archivebox/abx-dl/how-does-lazy-dependency-auto-installation-work-when-running-abx-dl)

Explore how abx-dl achieves lazy dependency auto-installation automatically detecting and installing missing binaries like yt-dlp before execution.

- Tags: deep-dive
- Published: 2026-02-25

### [Understanding the index.jsonl Output Format and ArchiveResult Records in abx-dl](/archivebox/abx-dl/what-is-the-structure-of-the-index-jsonl-output-format-and-how-are-archiveresult-records-formatted)

Explore the index.jsonl output format in abx-dl. Understand the structure of Snapshot, Process, and ArchiveResult records for efficient data management.

- Tags: api-reference
- Published: 2026-02-25

### [How abx-dl Background Hooks (Daemon Processes) Work and Get Cleaned Up](/archivebox/abx-dl/how-do-background-hooks-daemon-processes-work-and-how-does-abx-dl-clean-them-up)

Learn how abx-dl background hooks run as daemon processes using subprocess.Popen and are cleaned up with a graceful SIGTERM-to-SIGKILL sequence, validating PIDs and finalizing results.

- Tags: internals
- Published: 2026-02-25

### [How abx-dl Handles Configuration Aliases Like USE_WGET and WGET_ENABLED](/archivebox/abx-dl/how-does-the-config-system-handle-aliases-like-use-wget-and-wget-enabled)

Discover how abx-dl's config system resolves aliases like USE_WGET to WGET_ENABLED by scanning plugin JSON schemas for x-aliases definitions during read and write operations.

- Tags: internals
- Published: 2026-02-25

### [How the abx-dl Binary Discovery System Works: Complete Guide to Custom Binary Paths](/archivebox/abx-dl/how-does-the-binary-discovery-system-work-in-abx-dl-and-how-do-i-specify-custom-binary-paths)

Learn how abx-dl's binary discovery system finds executables and customizes paths. Explore environment variables, pip, npm, brew, and apt providers for seamless integration.

- Tags: deep-dive
- Published: 2026-02-25

### [Crawl Hooks vs Snapshot Hooks in abx-dl: Understanding the Plugin Execution Pipeline](/archivebox/abx-dl/what-is-the-difference-between-crawl-hooks-and-snapshot-hooks-in-the-plugin-execution-pipeline)

Understand Crawl hooks vs Snapshot hooks in abx-dl. Learn how these plugin hooks prepare your crawl environment and archive individual URLs for effective content extraction.

- Tags: internals
- Published: 2026-02-25

### [How abx-dl Discovers and Loads Plugins from the Plugins Directory](/archivebox/abx-dl/how-does-abx-dl-discover-and-load-plugins-from-the-plugins-directory)

Learn how abx-dl discovers and loads plugins from its plugins directory by treating subdirectories as individual plugins, configuring their hooks automatically.

- Tags: internals
- Published: 2026-02-25

