Downloader for Crunchyroll, Hidive, AnimeOnegai, and AnimationDigitalNetwork with CLI and GUI
Find a file
Stratuma 15067b19a4
Some checks are pending
auto-documentation / documentation (push) Waiting to run
build and push docker image / build-node (push) Waiting to run
Style and build test / tsc (push) Waiting to run
Style and build test / eslint (push) Blocked by required conditions
Style and build test / prettier (push) Blocked by required conditions
Style and build test / build-test-windows-arm64 (push) Blocked by required conditions
Style and build test / build-test-linux-arm64 (push) Blocked by required conditions
Style and build test / build-test-macos-arm64 (push) Blocked by required conditions
Style and build test / build-test-windows-x64 (push) Blocked by required conditions
Style and build test / build-test-linux-x64 (push) Blocked by required conditions
Style and build test / build-test-macos-x64 (push) Blocked by required conditions
Merge pull request #1181 from ektatas/fix-useless-first-comma
fix first comma when select all episodes
2026-01-11 01:09:42 +01:00
.github chore(workflow): update commit message of auto-documentation 2025-11-28 00:49:47 +01:00
.husky chore: remove prettier & eslint commands from precommit test 2025-11-27 22:11:00 +01:00
@types feat(crunchy): add subtitleTimestampFix function (#1121) 2025-11-28 00:40:11 +01:00
config refactor(merger): move from ffprobe to mediainfo 2025-11-30 03:10:28 +01:00
docs refactor(merger): move from ffprobe to mediainfo 2025-11-30 03:10:28 +01:00
gui fix first comma when select all episodes 2026-01-03 15:28:04 +01:00
modules chore(crunchy): update basic auth token and user-agent 2025-12-21 20:20:55 +01:00
playready added playready support for crunchyroll 2024-12-07 03:35:22 +01:00
videos Update 2021-09-01 12:40:45 -03:00
widevine Initial commit for WV Decryption 2023-12-24 19:29:01 -08:00
.commitlintrc.json chore: add husky for cleaner commits 2025-11-27 22:10:00 +01:00
.dockerignore Fix docker 2023-03-01 23:42:42 +01:00
.git-blame-ignore-revs Ignore whitespace for blame 2025-09-27 12:31:07 -07:00
.gitignore added playready support for crunchyroll 2024-12-07 03:35:22 +01:00
.prettierignore prettier fix + updated to node 22 + added new workflow + crunchyroll updates + --version fix 2025-09-30 14:43:25 +02:00
.prettierrc prettier fix + updated to node 22 + added new workflow + crunchyroll updates + --version fix 2025-09-30 14:43:25 +02:00
adn.ts fix(m3u8): invalid m3u8-parser import 2025-11-27 22:32:52 +01:00
commitlint.config.ts chore(main): remove unused/outdated files and move to typescript only 2025-11-28 13:49:27 +01:00
crunchy.ts feat(crunchy): add subtitleTimestampFix function (#1121) 2025-11-28 00:40:11 +01:00
Dockerfile fixed docker building 2025-10-10 00:48:18 +02:00
eslint.config.ts chore(main): remove unused/outdated files and move to typescript only 2025-11-28 13:49:27 +01:00
gui.ts prettier fix + updated to node 22 + added new workflow + crunchyroll updates + --version fix 2025-09-30 14:43:25 +02:00
hidive.ts removed unnecessary packages for better integrity 2025-11-26 04:17:21 +01:00
index.ts fix(args): resolve issue with short flag parsing in overrideArguments function 2025-11-28 22:22:00 +01:00
LICENSE.md Starting with merge 2021-10-29 22:42:50 +02:00
package.json chore(crunchy): update basic auth token and user-agent 2025-12-21 20:20:55 +01:00
pnpm-lock.yaml chore(crunchy): update basic auth token and user-agent 2025-12-21 20:20:55 +01:00
pnpm-workspace.yaml added pnpm workspace config 2025-10-08 16:26:25 +02:00
tsc.ts chore(main): remove unused/outdated files and move to typescript only 2025-11-28 13:49:27 +01:00
tsconfig.json temporarily disabled crunchyroll turnstile handling 2025-11-26 03:12:10 +01:00

Anime Downloader NX by AniDL

Discord Shield

This downloader can download anime from different sites. Currently supported are Crunchyroll, Hidive and AnimationDigitalNetwork.

This application is not endorsed by or affiliated with Crunchyroll, Hidive or AnimationDigitalNetwork. This application enables you to download videos for offline viewing which may be forbidden by law in your country. The usage of this application may also cause a violation of the Terms of Service between you and the stream provider. This tool is not responsible for your actions; please make an informed decision before using this application.

Dependencies

Paths Configuration

By default this application uses the following paths to programs (main executables):

  • ffmpeg.exe (Windows) or ffmpeg (other) (From PATH)
  • mkvmerge.exe (Windows) or mkvmerge (other) (From PATH)
  • mp4decrypt.exe (Windows) or mp4decrypt (other) (From PATH) (or shaka-packager)
  • shaka-packager.exe (Windows) or shaka-packager (other) (From PATH) (or mp4decrypt)

To change these paths you need to edit bin-path.yml in ./config/ directory.

CLI Information

See the documentation for a complete list of what options are available. You can define defaults for the commands by editing the cli-defaults.yml file in the ./config/ directory.

Example usage

Logging in

Most services require you to be logged in, in order to download from, an example of how you would login is:

AniDL --service {ServiceName} --auth

Searching

In order to find the IDs to download, you can search from each service by using the --search flag like this:

AniDL --service {ServiceName} --search {SearchTerm}

Downloading

Once you have the ID which you can obtain from using the search or other means, you are ready to download, which you can do like this:

AniDL --service {ServiceName} -s {SeasonID} -e {EpisodeNumber}

Building and running from source

Build Dependencies

Dependencies that are only required for running from code. These are not required if you are using the prebuilt binaries.

Build Setup

Please note that NodeJS, NPM, and PNPM must be installed on your system. For instructions on how to install pnpm, check (https://pnpm.io/installation)

First clone this repo git clone https://github.com/anidl/multi-downloader-nx.git.

cd into the cloned directory and run pnpm i. Next, decide if you want to package the application, build the code, or run from typescript.

Run from TypeScript

You can run the code from native TypeScript, this requires ts-node which you can install with pnpm with the following command: pnpm -g i ts-node

Afterwords, you can run the application like this:

  • CLI: ts-node -T ./index.ts --help

Run as JavaScript

If you want to build the application into JavaScript code to run, you can do that as well like this:

  • CLI: pnpm run prebuild-cli
  • GUI: pnpm run prebuild-gui

Then you can cd into the lib folder and you will be able to run the CLI or GUI as follows:

  • CLI: node ./index.js --help
  • GUI: node ./gui.js

Build the application into an executable

If you want to package the application, run pnpm run build-{platform}-{type} where {platform} is the operating system (currently the choices are windows, linux, macos, alpine, android, and arm) and {type} is cli or gui.

DRM Decryption

Decryption Requirements

Instructions (Widevine)

In order to decrypt DRM content, you will need to have a dumped CDM, after that you will need to place the CDM files (device_client_id_blob and device_private_key or client_id.bin and private_key.pem) into the ./widevine/ directory. For legal reasons we do not include the CDM with the software, and you will have to source one yourself.

Instructions (Playready)

Playready CDMs are very easy to obtain, you can find them even on Github. Place the CDM files (bgroupcert.dat and zgpriv.dat) in the ./playready/ directory and you're all set!