Skip to content

Releases: vorlie/ani-cli-rs

0.9.5

Choose a tag to compare

@vorlie vorlie released this 30 Aug 15:08
0cbae02

What's Changed

Full Changelog: 0.9.4...0.9.5

0.9.4

Choose a tag to compare

@vorlie vorlie released this 18 Aug 03:52
a4785e4

ani-cli-rs 0.9.4

This release fixes video player launching issues.

Fixes

  • Fixed video player launching failures by adding HLS relay cache settings to mpv arguments
  • Added mpv cache parameters (--cache=yes, --cache-secs=120, --demuxer-max-bytes=512MiB, --demuxer-max-back-bytes=256MiB) for relayed streams
  • Enhanced player executable validation to provide better error messages when players are not found
  • Improved process detachment behavior to match koto-cli's nohup behavior
  • Fixed URL argument ordering to ensure the stream URL is passed as the last argument to mpv
  • These changes resolve playback issues with Anikoto provider's HLS streams and relay mechanism

Debug logging improvements

The application includes comprehensive debug logging through the tracing crate to help with troubleshooting and issue reporting:

  • Player launch logging with executable details, process IDs, and command arguments
  • Stream resolution logging with URLs, HLS status, and provider information
  • HLS relay logging with bind addresses, upstream hosts, and resource registration
  • Network request logging for provider API calls and stream fetching
  • Error context logging with structured metadata for better debugging

Enable debug logging with:

RUST_LOG=ani_cli_rs=debug,ani_cli=debug ani-cli-rs "anime title"

For full stream resolution and relay tracing:

RUST_LOG=ani_cli_rs=trace,ani_cli=trace ani-cli-rs "anime title"

Upgrade

Existing installations can update with:

ani-cli-rs update

Full Changelog: 0.9.3...0.9.4

0.9.3

Choose a tag to compare

@vorlie vorlie released this 31 Jul 15:50

What's Changed

  • feat(cli): replace ANI_CLI_PROVIDER with ANI_CLI_RS_PROVIDER by @vorlie in #23

Full Changelog: 0.9.2...0.9.3

0.9.2

Choose a tag to compare

@vorlie vorlie released this 29 Jul 13:34
c27b8e4

ani-cli-rs 0.9.2

Patch release fixing unreliable subtitle timing on desktop platforms.

Fixes

  • Fixed inconsistent, rapidly changing WebVTT/SRT subtitle timing during playback and after download on Linux/desktop mpv, VLC, and Syncplay when using the anikoto2 (MegaPlay/KotoCDN) provider. (#18)

  • External subtitles were being wrapped as a synthetic single-segment HLS subtitle rendition and advertised in the relayed master playlist, in addition to being passed to the player directly via --sub-file. That synthetic rendition does not match how HLS clients expect WebVTT segments to be chunked (RFC 8216 section 3.5) and produced unreliable cue timing in some HLS demuxers. Desktop players and downloads now only receive the direct sidecar subtitle URL; the HLS rendition is no longer generated for them.

  • Android/Termux playback is unaffected: it still receives subtitles through the HLS rendition, since Android players only receive a single intent URL and cannot be handed an explicit subtitle file.

What's Changed

  • feat(ci): add CI workflow for automated checks and testing by @vorlie in #17
  • fix(relay): stop wrapping subtitles as HLS on desktop by @vorlie in #19

Upgrade

ani-cli-rs update

Termux users should pull and rebuild:

cd ~/ani-cli-rs
git pull --ff-only
cargo build --release --locked
install -Dm755 target/release/ani-cli-rs "$PREFIX/bin/ani-cli-rs"

Full Changelog: 0.9.1...0.9.2

0.9.1

Choose a tag to compare

@vorlie vorlie released this 28 Jul 19:02
b9b850f

What's Changed

  • feat(ui): allow returning to search after playback by @vorlie in #16

Full Changelog: 0.9.0...0.9.1

0.9.0

Choose a tag to compare

@vorlie vorlie released this 28 Jul 16:30
91b7989

ani-cli-rs 0.9.0

This release adds tested Android/Termux playback support, including native Android player handoff, protected HLS relaying, and external subtitle tracks.

Highlights

  • Added source-build support for Android through Termux.
  • Added Android VIEW intent launching for mpv-android and VLC.
  • Added compatibility fallbacks through media-typed termux-open and termux-open-url.
  • Added Android playback for protected MegaPlay/KotoCDN HLS streams through the existing loopback relay.
  • Added external WebVTT/SRT subtitles as standard HLS subtitle renditions.
  • Added generated subtitle media playlists with duration derived from the final subtitle cue.
  • Added Termux-specific help, installation instructions, usage guidance, and troubleshooting.

Android player behavior

Normal playback requests mpv-android. --vlc requests the Android VLC application when Termux's explicit activity bridge works.

Some Termux installations expose a socket-backed termux-am that cannot connect. ani-cli-rs now detects a failed launch and falls back to Android's media handler. On this fallback path, Android's selected or default application takes precedence, so --vlc becomes a preference rather than a guarantee.

For protected HLS, keep Termux running while watching. Return to Termux and press Enter only after playback finishes; pressing Enter early shuts down the local relay.

Subtitles

Separate provider subtitles are wrapped in HLS subtitle media playlists and exposed to compatible Android players. Select the track from the player's subtitle menu if it is not enabled automatically.

Device testing confirmed relayed playback and selectable external subtitles with mpv-android, VLC, Amnis, and Samsung Video Player. Compatibility can still vary between Android versions and player builds. Embedded and burned-in subtitles are unaffected.

Installation

No Android binary is published. Build from source inside Termux:

pkg update
pkg install git rust termux-tools
git clone https://github.com/vorlie/ani-cli-rs.git
cd ani-cli-rs
cargo build --release --locked
install -Dm755 target/release/ani-cli-rs "$PREFIX/bin/ani-cli-rs"

Install an Android media player separately. Do not use pkg install vlc for Android handoff; that installs a terminal VLC build rather than the Android application.

ani-cli-rs "cyberpunk"
ani-cli-rs --vlc "cyberpunk"

Official prebuilt releases remain available for Windows x64 and Linux x86-64. macOS and Termux remain tested source-build platforms.

Upgrade

Existing Windows and Linux installations can update with:

ani-cli-rs update

Termux users should pull and rebuild:

cd ~/ani-cli-rs
git pull --ff-only
cargo build --release --locked
install -Dm755 target/release/ani-cli-rs "$PREFIX/bin/ani-cli-rs"

Full changelog: 0.8.0...0.9.0

0.8.0

Choose a tag to compare

@vorlie vorlie released this 27 Jul 18:14

ani-cli-rs 0.8.0

This release replaces the broken AllAnime/Mkissa integration with a second,
fully native Anikoto provider. ani-cli-rs now ships two independent catalogs
without requiring Python or a separately hosted relay.

Highlights

  • Added Anikoto.cz as --provider anikoto2, including native search, canonical
    show selection, fractional episodes, and strict SUB, H-SUB, and DUB
    availability.
  • Ported the complete Anikoto.cz AJAX workflow to Rust: episode lists, server
    tokens, optional NekoStream mapper candidates, and server URL exchanges.
  • Added native MegaPlay and VidTube extraction through their player data-id
    and stream/getSources responses.
  • Preserved provider referer, origin, user-agent, quality, and subtitle metadata
    throughout playback and downloads.
  • Expanded HLS master playlists into selectable qualities and deduplicated
    native sources.
  • Improved the Rust KotoCDN compatibility relay, including correct MIME
    handling for both GET and HEAD requests to PNG-wrapped MPEG-TS segments.
  • Added provider-prefixed anikoto2: show IDs so scriptable commands and mixed
    history entries route automatically.
  • Added deterministic parser and relay coverage plus an opt-in live
    Anikoto.cz search-to-stream smoke test.

Provider selection

Anikoto API/MegaPlay is now the default:

ani-cli-rs "frieren"
ani-cli-rs --provider anikoto "frieren"

Use Anikoto.cz as the independent alternative:

ani-cli-rs --provider anikoto2 "black torch"
ani-cli-rs -p anikoto2 search --json "black torch"

The environment equivalent is:

ANI_CLI_PROVIDER=anikoto2

Provider searches remain separate, and ani-cli-rs never silently switches
catalogs during source resolution.

Breaking changes

  • allanime is no longer an accepted provider.
  • The AllAnime/Mkissa GraphQL client, rotating crypto bootstrap, response
    decryption, and URL cipher-map implementation have been removed.
  • The debug and refresh-cipher-map commands have been removed because they
    existed exclusively for AllAnime.
  • Old unprefixed AllAnime show IDs and history entries can no longer resolve.
    Search again with either Anikoto provider to create a new self-identifying
    history entry.
  • Library users must migrate from AllAnimeClient to AnikotoClient or
    AnikotoCzClient. AllAnime-specific crypto and cipher-map public types are
    no longer exported.

No Python runtime dependency

The Anikoto.cz implementation is native Rust. KotoCDN playback uses a
short-lived Hyper server bound only to 127.0.0.1 on an ephemeral port. It
rewrites only registered playlist resources, validates upstream URLs, removes
confirmed PNG prefixes, and shuts down with the attached player or downloader.

The copied Python experiment remains a development reference only and is
excluded from release packages.

Documentation

  • docs/ANIKOTO-CZ.md documents the complete
    Anikoto.cz search-to-play workflow.
  • docs/ANIKOTO-KOTOCDN.md remains the reference
    for the Anikoto API, MegaPlay, and KotoCDN path.
  • The README, Wiki, issue forms, contributor guidance, and deterministic
    showcase now describe the Anikoto-only architecture.

Upgrade

Use the built-in updater:

ani-cli-rs update

Or reinstall using the platform installation script. Official Windows and
Linux x86-64 archives should be published with matching SHA-256 checksum files.

Full changelog: 0.7.2...0.8.0

0.7.2

Choose a tag to compare

@vorlie vorlie released this 22 Jul 11:37
938b802

ani-cli-rs 0.7.2

What's Changed

  • Fix embedded subtitle language labels and version bump to 0.7.2 by @vorlie in #7

Full Changelog: 0.7.1...0.7.2

0.7.1

Choose a tag to compare

@vorlie vorlie released this 22 Jul 10:54
858cbdd

ani-cli-rs 0.7.0

What's Changed

  • feat: add subtitles for anikoto downloads. by @vorlie in #6

Full Changelog: 0.7.0...0.7.1

0.7.0

Choose a tag to compare

@vorlie vorlie released this 22 Jul 09:11
da2af4e

ani-cli-rs 0.7.0

This release adds Anikoto as an explicit second catalog while keeping AllAnime as the default for Bash ani-cli compatibility.

Highlights

  • Select Anikoto with --provider anikoto, -p anikoto, or ANI_CLI_PROVIDER=anikoto.
  • Search the Anikoto recent catalog and AniList concurrently, merge stable identifiers, and retain adult filtering.
  • Resolve native MegaPlay sources through explicit episode, embed-ID, AniList, and MAL candidates.
  • Play or download MegaPlay HLS delivered by KotoCDN, including confirmed PNG-wrapped MPEG-TS segments, through a tokenized loopback relay.
  • Preserve provider headers and subtitle metadata for mpv, VLC, Syncplay, yt-dlp, aria2, and FFmpeg workflows.
  • Store Anikoto history in the existing tab-separated format through self-identifying anikoto: IDs. Mixed AllAnime/Anikoto continuation routes each entry independently.
  • Return provider-aware catalog, mapping, rate-limit, extraction, and unavailable-source diagnostics.

AllAnime diagnostics remain available through debug and refresh-cipher-map; these commands intentionally reject an Anikoto selection. Searches are not combined, and playback never silently switches catalogs.

See docs/ANIKOTO-KOTOCDN.md for the complete contributor workflow.

Full changelog: 0.6.0...0.7.0