-
Notifications
You must be signed in to change notification settings - Fork 3
Troubleshooting
Start by identifying which stage failed:
- installation or
PATH; - search/episode discovery;
- provider server/native-source resolution;
- KotoCDN relay handling;
- player launch;
- download transfer/finalization.
The distinction matters: reinstalling will not repair a provider outage, and changing providers will not fix a missing player executable.
Windows portable installations default to:
C:\Users\USER\.local\bin\ani-cli-rs.exe
Check:
Test-Path "$HOME\.local\bin\ani-cli-rs.exe"
[Environment]::GetEnvironmentVariable("Path", "User")
Get-Command ani-cli-rs.exe -ErrorAction SilentlyContinueOpen a new PowerShell or Command Prompt after installation. The current terminal does not automatically inherit persistent PATH changes made by another process.
Linux:
ls -l "$HOME/.local/bin/ani-cli-rs"
printf '%s\n' "$PATH"
command -v ani-cli-rsSource the profile modified by the installer or open a new shell.
Current installer scripts deliberately select the published x64 Windows archive on Windows, including Windows 11 ARM64 systems that can emulate x64. Download the newest install.ps1; older cached copies may still contain architecture detection that rejects some systems.
Useful system information:
[Environment]::Is64BitOperatingSystem
[Environment]::Is64BitProcess
$env:PROCESSOR_ARCHITECTURE
$env:PROCESSOR_ARCHITEW6432
Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber, OSArchitectureYour shell is using an old Cargo. Verify:
which cargo
which rustc
cargo --version
rustc --versionAfter installing through rustup:
source "$HOME/.cargo/env"
rustup update stableEnsure $HOME/.cargo/bin appears before /usr/bin in PATH.
Install the exact target:
rustup target add x86_64-unknown-linux-muslor:
rustup target add aarch64-unknown-linux-muslAlso install the corresponding musl linker/toolchain through your distribution.
Retry once, or select the other catalog with --provider anikoto2 or --provider anikoto. Common categories:
-
rate limit reached: wait before retrying; -
catalog error: the selected catalog endpoint failed; -
no mapping: the catalog could not map the selected episode to an embed; -
native source resolution failed: returned servers were unsupported, deleted, or changed; -
provider playlist exceeds ... limit: the response violated relay safety bounds.
Repeated rapid retries can prolong upstream throttling.
Different episodes use different third-party hosts. One show can resolve through MegaPlay or VidTube while another has only unsupported or deleted embeds. Include the show ID, episode, mode, version, and sanitized provider categories in a bug report.
Do not include complete signed media URLs.
Likely causes:
- expired signed URL;
- missing provider referrer/origin;
- URL bound to another public IP;
- router, DNS, antivirus, or corporate filtering;
- too many parallel connections.
Resolve the source again. Test the other catalog, another network, or a VPN only if allowed by your network policy. FortiGuard and similar filters may classify catalog or media hosts as adult/streaming content even when ani-cli-rs itself works correctly.
Verify the executable directly:
Get-Command mpv.exe, vlc.exe, syncplay.exe, aria2c.exe, yt-dlp.exe, ffmpeg.exe -ErrorAction SilentlyContinuecommand -v mpv vlc syncplay aria2c yt-dlp ffmpegpkg install vlc installs a terminal program and does not expose the separately installed Android VLC application. Install an Android player app and ensure the standard Termux tools are current:
pkg install termux-tools
command -v termux-am-starter termux-am am termux-open termux-open-urlRun ani-cli-rs "title" to request mpv-android or ani-cli-rs --vlc "title" to request Android VLC. If the explicit activity launcher reports a missing socket, ani-cli-rs uses media-typed termux-open before falling back to termux-open-url. Android's chosen/default media handler controls the fallback, so --vlc cannot force VLC there. If Android still opens a browser, clear that browser's default link association and select an installed video player. If the activity launcher is installed at a custom path, set ANI_CLI_PLAYER to that launcher.
Protected HLS is served through a loopback relay owned by the running ani-cli-rs process. Leave Termux running in the background while watching and press Enter only after playback has ended. Pressing Enter early shuts down the relay and makes the player lose its playlist and segments.
Open the Android player's subtitle menu and select the provider track. ani-cli-rs exposes separate provider subtitles as standard HLS subtitle renditions. Device testing confirmed them with mpv-android, VLC, Amnis, and Samsung Video Player, but behavior can still differ between Android versions and player builds. Burned-in subtitles are unaffected.
If a player reports a 30-minute subtitle rendition for an unusual movie or special, the provider subtitle could not be parsed for its final cue time and ani-cli-rs used its bounded fallback duration. Include the provider name, title, episode, and sanitized links --json output in a bug report.
Install only the tools needed by your workflow. Direct downloads can fall back to Rust; HLS requires yt-dlp or FFmpeg.
The transfer did not finalize. Rerun the same command to resume where supported. Check free disk space, file permissions, antivirus quarantine, whether another program holds the final filename, and the final aria2/ani-cli-rs error. See Downloads.
Safe report template:
ani-cli-rs version:
OS and architecture:
Command shape (redact title if needed):
Show ID and episode:
Sub or dub:
Provider failure categories:
Expected behavior:
Actual behavior:
Never attach cookies, authorization headers, active signed URLs, raw decrypted episode payloads, or personal paths unless carefully sanitized.