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.
Table of Contents
- Core Features
- Supported Sites
- Supported Hosters
- Installation
- Usage
- Docker Deployment
- API Endpoints
- Support
- Legal Disclaimer
- License
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.
Supported Sites
You can download content from the following websites:
- AniWorld.to (Anime)
- S.to (Anime & Series)
- MegaKino.ms (Movies)
Supported Hosters
The downloader supports a wide range of popular hosters, including:
- VOE
- Filemoon
- Vidmoly
- Doodstream
- Streamtape
- LoadX
- Luluvdo
- Vidoza
- SpeedFiles
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
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
Docker Deployment
The recommended way to run the AniWorld Downloader is with Docker, which simplifies setup and dependency management.
Using Docker Compose (Recommended)
-
Clone the repository:
git clone https://github.com/Yezun-hikari/AniWorld-Downloader.git cd AniWorld-Downloader
-
Modify
docker-compose.ymlto set your download paths. By default, it will createdownloadsandmoviesdirectories in the project folder. -
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)
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
aniworldservice is configured to use the network of thevpnservice (network_mode: "service:vpn"). - The
vpnservice is a Gluetun container. You must configure theVPN_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
8080exposes the AniWorld Downloader web interface. - Port
8001exposes the Gluetun API, which can be used for integrations with dashboards like gethomepage.
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.
Credits
Original AniWorld-Downloader: phoenixthrush
MEGAKino-Downloader: Tmaster055
Support
If you need help with AniWorld Downloader, you can:
- Submit an issue on the GitHub Issues page.
If you find this tool useful, consider starring the repository on GitHub. Your support is greatly appreciated!
Thank you for using AniWorld Downloader!
⚠️ 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.
License
This project is licensed under the MIT License. For more details, see the LICENSE file or click the blue text above.
Metadata
Release files for AniWorld-Downloader 3.8.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aniworld_downloader-3.8.2.tar.gz | 133.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aniworld_downloader-3.8.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 289.8 kB
Release files / aniworld_downloader-3.8.2.tar.gz
| Download URL | aniworld_downloader-3.8.2.tar.gz |
|---|---|
| Size | 133.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0edefabb37aa1faff719e8a42fbb116a8ab9ae7aa984e0d1d0b51a9cc4f3de72
|
|
BLAKE2b-256 checksum How to use checksums |
f2a3580577861a2472ca22a0d0368c663def2aa08dff13723cd46a8f57e617d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 10, 2025.
Transparency logRelease files / aniworld_downloader-3.8.2-py3-none-any.whl
| Download URL | aniworld_downloader-3.8.2-py3-none-any.whl |
|---|---|
| Size | 156.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
40128de9e6b66d73c07a98003417944d1224e4bd70c0416bd21c1b955f8d8fa3
|
|
BLAKE2b-256 checksum How to use checksums |
1c9c7d8ffce3d2e2d9ba8681ac56f90282887c612e92b38e612d614b517dc2bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 10, 2025.
Transparency log