Add selectable animdl download fallback

This commit is contained in:
Dymas
2026-07-19 14:17:13 +02:00
parent 6bec0e068a
commit 6b3745c7e9
10 changed files with 282 additions and 65 deletions
+13 -9
View File
@@ -2,13 +2,13 @@
Local web UI for a system-wide `ani-cli` install.
Current version: `0.48.3`
Current version: `0.49.0`
## What it does
- Search anime in `sub` or `dub`, with poster-style results shown below the selection panel and the first English alternate title when available
- Queue downloads with folder, quality, media type, season, and episode controls
- Optionally retry failed `ani-cli` downloads with `anipy-cli`
- Choose which download backends queue jobs may use: `ani-cli`, `anipy-cli`, and `animdl`
- Track shows in a watchlist with `Watching`, `Planned`, `Finished`, and `Dropped` categories
- Expose a small JSON summary endpoint for Homepage dashboard widgets
- Refresh watchlist episode counts manually or on a schedule
@@ -22,14 +22,14 @@ Current version: `0.48.3`
- `/`: Search and queue downloads, with poster-card search results below the selection box and alternate English titles under the main name when available
- `/queue`: Monitor downloads and Jellyfin handoff jobs, inspect logs, retry failed downloads, avoid duplicate re-queues for the same failed download, clear failed jobs, and remove finished jobs
- `/watchlist`: Track shows, refresh them, download all available episodes, and manage auto-download settings such as `Source name`, library `Name`, season, and episode offset
- `/config`: Save defaults, toggle `anipy-cli` fallback retries, schedule refreshes, configure Jellyfin and Discord, monitor Jellyfin handoff progress, and view runtime info and the changelog
- `/config`: Save defaults, choose queue download methods and fallback retries, schedule refreshes, configure Jellyfin and Discord, monitor Jellyfin handoff progress, and view runtime info and the changelog
## Quick start
Requirements:
- `ani-cli` installed and available in `PATH`
- Optional: `anipy-cli` installed and available in `PATH` if you want automatic fallback retries outside Docker
- Optional: `anipy-cli` and/or `animdl` installed and available in `PATH` if you want automatic fallback retries outside Docker
- Common runtime tools used by `ani-cli`, especially `curl`, `ffmpeg`, `fzf`, `grep`, `openssl`, `sed`, `aria2c`, `botan`, and `yt-dlp`
Run locally:
@@ -51,6 +51,7 @@ Useful flags and env:
- `ANI_CLI_WEB_PORT=8421`
- `ANI_CLI_BIN=/path/to/ani-cli`
- `ANIPY_CLI_BIN=/path/to/anipy-cli`
- `ANIMDL_BIN=/path/to/animdl`
## Docker
@@ -95,7 +96,7 @@ Docker notes:
- `UPDATE_ON_START=true` runs `ani-cli --update` before startup
- `ANI_CLI_WEB_BRANCH` lets the image clone a specific `ani-cli-web` branch at build time
- `botan` is installed inside the container for providers or scripts that need Botan cryptography tooling
- `anipy-cli` is installed systemwide inside the container, so fallback retries are available without extra container setup
- `anipy-cli` and `animdl` are installed systemwide inside the container, so fallback retries are available without extra container setup
## Key behavior
@@ -117,9 +118,11 @@ Docker notes:
### Download fallback
- Optional and configured from `/config`
- When enabled, a failed `ani-cli` queue job retries once with `anipy-cli`
- Fallback retries keep the queued episode numbers when the downloaded `anipy-cli` filenames are renumbered from `1`
- Docker images install `anipy-cli` automatically; non-Docker installs should provide it in `PATH` themselves
- Queue jobs can use any checked combination of `ani-cli`, `anipy-cli`, and `animdl`
- Checked methods are tried in this order: `ani-cli`, `anipy-cli`, then `animdl`
- Selecting one method disables fallback retry; selecting multiple methods makes later methods automatic fallbacks
- Fallback retries keep the queued episode numbers when fallback downloader filenames are renumbered from `1`
- Docker images install `anipy-cli` and `animdl` automatically; non-Docker installs should provide the selected tools in `PATH` themselves
### Queue retries
@@ -162,7 +165,7 @@ The Config page runtime panel shows:
- `ani-cli-web` version loaded from `VERSION`
- Installed `ani-cli` version
- Installed `anipy-cli` version and dependency status
- Installed `anipy-cli` and `animdl` versions and dependency status
- A `Changelog` button that opens a scrollable viewer backed by `CHANGELOG.md`
## Remote access
@@ -211,6 +214,7 @@ Most users only need these environment variables:
- `ANI_CLI_BIN`
- `ANIPY_CLI_BIN`
- `ANIMDL_BIN`
- `ANI_CLI_WEB_HOST`
- `ANI_CLI_WEB_PORT`
- `ANI_CLI_WEB_ALLOW_REMOTE`