https://github.com/freedy237/freeflix-cli
Watch movies, series and anime from your terminal — multi-language, multi-source, no browser. A hardened fork of autoflix-cli.
https://github.com/freedy237/freeflix-cli
anilist anime anime-sama aria2 cli coflix french french-stream goldenanime haruna hls m3u8 mpv nyaa python streaming terminal vf vostfr yt-dlp
Last synced: about 2 months ago
JSON representation
Watch movies, series and anime from your terminal — multi-language, multi-source, no browser. A hardened fork of autoflix-cli.
- Host: GitHub
- URL: https://github.com/freedy237/freeflix-cli
- Owner: freedy237
- License: gpl-3.0
- Created: 2026-05-28T05:05:04.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-28T10:38:16.000Z (about 2 months ago)
- Last Synced: 2026-05-28T12:25:10.105Z (about 2 months ago)
- Topics: anilist, anime, anime-sama, aria2, cli, coflix, french, french-stream, goldenanime, haruna, hls, m3u8, mpv, nyaa, python, streaming, terminal, vf, vostfr, yt-dlp
- Language: Python
- Homepage: https://github.com/freedy237/freeflix-cli
- Size: 192 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FreeFlix CLI 🍿
[](https://pypi.org/project/freeflix-cli/)
[](https://pypi.org/project/freeflix-cli/)
[](LICENSE)
> Watch movies, series and anime from your terminal — multi-language, multi-source, no browser, no ads.
**FreeFlix** is a hardened, feature-extended fork of [autoflix-cli](https://github.com/PaulExplorer/autoflix-cli) by PaulExplorer. All upstream functionality is preserved ; on top of that, FreeFlix ships :
- A complete **download backend** (yt-dlp for HLS, aria2c for direct mp4, with quality selection 480p/720p/1080p) ;
- **Batch "download whole season"** ;
- **Position-in-episode resume** (mpv lua hook + tracker) ;
- **AniList sync** on watch / mark-as-watched ;
- **OpenSubtitles fallback** when a source has no subtitle ;
- **Parallel multi-episode downloads** (1–4 workers) ;
- **Daily new-episode notifications** via systemd timer + libnotify ;
- A **Nyaa torrent provider** (downloads via aria2 BitTorrent) ;
- A **Local Downloads browser** in the home menu ;
- **Anime4K Mode A_VL** shaders pre-bundled (toggle CTRL+1 / CTRL+0) ;
- **French localisation** of the whole UI (auto-switched based on language pref) ;
- Multi-mirror portal fallback + `website_origin` caching (24 h TTL) ;
- Multiple **bug fixes** : 403 on `/catalogue/?search=` (animes-sama.fr refactor), double-slash legacy URLs in history, settings-menu exit loop, ffmpeg infinite-reconnect at byte 1506, Videasy/Vidlink Referer not propagated, history resume silent-failure, and more.
> ⚠️ FreeFlix is a community fork. The original project is **autoflix-cli** by PaulExplorer ; all credit goes to him for the underlying scraping work and architecture. FreeFlix exists only to consolidate the fixes and features I personally needed.
---
## ✨ What FreeFlix gives you
| | Feature |
|---|---|
| 🎬 | Stream movies, series and anime in **VF / VOSTFR / VA / VJ / VKR / VCN** |
| 📥 | Download single episodes or **entire seasons** to `~/Downloads/FreeFlix/` |
| ▶️ | **Resume at the exact second** you left off (mpv only) |
| 🔄 | **AniList sync** : mark-as-watched on AniList automatically |
| 📝 | **OpenSubtitles** fallback when a source has no subs |
| ⚡ | **Parallel downloads** (up to 4 concurrent episodes) |
| 🔔 | **Daily notifications** when new episodes drop |
| 🌊 | **Nyaa.si torrents** (high-quality anime releases) |
| 🌐 | **6 streaming sources** : Anime-Sama, GoldenAnime, French-Manga, GoldenMS, French-Stream, Nyaa |
| 🎮 | **4 player backends** : mpv, VLC, browser, download-only |
| 🇫🇷 | **French UI** : the whole CLI is in French when language is set to FR |
| 🛡 | **Anti-crash mpv config** : ytdl-hook off, gpu renderer, no infinite reconnect |
| 🎨 | **Anime4K** pre-bundled with runtime toggle CTRL+1 / CTRL+0 |
---
## 📦 Installation
### 🚀 Quickest — one command from PyPI
If you already have the system deps (`mpv`, `yt-dlp`, `ffmpeg`, `aria2`, `libnotify`) :
```bash
# Recommended — uv installs `freeflix` in an isolated venv and adds it to PATH
uv tool install freeflix-cli
# Or with pipx
pipx install freeflix-cli
# Or plain pip (user install)
pip install --user freeflix-cli
```
Then :
```bash
freeflix
```
If you need the system deps installed for you (mpv, yt-dlp, ffmpeg, aria2, libnotify) and the Anime4K shaders auto-fetched, use the OS-specific installer script below — it's the same install + extras.
### Linux (Fedora, Debian/Ubuntu, Arch, openSUSE, Alpine)
```bash
git clone https://github.com/freedy237/freeflix-cli.git
cd freeflix-cli
chmod +x scripts/install.sh
./scripts/install.sh
```
The script detects your distro and installs : `mpv`, `yt-dlp`, `ffmpeg`, `aria2`, `libnotify`, Python deps, then the `freeflix` command via `uv` (preferred) or `pipx`.
### macOS
```bash
git clone https://github.com/freedy237/freeflix-cli.git
cd freeflix-cli
chmod +x scripts/install-mac.sh
./scripts/install-mac.sh
```
### Windows (10/11)
Open PowerShell as a regular user :
```powershell
git clone https://github.com/freedy237/freeflix-cli.git
cd freeflix-cli
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1
```
Uses `winget` for system deps. `mpv.net` is installed (the maintained Windows port of mpv).
### From source (developer mode)
```bash
git clone https://github.com/freedy237/freeflix-cli.git
cd freeflix-cli
# Editable install — changes to source are picked up immediately
pip install --user -e .
# OR
uv pip install -e .
```
---
## 🚀 Usage
```bash
freeflix
```
That's it. The menu walks you through everything.
### Common keyboard shortcuts in mpv
| Key | Action |
|---|---|
| **CTRL + 1** | Enable Anime4K Mode A_VL |
| **CTRL + 0** | Disable Anime4K |
| **`#`** | Cycle audio track |
| **`j`** | Cycle subtitle track |
| **`_`** (Shift + `-`) | Cycle video track |
| **ALT + V** | Cycle video track (alias) |
| **ALT + 1 / 2 / 3** | Force video track #1 / #2 / #3 |
| **ALT + T** | Show track diagnostics |
| **`i`** | Toggle mpv stats overlay |
### Hybrid laptops (Intel/AMD iGPU + Nvidia dGPU)
If you're on a Linux Optimus laptop, FreeFlix detects the dGPU (Nvidia via `nvidia-smi`, AMD via `lspci`) and routes mpv onto it automatically (no FPS drop with Anime4K). To also have this when launching `mpv` standalone (outside FreeFlix), copy the wrapper :
```bash
cp scripts/wrappers/mpv ~/.local/bin/mpv
chmod +x ~/.local/bin/mpv
```
(Make sure `~/.local/bin` is in your `$PATH` before `/usr/bin`.)
The Linux `install.sh` does this for you when it detects an Nvidia card.
### Settings menu
`freeflix → ⚙ Settings (AniList)` exposes :
- **AniList Token** — paste the OAuth token from anilist.co to enable sync ;
- **Language** — switches the UI (FR / EN) and default subtitle language ;
- **Default Player** — mpv / vlc / browser / download / manual ;
- **Download Quality** — auto / 1080 / 720 / 480 ;
- **OpenSubtitles API Key** — register free at [opensubtitles.com/en/consumers](https://www.opensubtitles.com/en/consumers) ;
- **Parallel Downloads** — number of concurrent batch workers (1–4) ;
- **Daily New-Episode Notifications** — enables a `systemd --user` timer that scans Anime-Sama history once a day.
---
## 🛠 What got fixed vs. upstream autoflix-cli
| Bug | Fix |
|---|---|
| `403` on anime-sama portal after `anime-sama.pw` shutdown | Override to `animes-sama.fr` + local `source_portal.jsonc` |
| `404` on `/catalogue/?search=…` (new site rejects trailing slash) | Strip the slash + URL-encode the query |
| Search results parser broken (no more `
`) | Fall back to `