Skip to main content

AniWorld Downloader is a command-line tool for downloading and streaming anime, series and movies, compatible with Windows, macOS, and Linux.

Project description

AniWorld Downloader

AniWorld Downloader is a tool for downloading content from various streaming sites. It features a modern web interface and can be easily deployed using Docker.

Downloads License

Preview

Table of Contents

(back to top)

Core Features

  • Web Interface: A modern web UI for easy searching, downloading, and queue management with real-time progress tracking.
  • Docker Support: Containerized deployment with Docker and Docker Compose for a quick and easy setup.
  • Download Queue: Manage all your downloads in one place with a clear and organized queue.
  • Multiple Sources: Download content from a variety of sources.
  • Custom Download Paths: Set different download directories for series/anime and movies to keep your library organized.

(back to top)

Supported Sites

You can download content from the following websites:

  • AniWorld.to (Anime)
  • S.to (Anime & Series)
  • MegaKino.ms (Movies)

(back to top)

Supported Hosters

The downloader supports a wide range of popular hosters, including:

  • VOE
  • Filemoon
  • Vidmoly
  • Doodstream
  • Streamtape
  • LoadX
  • Luluvdo
  • Vidoza
  • SpeedFiles

(back to top)

Installation

Prerequisites

Ensure you have Python 3.9 or higher installed.
Additionally, make sure Git is installed if you plan to install the development version.

Installation

Install Latest Stable Release (Recommended)

To install the latest stable version, use the following command:

pip install --upgrade aniworld

Install Latest Development Version (Requires Git)

To install the latest development version directly from GitHub, use the following command:

pip install --upgrade git+https://github.com/Yezun-hikari/AniWorld-Downloader.git@next#egg=aniworld

(back to top)

Usage

The primary way to use this tool is through its web interface, especially when deployed with Docker.

Web Interface

Launch the modern web interface for easy searching, downloading, and queue management:

aniworld --web-ui

The web interface provides:

  • Modern Search: Search for anime, series, and movies across all supported sites.
  • Episode/Movie Selection: A visual picker to select what you want to download.
  • Download Queue: Track the real-time progress of all your downloads.
  • User Authentication: Optional multi-user support with admin controls.
  • Settings Management: Configure providers, languages, and download preferences.

Web Interface Options

# Basic web interface (localhost only)
aniworld --web-ui

# Expose to network (accessible from other devices)
aniworld --web-ui --web-expose

# Enable authentication for multi-user support
aniworld --web-ui --enable-web-auth

# Set custom download paths
aniworld --web-ui --output-dir /path/to/series-downloads --movie-dir /path/to/movie-downloads

(back to top)

Docker Deployment

The recommended way to run the AniWorld Downloader is with Docker, which simplifies setup and dependency management.

Using Docker Compose (Recommended)

  1. Clone the repository:

    git clone https://github.com/Yezun-hikari/AniWorld-Downloader.git
    cd AniWorld-Downloader
    
  2. Modify docker-compose.yml to set your download paths. By default, it will create downloads and movies directories in the project folder.

  3. Build and start the container:

    docker-compose up -d --build
    

Docker Configuration

The Docker container runs with:

  • User Security: Non-root user for enhanced security.
  • System Dependencies: Includes ffmpeg for video processing.
  • Web Interface: Enabled by default with authentication and network exposure.
  • Download Directories:
    • /app/downloads (for series/anime)
    • /app/movies (for movies)
  • Port: 8080 (configurable via environment variables)

(back to top)

Using Docker Compose with Gluetun VPN

For users who want to route the container's traffic through a VPN, you can use Gluetun. Here is an example docker-compose.yml for a Portainer stack:

version: '3.8'
services:
  aniworld:
    container_name: aniworld-downloader
    image: aniworld-downloader:local
    volumes:
      - ./downloads:/app/downloads
      - ./movies:/app/movies
      - ./data:/app/data
    stdin_open: true
    tty: true
    restart: unless-stopped
    network_mode: "service:vpn"
  vpn:
    image: 'qmcgaw/gluetun'
    container_name: vpn
    cap_add:
      - NET_ADMIN
    environment:
      - VPN_SERVICE_PROVIDER= # e.g., mullvad, nordvpn, protonvpn
      - OPENVPN_USER= # Your OpenVPN username
      - OPENVPN_PASSWORD= # Your OpenVPN password
    ports:
      - "8080:8080" # AniWorld WebUI
      - "8001:8000" # Gluetun API for integrations like gethomepage
    volumes:
      - ./gluetun:/gluetun
    restart: unless-stopped

In this setup:

  • The aniworld service is configured to use the network of the vpn service (network_mode: "service:vpn").
  • The vpn service is a Gluetun container. You must configure the VPN_SERVICE_PROVIDER (e.g., Mullvad, NordVPN, ProtonVPN) and your credentials. For a full list of providers and setup instructions, refer to the official Gluetun documentation.
  • Port 8080 exposes the AniWorld Downloader web interface.
  • Port 8001 exposes the Gluetun API, which can be used for integrations with dashboards like gethomepage.

(back to top)

API Endpoints

The web interface provides a simple API to monitor download status, making it easy to integrate with dashboards like gethomepage.

/api/download-status

This endpoint provides real-time information about the currently active download.

  • URL: /api/download-status
  • Method: GET
  • Authentication: None. This endpoint is publicly accessible.

Example Response

If a download is in progress, the API will return a JSON object like this:

{
  "series_name": "Oshi No Ko",
  "current_episode_progress": "35%",
  "download_speed": "8.46MiB/s",
  "eta": "00:28",
  "overall_progress": "0/1",
  "success": true
}

If no download is active, it will return:

{
  "success": false,
  "message": "No active downloads"
}

gethomepage Integration

You can add a widget to your gethomepage dashboard to monitor your downloads. Add the following configuration to your services.yaml file:

- AniWorld Downloader:
    icon: https://github.com/Yezun-hikari/AniWorld-Downloader/blob/main/src/aniworld/nuitka/icon.webp?raw=true
    href: http://localhost:8080/
    description: WebUI for Anime-Downloads
    widget:
      type: customapi
      url: http://localhost:8080/api/download-status
      mappings:
        - field: series_name
          label: Name
        - field: current_episode_progress
          label: Progress
        - field: download_speed
          label: Speed
        - field: overall_progress
          label: Episodes
        - field: eta
          label: ETA

Note: The gethomepage widget will only display the first four mapped fields on the dashboard.

(back to top)

Credits

Original AniWorld-Downloader: phoenixthrush
MEGAKino-Downloader: Tmaster055

(back to top)

Support

If you need help with AniWorld Downloader, you can:

If you find this tool useful, consider starring the repository on GitHub. Your support is greatly appreciated!

Thank you for using AniWorld Downloader!

(back to top)

⚠️ Legal Disclaimer

I provide this tool for educational and informational purposes only. You are solely responsible for how you use it. Any actions taken using this tool are entirely your own responsibility. I do not condone or support illegal use.

(back to top)

License

This project is licensed under the MIT License. For more details, see the LICENSE file or click the blue text above.

(back to top)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aniworld_downloader-3.8.2.tar.gz (133.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aniworld_downloader-3.8.2-py3-none-any.whl (156.2 kB view details)

Uploaded Python 3

File details

Details for the file aniworld_downloader-3.8.2.tar.gz.

File metadata

  • Download URL: aniworld_downloader-3.8.2.tar.gz
  • Upload date:
  • Size: 133.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aniworld_downloader-3.8.2.tar.gz
Algorithm Hash digest
SHA256 0edefabb37aa1faff719e8a42fbb116a8ab9ae7aa984e0d1d0b51a9cc4f3de72
MD5 665d32d69d7b966ee9fa0d3f346a4c85
BLAKE2b-256 f2a3580577861a2472ca22a0d0368c663def2aa08dff13723cd46a8f57e617d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aniworld_downloader-3.8.2.tar.gz:

Publisher: build.yml on Yezun-hikari/AniWorld-Downloader

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aniworld_downloader-3.8.2-py3-none-any.whl.

File metadata

File hashes

Hashes for aniworld_downloader-3.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 40128de9e6b66d73c07a98003417944d1224e4bd70c0416bd21c1b955f8d8fa3
MD5 627f237d7f282474547fea93181489cd
BLAKE2b-256 1c9c7d8ffce3d2e2d9ba8681ac56f90282887c612e92b38e612d614b517dc2bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for aniworld_downloader-3.8.2-py3-none-any.whl:

Publisher: build.yml on Yezun-hikari/AniWorld-Downloader

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page