Metadata-Version: 2.4
Name: animepahe-dl-tmux
Version: 1.3.0
Summary: AnimePahe downloader for Termux — CLI-only, Python HLS segment downloader
Author: animepahe-dl-tmux contributors
License: MIT
Project-URL: Homepage, https://github.com/animepahe-dl-tmux/animepahe-dl-tmux
Project-URL: Repository, https://github.com/animepahe-dl-tmux/animepahe-dl-tmux
Keywords: animepahe,anime,downloader,termux,hls,cli
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Environment :: Console
Classifier: Topic :: Multimedia :: Video
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.28.0
Requires-Dist: beautifulsoup4>=4.11.0
Requires-Dist: loguru>=0.6.0
Requires-Dist: tqdm>=4.64.0
Requires-Dist: pycryptodome>=3.15.0
Requires-Dist: urllib3>=1.26.0
Requires-Dist: rich>=12.0.0
Requires-Dist: questionary>=2.0.0
Requires-Dist: pyfzf>=0.3.1

# animepahe-dl-tmux

A CLI-only AnimePahe downloader for Termux (and Linux) — no GUI, no PyQt6, pure Python HLS segment downloader.

## Install

```bash
pip install animepahe-dl-tmux
```

## Requirements

```bash
pkg install ffmpeg nodejs fzf   # Termux
# or
sudo apt install ffmpeg nodejs fzf   # Linux
```

## Usage

```bash
# Search and download
dl -n "Demon Slayer"

# Download specific episodes
dl -n "Spy x Family" -e 1-12

# Best quality, English audio
dl -n "Bleach" -q best -a eng

# Stream directly (requires mpv)
dl -n "One Piece" --play

# Update anime list cache
dl --update-cache
```

## Options

| Flag | Description |
|------|-------------|
| `-n NAME` | Anime name to search |
| `-e EPISODES` | Episodes to download (e.g. `1,3,5-10`) |
| `-q QUALITY` | Quality: `best`, `1080`, `720`, `480`, `360` |
| `-a AUDIO` | Audio: `jpn` (default) or `eng` |
| `-t THREADS` | Download threads per episode (default: 50) |
| `-c N` | Concurrent episode downloads (default: 2) |
| `--play` | Stream directly without downloading |
| `--update-cache` | Refresh the local anime list cache |
| `--updates` | Check for new episodes of your list |
| `--set KEY=VALUE` | Save a config value |

## Changelog

### 1.3.0
- **Auto-resume interrupted downloads** — if Termux is closed or the connection drops mid-download, the next run automatically detects the saved playlist + partial segments and resumes from where it left off. No re-searching, no re-selecting.
- **Fixed episode range selection** — range/comma selections (e.g. `5-10`) now filter against the actual set of available episode numbers, not just a max count. Fixes cases where certain episodes were silently skipped.
- **Shows available episodes** — before asking which episodes to download, now displays the full list as compact ranges (e.g. `1-12, 14, 16-24`) plus separate "already downloaded" and "not yet downloaded" lines.
- Added `'all'` as a valid episode selection shorthand.

### 1.2.0
- **Fixed 403 errors from kwik.cx** — corrected the `Referer` header sent to kwik.cx embed pages. Previously the package used `kwik.cx` as its own referer, which kwik.cx rejects. Now correctly sends the animepahe domain as the referer.
- Updated User-Agent to Chrome 124
- Added `KWIK_REFERER` constant for cleaner header management
- `set_base_url()` now also updates `KWIK_REFERER`
- Added 24 unit tests covering the referer fix, retry logic, quality selection, and playlist parsing

### 1.1.0
- Initial public release

## License

MIT
