Skip to content

CrunchyDL/CrunchyDL

Repository files navigation

CrunchyDL Logo

πŸš€ CrunchyDL

Docker React Node.js SQLite Ko-fi Discord

A premium, community-driven platform for automated anime management and downloading. Built with a modern, high-performance architecture and a stunning user interface.

Dashboard Preview

Note

This repository includes code that was generated or assisted by AI tools. All contributions should still be reviewed, tested, and maintained by humans.


✨ Flagship Features

πŸ“Ί Smart Automation (Smart DL)

  • Sub-per-Sub Catch-up: Periodic series monitoring. Automatically detects and downloads missing episodes even for late subscriptions.
  • Hierarchical Multi-Season Tracking: Advanced logic to handle series with multiple seasons, ensuring correct naming (S1, S2, etc.) and global episode synchronization.
  • Multilingual Metadata: Choose your preferred language/region (Spanish, English, etc.) during setup for all series titles and descriptions.
  • Native Internationalization (i18n): Fully localized interface in English and Spanish with automatic browser detection.

βš™οΈ Engine Stability

  • Proactive Session Cleanup: Automatically terminates Crunchyroll streaming sessions after each download to prevent the dreaded TOO_MANY_ACTIVE_STREAMS error.
  • Smart Rate Limiting: Built-in mandatory cooldowns and connection management to ensure account safety and API compliance.
  • Cross-Service Sync: Advanced matching logic that synchronizes catalog metadata with local library storage to prevent duplicate downloads.

πŸ‘₯ Governance & Auditing (RBAC)

  • Real-time Monitoring Dashboard: Integrated widget for tracking automated check history, download volume, and system uptime.
  • Granular Roles: Permission management for Administrators, Contributors, and Standard Users.
  • Audit Logs: Full traceability of all administrative actions.

🎨 Premium Experience

  • Interactive Setup Wizard: A 4-step initial setup to configure your database (SQLite/MySQL), API keys (TMDB/TVDB), and credentials.
  • Modern UI/UX: Ultra-responsive dark mode interface with fluid micro-animations and integrated image editors.

πŸ“‹ Requirements

Before starting, ensure your environment meets the following criteria for a smooth experience:

  • System: Windows 10/11 or Linux (Ubuntu/Debian recommended).
  • Node.js: v22.0.0 or later (Required for native execution).
  • pnpm: v10 or later (Corepack recommended).
  • FFmpeg: v5.0 or later (Must be in your system's PATH).
  • Git: Required for cloning submodules.
  • MKVToolNix (mkvmerge): Must be in your system's PATH.
  • DRM (Optional): At least one functional CDM (Widevine/Playready) is required to download protected content in high quality.
  • Docker (Recommended): Docker Desktop or Engine with Docker Compose v3+.

πŸ› οΈ Quick Start

  1. Clone the repository:
    git clone --recursive https://github.com/CrunchyDL/CrunchyDL.git
    cd CrunchyDL
  2. Configure DRM (Optional but recommended): Place your CDM files in the following folders (created automatically or manually):
    • widevine/: Client blob and private key (or .wvd file).
    • playready/: bgroupcert.dat and zgpriv.dat.
  3. Start with Docker:
    docker-compose up -d
  4. Complete the Setup: Visit http://localhost:3001 and follow the Setup Wizard to initialize your administrator account and services.

πŸ’» Native Installation (Non-Docker)

If you prefer to run the application directly on your host system (Windows or Linux) without Docker, follow these steps:

1. Prerequisites

  • Node.js: v22 or later.
  • pnpm: v10 or later.
  • FFmpeg: Must be installed and in your system's PATH.
  • Git: For cloning and submodules.
  • MKVToolNix (mkvmerge): Must be installed and in your system's PATH.
  • DRM Tools (Windows): Either mp4decrypt or shaka-packager must be in your PATH for decryption to work.

2. Automatic Setup

We provide helper scripts to automate the build and dependency installation:

Windows (PowerShell):

.\scripts\setup-native.ps1

Linux (Bash):

bash scripts/setup-native.sh

3. Manual Build (If needed)

  1. Initialize Submodules: git submodule update --init --recursive
  2. Frontend Build: cd frontend && pnpm install --frozen-lockfile && pnpm run build
  3. Prepare Backend: Copy frontend/dist/* to backend/public/
  4. Backend Setup: cd backend && pnpm install --frozen-lockfile
  5. Submodule Build: cd backend/multi-downloader-nx && pnpm install --frozen-lockfile && pnpm run tsc false false
  6. Start Server: cd backend && node index.js

πŸƒ Quick Start (Post-Setup)

Once the setup is complete, you can start the server using the launchers in the root directory:

  • Windows: Double-click run-windows.bat
  • Linux: Run bash run-linux.sh

Visit http://localhost:3001 to use the application.


Server File Logging

The server keeps full verbose output in the console, but logs/server.log is compact by default to avoid huge text files. In compact mode, the file stores stderr, warnings/errors, lifecycle messages, failed requests, and completion events.

Optional environment variables:

  • SERVER_FILE_LOG_MODE=compact|all|off (default: compact)
  • SERVER_LOG_MAX_BYTES=5242880 (default: 5 MB before rotation)
  • SERVER_LOG_MAX_FILES=3 (default: keep server.log.1 to server.log.3)
  • SERVER_LOG_MAX_LINE_CHARS=2000 (default: truncate very long lines)
  • SERVER_LOG_PATH=/custom/path/server.log (default: logs/server.log)

πŸ–₯️ Desktop Launcher (System Tray)

For a more integrated experience on Windows and Linux, we provide a lightweight System Tray launcher that allows you to start the server and open the web interface from your taskbar.

The Launcher also includes an administrator interface with service controls, repository selection, live system metrics, library counters, disk usage, and console access.

Launcher Administrator Interface

1. Build the Launcher

Before using it for the first time, you need to compile the binary:

Windows:

  • Double-click build-launcher.bat

Linux:

  • Run bash build-launcher.sh

2. Run the Launcher

Once built, you can start it using:

  • Windows: Double-click start-launcher.bat or run launcher-bin/crunchydl-launcher.exe
  • Linux: Run launcher-bin/crunchydl-launcher (ensure it has execute permissions: chmod +x)

Right-click the orange icon in your system tray to access the menu.


πŸ” DRM & CDM Configuration

This application uses the multi-downloader-nx core for decryption. To enable high-quality downloading (1080p+), you must provide your own CDM (Content Decryption Module) files.

  • Widevine: Recommended for most content. Put your files in the root /widevine folder.
  • Playready: Supported for specific streams. Put your files in the root /playready folder.

Important

Legal Disclaimer: This software is intended for personal, educational, and research purposes ONLY. We do not provide any copyrighted content, decryption keys, or bypasses for digital rights management. The user is solely responsible for obtaining the necessary credentials and CDM files from their own legal devices and complying with the Terms of Service of any platform accessed.


πŸ› οΈ Tech Stack

Layer Technologies
Frontend React 18, Vite, Vanilla CSS, Lucide Icons, i18next
Backend Node.js, Express, Undici, FFmpeg
Database SQLite (default) / MySQL (optional)
Infrastructure Docker & Docker Compose

β˜• Support the Project

If you like the project and want to support its development, you can buy me a coffee:

Ko-fi

You can also see our list of amazing Donors.


πŸ’¬ Community

Join our Discord Server to get support, share suggestions, or just chat with other users!

Discord


πŸ“œ License & Ethics

Licensed under the PolyForm Noncommercial 1.0.0. Personal and hobbyist use is permitted; commercial use is strictly prohibited.

See the LICENSE file for more details.

About

Webservice for multi-downloader-nx to download anime from well know site

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors