Metadata-Version: 2.5
Name: hyperstudy-perception
Version: 0.1.2
Summary: Video perception pipeline: shots, speech, faces and captions from a video, as a versioned track bundle, run locally, on cloud GPUs or lab servers
Project-URL: Homepage, https://github.com/hyperstudyio/hyperstudy-perception
Project-URL: Changelog, https://github.com/hyperstudyio/hyperstudy-perception/releases
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: annotated-types==0.8.0
Requires-Dist: attrs==26.1.0
Requires-Dist: av==16.1.0
Requires-Dist: cffi==2.1.1; platform_python_implementation != 'PyPy' and sys_platform == 'linux'
Requires-Dist: cryptography==50.0.2; sys_platform == 'linux'
Requires-Dist: jaraco-classes==3.4.0
Requires-Dist: jaraco-context==6.1.2
Requires-Dist: jaraco-functools==4.6.0
Requires-Dist: jeepney==0.9.0; sys_platform == 'linux'
Requires-Dist: jsonschema-specifications==2025.9.1
Requires-Dist: jsonschema==4.26.0
Requires-Dist: keyring==25.7.0
Requires-Dist: more-itertools==11.2.1
Requires-Dist: pycparser==3.12; implementation_name != 'PyPy' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'
Requires-Dist: pydantic-core==2.50.1
Requires-Dist: pydantic==2.14.1
Requires-Dist: pywin32-ctypes==0.2.3; sys_platform == 'win32'
Requires-Dist: pyyaml==6.0.3
Requires-Dist: referencing==0.37.0
Requires-Dist: rpds-py==2026.9.1
Requires-Dist: secretstorage==3.5.0; sys_platform == 'linux'
Requires-Dist: typing-extensions==4.16.0
Requires-Dist: typing-inspection==0.4.4
Description-Content-Type: text/markdown

# hyperstudy-perception

Turn a video into a time-indexed **perception track**: shots and keyframes, a word-timed transcript, face tracks
clustered into people, and shot captions. The result is a versioned track bundle that the
[HyperStudy Annotator](https://github.com/hyperstudyio/hyperstudy-annotator) imports for review and correction.

```sh
uv tool install hyperstudy-perception
perception doctor                       # what can run on this machine
perception graphs                       # the graphs it can run, by name
perception run full.yaml --input video=clip.mp4 --only asr,faces --allow-downloads
```

Each step runs in its own locked environment, made by [uv](https://docs.astral.sh/uv/) the first time it is needed
(`perception setup` makes them all ahead of time), under `~/.hyperstudy-perception`. Nothing else is needed on the
machine: video is read with PyAV, whose wheels carry FFmpeg.

Model weights are downloaded at run time under their own licences; several (py-feat, ArcFace) are non-commercial, and
each bundle records the most restrictive licence among its layers.
