{% extends "base.html" %} {% block title %}Settings - AniWorld Downloader{% endblock %} {% block content %}
{{ env_path }}
| ID | User | Role | Auth |
|---|
Keys let scripts and other tools use the JSON API without logging in. Send the key as an X-API-Key header. A key is only shown once, right after you create it.
{% if not auth_enabled %}
| Name | Key | Access | Last used | Expires |
|---|
Every write needs a Content-Type of application/json. Read keys may call anything in the read column, write keys everything up to downloads, full access keys everything.
| Endpoint | Needs | What it does |
|---|---|---|
GET /api/ping | read | Check the key and see its access level |
POST /api/search | read | Search a site, body: keyword, site |
GET /api/series?url= | read | Title, poster, description and genres |
GET /api/seasons?url= | read | Seasons of a series |
GET /api/episodes?url= | read | Episodes of a season, with languages |
GET /api/providers?url= | read | Hosters available per language |
GET /api/queue | read | The queue with live progress |
GET /api/queue?limit=&offset=&status=&q=&sort= | read | One page of the queue with totals and counts. Paged rows leave
out episodes. status: queued, running, completed, failed, cancelled, active, finished.
sort: smart, newest, oldest, title |
GET /api/queue/counts | read | How many items sit in each status |
POST /api/download | write | Queue episodes, see the example below |
POST /api/queue/<id>/cancel | write | Cancel a queued or running item |
POST /api/queue/<id>/retry | write | Retry a failed item |
DELETE /api/queue/<id> | write | Remove an item from the queue |
DELETE /api/queue/completed | write | Clear finished items |
GET /api/library/locations | read | Download folders that exist |
GET /api/library/titles | read | Titles in one location |
GET /api/library/title?folder= | read | Files of a single title |
POST /api/library/delete | full | Delete a title, season or episode |
GET /api/autosync/status | full | Last run and its report |
POST /api/autosync/run | full | Start a sync right now |
GET /api/settings | full | Read the current settings |
curl -H "X-API-Key: awd_yourkey" \
http://localhost:8080/api/queue
curl -X POST http://localhost:8080/api/download \
-H "X-API-Key: awd_yourkey" \
-H "Content-Type: application/json" \
-d '{
"title": "Naruto",
"series_url": "https://aniworld.to/anime/stream/naruto",
"language": "German Dub",
"provider": "VOE",
"episodes": [
"https://aniworld.to/anime/stream/naruto/staffel-1/episode-1"
]
}'
The episode URLs come from /api/episodes, and /api/providers tells you which hosters carry the language you want. Add "custom_path_id" to send a download to one of your custom paths.
Give a folder a name and pick it as the download target from the download dialog.
| Name | Path | Default for sites |
|---|
Tick the sites a path should be the pre-selected download folder for.
Applies to new downloads immediately.
Drag a provider to reorder it. The selected provider is always tried first. If it fails, downloads fall back through this order.
Downloads are sorted into subfolders per language (german-dub/, english-sub/, ...).
English Sub is hidden from the language selector and cannot be downloaded.
Shows the Hanime tab on the home page.
Off by default: the site is geo-blocked and behind Google reCAPTCHA, which we cannot solve for you. Turn it on only if you can reach it yourself.
Off by default: Kinox asks for a captcha on every single download, which you have to solve by hand each time.
Shows the Library tab for browsing and deleting downloaded files.
Checks the newest aniworld.to episodes once a day and downloads what is missing for series you already have. Adds an admin-only Auto-Sync tab.
Queue only the episodes that just came out instead of filling in every episode of the series you are missing. Use this if you leave gaps on purpose.
Container for downloaded files. MP4 is the most compatible with players and Plex.
When off, a movie is saved straight into the download path instead of a "Title (Year)" folder.
Custom CSS applied for everyone on this instance. Write your own rules, or pull in a theme with a single import line. The sign-in screen is never themed.
{# The link sits outside the span, since data-i18n overwrites textContent. #}Ready made themes live in their own repositories, for example SiroxCW/aniworld-themes.
Broke the layout? Open /settings?nocss=1 to load this page without custom CSS.
An imported theme is fetched by each visitor's browser, so the host it sits on sees their IP and can change the theme at any time. Only import URLs you trust.
A GLSL fragment shader painted behind the whole page. Write the body of main() and set fragColor. Available: u_resolution, u_time, and fragColor.
Shaders run on the GPU and cannot reach your files, cookies or network. They are checked in your browser before saving, paused when the tab is hidden, and skipped entirely with /settings?nocss=1.
Let users request movies and series from Discord. Requests are sent to you for approval.
The requester is always DM'd when a download finishes. With an announce channel set, a "now available" message is posted there too.
Check this after connecting or disconnecting a VPN to confirm the outbound IP is what you expect.