Metadata-Version: 2.4
Name: plansi
Version: 0.3.0
Summary: plays videos as ansi
Author-email: Gareth Davidson <gaz@bitplane.net>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: bittty>=0.1.4,<0.2
Requires-Dist: chafa.py~=1.2
Requires-Dist: av~=15.0
Requires-Dist: Pillow~=11.3
Requires-Dist: pre-commit ; extra == "dev"
Requires-Dist: pytest ; extra == "dev"
Requires-Dist: coverage ; extra == "dev"
Requires-Dist: pytest-cov ; extra == "dev"
Requires-Dist: build ; extra == "dev"
Requires-Dist: twine ; extra == "dev"
Requires-Dist: ruff ; extra == "dev"
Requires-Dist: pydoc-markdown ; extra == "dev"
Provides-Extra: dev

# 👾 plansi

pipeline for text; a video player, cast quantizer, saver of scrollbacks

## ▶ Usage

```bash
# play to terminal
uvx plansi video.mp4

# write to asciinema file
uvx plansi video.mp4 video.cast

# with options
uvx plansi video.mp4 --fps=15 --threshold=10 --debug
uvx plansi video.mp4 --cache-position --no-cache-style
```

## TODO

### 🗑️ refactor

- [ ] write some integration tests
- [ ] performance tuning
- [ ] write some docs

### 🌐 Streaming & Input Sources
- [ ] **yt-dlp integration**: Auto-detect `http://`/`https://` URLs and use yt-dlp API to get direct streaming URLs
- [ ] **Fallback strategy**: Try ffmpeg first, fall back to yt-dlp if that fails
- [ ] **Webcam support**: Add `--camera` flag to treat input as webcam device
  - [ ] Linux: `/dev/video0` with v4l2
  - [ ] Windows: DirectShow device enumeration
  - [ ] macOS: AVFoundation device support

