Metadata-Version: 2.4
Name: video2flow
Version: 0.3.1
Summary: Extract video frames as descriptive text flows for LLM consumption
Author-email: deepstrain <dev@massiron.com>
License: Proprietary
Project-URL: Homepage, https://github.com/massiron/video2flow
Project-URL: Repository, https://github.com/massiron/video2flow
Project-URL: Documentation, https://github.com/massiron/video2flow#readme
Keywords: video,frames,llm,vision,description
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: massiron>=1.0
Requires-Dist: opencv-python>=4.8
Requires-Dist: typer>=0.9
Requires-Dist: rich>=13.0
Requires-Dist: pillow>=10.0

# video2flow

**Extract video frames as descriptive text flows for LLM consumption.**

Claude, GPT-4o, Gemini and other multimodal models can see images but not
video. `video2flow` bridges the gap: extract frames → generate timestamped
descriptions → feed the text flow to any LLM.

## Installation

```bash
pip install video2flow
```

## Usage

```bash
# Extract frames from a video
video2flow extract video.mp4 -o frames/ --fps 1

# Quick description (without vision API)
video2flow describe video.mp4 --max-frames 10

# Full pipeline
video2flow pipeline video.mp4 -o video_flow/
```

## LLM Integration

Pass the output JSON to any LLM:

```python
import json
flow = json.loads(open("video_flow/flow.json").read())
prompt = flow["usage"]["example_prompt"]
# Then: response = llm.invoke(prompt)
```

For detailed vision understanding, send image files directly to a
multimodal model alongside the flow transcript.

## License

MIT
