Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

nengong/download-anything

Productivity & Utilities

A CLI and AI Agent skill that downloads videos, articles, papers, books and cloud-drive files, then stores them with structured metadata.

173
2
Python
7 days old

Project overview

Download Anything (DA) brings downloads from many sources into one command-line tool and one AI Agent Skill. It accepts links, share text pasted from apps, DOIs, ISBNs, package names and local audio paths, then saves the main file together with related material: subtitles, covers, separate audio tracks, BibTeX citations and metadata. The outputs are designed to be summarized by an AI agent or archived into an Obsidian vault.

The tool handles Bilibili multi-part videos, Douyin and Xiaohongshu posts (video, image sets and LivePhotos), X/Weibo/Instagram, podcasts, articles, arXiv and DOI papers, MIT OCW lecture notes, ISBN/MD5 ebooks, Baidu and Quark cloud-drive shares, GitHub raw files and release assets, Microsoft Store offline packages and APKs.

Its main design idea is verification. Downloading is split into four stages: cleaning share text and extracting identifiers, choosing a platform driver, checking file integrity, and writing the sidecar files. PDF, EPUB, image and ZIP files are checked with library parsers, and audio/video files are checked with ffprobe for stream count and audio presence. A plain error page saved as HTML is therefore not reported as a successful download.

Quick start

Python 3.10 or newer is required. FFmpeg is needed for audio/video tasks (track extraction, transcoding and HLS/DASH merging).

Install from a source checkout into a dedicated virtual environment:

python3 skills/download-anything/scripts/install.py
~/.download-anything/venv/bin/da doctor --json

The README's expected result is that all_required_ok is true in the doctor output. If da is not on your PATH, use the full path. To call it as da or dl afterwards, add ~/.download-anything/venv/bin to PATH (Windows: %USERPROFILE%\.download-anything\venv\Scripts).

Then pass a link, identifier or share text to the CLI:

da "https://www.bilibili.com/video/BV11s41167h6?p=2" --json
da "https://arxiv.org/abs/2310.06825" --json
da "通过网盘分享的文件:资料包.zip 链接: https://pan.baidu.com/s/1xxxx 提取码: a1b2" --json
da "https://mp.weixin.qq.com/s/..." --vault ~/Documents/MyVault --json

Using a JSON status result, success, cached and dry_run exit with code 0, partial with 2 and error with 1. For batch jobs, -i links.txt accepts a list of inputs.

To install the Agent Skill instead, clone the repository to a persistent location, run the install script, then copy or link the whole skills/download-anything folder into the Agent's user skill directory (~/.agents/skills/download-anything for Codex, ~/.claude/skills/download-anything for Claude Code). npx skills add nengong/download-anything only installs the Skill; the CLI installation and self-check still need to be run.

Platform and credential constraints

Many sources depend on login state. In a desktop environment, da login <platform> extracts cookies from browsers or desktop clients. In headless, Docker or CI environments, inject cookies with DA_<PLATFORM>_COOKIE/<PLATFORM>_COOKIE variables such as DA_BAIDU_COOKIE, or mount ~/.download-anything/credentials.yaml; files you provide yourself should have 0600 permissions.

Downloads default to a 500 MB per-file limit, adjustable with --max-mb N. ZIP/TAR archives are unpacked automatically with path-boundary checks, limited to 500 MB total and 10,000 members; use --no-unzip to keep the archive. The README explicitly excludes paid Bilibili courses, Coursera/edX/Udemy/China University MOOC courses behind login walls or DRM, paid Microsoft Store apps and traditional Win32 .exe installers.

Android APK versions depend on what the public mirrors (F-Droid, Aptoide) carry. Cache indexing uses a local SQLite database at ~/.download-anything/index.db. The README links an MIT license, but GitHub's repository metadata currently lists no license file, so the license terms for the code as published are not confirmed.

HotRepo's take

On the HotRepo new-project leaderboard for Python on 2026-11-09, the repository recorded 54 new stars in a window from 2026-11-08 22:45 UTC to 2026-11-09 22:45 UTC, ending at 167 stars and 2 forks. The hourly samples over roughly the following day show a steady climb from 110 to 167 stars, with the largest single-hour jump (158 to 163, then 167) late in the window. It has not yet appeared on the all-language daily rank.

The project is broad in scope, but the README is unusually concrete about failure handling: verification levels such as media-structure and cached-existence are exposed in JSON output, and exclusions are stated for several paid platforms. That specificity is worth checking against actual behavior before relying on it for important downloads. With only 2 forks, there is little evidence of community testing yet.

Project source and documentation

Written by AI from the project's README, updated . The project's own docs are the source of truth.

You might also like

  1. HKUDS/CLI-AnythingGenerated command-line harnesses that let AI agents drive desktop apps that only have a GUI.Python56,779
  2. handsomestWei/patent-disclosure-skillAgent skills for mining patent points, drafting Chinese patent disclosures and interpreting patents into Obsidian notes.Python12,884
  3. Tyrrrz/YoutubeDownloaderA cross-platform desktop GUI that downloads YouTube videos, playlists, channels and search results in a chosen format.C#16,646
  4. yt-dlp/yt-dlpCommand-line downloader for video and audio from many sites, including playlists and channels.Python205,693
  5. BookracyFOS/bookracyAn open-source app for searching books, reading them, and managing a personal library.TypeScript275