Skip to main content

A browser anime site experience from the terminal

Project description

FastAnime

Your browser anime experience, from the terminal.

PyPI - Version PyPI - Downloads GitHub Actions Workflow Status Discord GitHub Issues PyPI - License

Discord Server Invite

fastanime

Screenshots Media Results Menu: image Episodes Menu with Preview: image
Riced Preview Examples

Anilist Results Menu (FZF): image

Episodes Menu with Preview (FZF): image

No Image Preview Mode: image

Desktop Notifications + Episodes Menu: image

Core Features

  • 📺 Interactive TUI: Browse, search, and manage your AniList library in a rich terminal interface powered by fzf, rofi, or a built-in selector.
  • Powerful Search: Filter the entire AniList database with over 20 different criteria, including genres, tags, year, status, and score.
  • 💾 Local Registry: Maintain a fast, local database of your anime for offline access, detailed stats, and robust data management.
  • ⚙️ Background Downloader: Queue episodes for download and let a persistent background worker handle the rest.
  • 📜 Scriptable CLI: Automate streaming and downloading with powerful, non-interactive commands perfect for scripting.
  • 🔧 Highly Customizable: Tailor every aspect—from UI colors and providers to playback behavior—via a simple, well-documented configuration file.
  • 🔌 Extensible Architecture: Easily add new providers, media players, and UI selectors to fit your workflow.

Installation

FastAnime runs on any platform with Python 3.10+, including Windows, macOS, Linux, and Android (via Termux).

Prerequisites

For the best experience, please install these external tools:

  • Required for Streaming:
    • mpv - The primary and recommended media player.
  • Recommended for UI & Previews:
    • fzf - For the best fuzzy-finder interface.
    • chafa or kitty's icat - For image previews in the terminal.
  • Recommended for Downloads & Advanced Features:
    • ffmpeg - Required for downloading HLS streams and merging subtitles.
    • webtorrent-cli - For streaming torrents directly.

Recommended Installation (uv)

The best way to install FastAnime is with uv, a lightning-fast Python package manager.

# Install with all optional features for the full experience
uv tool install "fastanime[standard]"

# Or, pick and choose the extras you need:
uv tool install fastanime  # Core functionality only
uv tool install "fastanime[download]"  # For advanced downloading with yt-dlp
uv tool install "fastanime[discord]"   # For Discord Rich Presence
uv tool install "fastanime[notifications]" # For desktop notifications

Other Installation Methods

Platform-Specific and Alternative Installers

Nix / NixOS

nix profile install github:Benexl/fastanime

Arch Linux (AUR)

Use an AUR helper like yay or paru.

# Stable version (recommended)
yay -S fastanime

# Git version (latest commit)
yay -S fastanime-git

Using pipx (for isolated environments)

pipx install "fastanime[standard]"

Using pip

pip install "fastanime[standard]"
Building from Source

Requires Git, Python 3.10+, and uv.

git clone https://github.com/Benexl/FastAnime.git --depth 1
cd FastAnime
uv tool install .
fastanime --version

[!TIP] Enable shell completions for a much better experience by running fastanime completions and following the on-screen instructions for your shell.

Getting Started: Quick Start

Get up and running in three simple steps:

  1. Authenticate with AniList:

    fastanime anilist auth
    

    This will open your browser. Authorize the app and paste the obtained token back into the terminal.

  2. Launch the Interactive TUI:

    fastanime anilist
    
  3. Browse & Play: Use your arrow keys to navigate the menus, select an anime, and choose an episode to stream instantly.

Usage Guide

The Interactive TUI (fastanime anilist)

This is the main, user-friendly way to use FastAnime. It provides a rich terminal experience where you can:

  • Browse trending, popular, and seasonal anime.
  • Manage your personal lists (Watching, Completed, Paused, etc.).
  • Search for any anime in the AniList database.
  • View detailed information, characters, recommendations, reviews, and airing schedules.
  • Stream or download episodes directly from the menus.

Powerful Searching (fastanime anilist search)

Filter the entire AniList database with powerful command-line flags.

# Search for anime from 2024, sorted by popularity, that is releasing and not on your list
fastanime anilist search -y 2024 -s POPULARITY_DESC --status RELEASING --not-on-list

# Find the most popular movies with the "Fantasy" genre
fastanime anilist search -g Fantasy -f MOVIE -s POPULARITY_DESC

# Dump search results as JSON instead of launching the TUI
fastanime anilist search -t "Demon Slayer" --dump-json

Background Downloads (fastanime queue & worker)

FastAnime includes a robust background downloading system.

  1. Add episodes to the queue:
    # Add episodes 1-12 of Jujutsu Kaisen to the download queue
    fastanime queue add -t "Jujutsu Kaisen" -r "0:12"
    
  2. Start the worker process:
    # Run the worker in the foreground (press Ctrl+C to stop)
    fastanime worker
    
    # Or run it as a background process
    fastanime worker &
    ```The worker will now process the queue, download your episodes, and check for notifications.
    

Scriptable Commands (download & search)

These commands are designed for automation and quick, non-interactive tasks.

download Examples

# Download the latest 5 episodes of One Piece
fastanime download -t "One Piece" -r "-5"

# Download episodes 1 to 24, merge subtitles, and clean up original files
fastanime download -t "Jujutsu Kaisen" -r "0:24" --merge --clean

search (Binging) Examples

# Start binging an anime from the first episode
fastanime search -t "Attack on Titan" -r ":"

# Watch the latest episode directly
fastanime search -t "My Hero Academia" -r "-1"

Local Data Management (fastanime registry)

FastAnime maintains a local database of your anime for offline access and enhanced performance.

  • registry sync: Synchronize your local data with your remote AniList account.
  • registry stats: Show detailed statistics about your viewing habits.
  • registry backup: Create a compressed backup of your entire registry.
  • registry restore: Restore your data from a backup file.
  • registry export/import: Export/import your data to JSON/CSV for use in other applications.
  • registry clean: Clean up orphaned or invalid entries from your local database.

Configuration

FastAnime is highly customizable. A default configuration file with detailed comments is created on the first run.

  • Find your config file: fastanime config --path
  • Edit in your default editor: fastanime config
  • Use the interactive wizard: fastanime config --interactive

Most settings in the config file can be temporarily overridden with command-line flags (e.g., fastanime --provider animepahe anilist).

Default Configuration (`config.ini`) Explained
# [general] Section: Controls overall application behavior.
[general]
provider = allanime          ; The default anime provider (allanime, animepahe).
selector = fzf               ; The interactive UI tool (fzf, rofi, default).
preview = full               ; Preview type in selectors (full, text, image, none).
image_renderer = icat        ; Tool for terminal image previews (icat, chafa).
icons = True                 ; Display emoji icons in the UI.
auto_select_anime_result = True ; Automatically select the best search match.
...

# [stream] Section: Controls playback and streaming.
[stream]
player = mpv                 ; The media player to use (mpv, vlc).
quality = 1080               ; Preferred stream quality (1080, 720, 480, 360).
translation_type = sub       ; Preferred audio/subtitle type (sub, dub).
auto_next = False            ; Automatically play the next episode.
continue_from_watch_history = True ; Resume playback from where you left off.
use_ipc = True               ; Enable in-player controls via MPV's IPC.
...

# [downloads] Section: Controls the downloader.
[downloads]
downloader = auto            ; Downloader to use (auto, default, yt-dlp).
downloads_dir = ...          ; Directory to save downloaded anime.
max_concurrent_downloads = 3 ; Number of parallel downloads in the worker.
merge_subtitles = True       ; Automatically merge subtitles into the video file.
cleanup_after_merge = True   ; Delete original files after merging.
...

# [worker] Section: Controls the background worker process.
[worker]
enabled = True
notification_check_interval = 15 ; How often to check for new episodes (minutes).
download_check_interval = 5      ; How often to process the download queue (minutes).
...

Advanced Features

MPV IPC Integration

When use_ipc = True is set in your config, FastAnime provides powerful in-player controls without needing to close MPV.

Key Bindings:

  • Shift+N: Play the next episode.
  • Shift+P: Play the previous episode.
  • Shift+R: Reload the current episode.
  • Shift+A: Toggle auto-play for the next episode.
  • Shift+T: Toggle between dub and sub.

Script Messages (For MPV Console):

  • script-message select-episode <number>: Jump to a specific episode.
  • script-message select-server <name>: Switch to a different streaming server.

Running as a Service (Linux/systemd)

You can run the background worker as a systemd service for persistence.

  1. Create a service file at ~/.config/systemd/user/fastanime-worker.service:

    [Unit]
    Description=FastAnime Background Worker
    After=network-online.target
    
    [Service]
    Type=simple
    ExecStart=/path/to/your/fastanime worker --log
    Restart=always
    RestartSec=30
    
    [Install]
    WantedBy=default.target
    

    Replace /path/to/your/fastanime with the output of which fastanime.

  2. Enable and start the service:

    systemctl --user daemon-reload
    systemctl --user enable --now fastanime-worker.service
    

Contributing

Contributions are welcome! Whether it's reporting a bug, proposing a feature, or writing code, your help is appreciated. Please read our Contributing Guidelines to get started.

Disclaimer

[!IMPORTANT] This project scrapes public-facing websites. The developer(s) of this application have no affiliation with these content providers. This application hosts zero content and is intended for educational and personal use only. Use at your own risk.

Read the Full Disclaimer

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastanime-3.1.0.tar.gz (577.1 kB view details)

Uploaded Source

Built Distribution

fastanime-3.1.0-py3-none-any.whl (598.2 kB view details)

Uploaded Python 3

File details

Details for the file fastanime-3.1.0.tar.gz.

File metadata

  • Download URL: fastanime-3.1.0.tar.gz
  • Upload date:
  • Size: 577.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for fastanime-3.1.0.tar.gz
Algorithm Hash digest
SHA256 c8941d6a6cf89947e2e5dab1154659b97f7ab0819a3a6ad45ddfbe699a666d5a
MD5 bac81229b7bd2170f26f718157a01011
BLAKE2b-256 46340067a1818ce7d456d84de1bb4053df7e2148c529e4ad1fed786c7f616460

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastanime-3.1.0.tar.gz:

Publisher: publish.yml on Benexl/FastAnime

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastanime-3.1.0-py3-none-any.whl.

File metadata

  • Download URL: fastanime-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 598.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for fastanime-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 77d3469baf6ed2c0663fb3dda0c65f755aab235709d910102e55a0e312e6c7ab
MD5 5aa7721e1a6d9d66beb324198d566263
BLAKE2b-256 6083ed6a4b5bcca426e59c18662b09e4e0f967a31e5fee415a3b88f114a7a435

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastanime-3.1.0-py3-none-any.whl:

Publisher: publish.yml on Benexl/FastAnime

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page