Caution
The use of this module under a different name on PyPI (or another source besides this GitHub) is not associated with this library. anisama streams from Anime-Sama, Voiranime, MyFluneo, AnimesUltra, French-Anime, AnimoFlix. We are not responsible for any misuse.
Welcome to anisama, a Python CLI to browse, watch, and download anime from multiple sources (VOSTFR/VF).
- Inspired by ani-cli, the original shell-based anime streaming tool.
- Scrapes 6 sources: Anime-Sama, Voiranime, MyFluneo, AnimesUltra, French-Anime, AnimoFlix.
- Interactive TUI built with Rich and Questionary.
- Connects to the anisama API for fast search and video resolution.
anisama/
├── src/ # CLI application
│ ├── __init__.py
│ ├── __main__.py
│ ├── core/ # Backend logic
│ │ ├── config.py # Constants, headers, domains
│ │ ├── cache.py # Catalog, settings, history
│ │ ├── scraper.py # Anime-Sama + Voiranime scraping
│ │ ├── resolver.py # Video URL extraction per host
│ │ └── search.py # Fuzzy search, scoring, dedup
│ ├── cli/ # CLI-specific code
│ │ ├── app.py # Entry point, click command
│ │ ├── display.py # Banner, colors, info panels
│ │ ├── player.py # Player detection, play/download
│ │ ├── picker.py # Selection menus
│ │ ├── mirror.py # Speed tests, mirror resolution
│ │ ├── install.py # yt-dlp/ffmpeg install guides
│ │ ├── settings.py # Settings menu
│ │ └── workflow.py # Main workflow (search, play, download)
│ └── api/ # Remote API client
│ └── client.py # Wrapper for anisama API
└── data/ # Local catalog/settings storage
- Search anime by title with fuzzy matching (rapidfuzz) across 6 sources
- Multi-source merge: Anime-Sama, Voiranime, MyFluneo, AnimesUltra, French-Anime, AnimoFlix
- Intelligent dedup: season/lang variants grouped under one result
- Smart search: exact match shows only relevant results, broad queries show variants
- Browse seasons (VOSTFR / VF)
- Stream episodes in your preferred video player
- Download episodes directly
- Episode range support (1-5 or 1,3,5)
- Multiple video mirrors with automatic speed-tested fallback
- Player support: mpv, VLC, IINA, MoonPlayer, ImPlay
- API-first resolve with local fallback
- "Continue watching" history menu
- AniList-powered info panel (score, status, episodes, studios, tags, synopsis)
- Prefer MP4 sources over HLS/m3u8 for faster playback
- Automatic m3u8 → mp4 conversion for downloads
- More sources / languages
pip install anisamagit clone https://github.com/6sfy/anisama.git
cd anisama
pip install -e .anisamaanisama "demon slayer"
anisama "one piece" -e 1-5
anisama "attack on titan" -e 1,3,5 --lang vf
anisama "jujutsu kaisen" -d -e 1
anisama -p vlc "berserk"| Flag | Description |
|---|---|
--lang vostfr/vf |
Language filter |
--dub |
Shorthand for VF |
-d, --download |
Download instead of streaming |
-e, --episodes |
Episode range: 5, 1-5, or 1,3,5 |
-p, --player |
Player: mpv, vlc, iina, moonplayer, implay |
-U, --update |
Force refresh the anime catalog |
-q, --quiet |
Reduce output verbosity |
--version |
Show version |
-h, --help |
Show help |
anisama uses a centralized API for fast search and video resolution. The API server source is available at github.com/6sfy/anisama-api.
| Source | Language | Method |
|---|---|---|
| Anime-Sama | VOSTFR/VF | HTML scraping |
| Voiranime | VOSTFR/VF | HTML scraping |
| MyFluneo | VOSTFR | Playwright |
| AnimesUltra | VOSTFR/VF | Sitemap/HTML |
| French-Anime | VOSTFR/VF | HTML scraping |
| AnimoFlix | VOSTFR | HTML + Playwright |
- Before creating an issue, please ensure that it hasn't already been reported/suggested.
- See the contribution guide if you'd like to submit a PR.
- pystardust/ani-cli for the original idea and workflow
- Content sources: Anime-Sama, Voiranime, MyFluneo, AnimesUltra, French-Anime, AnimoFlix