🔍 Hunch
A fast, offline media filename parser for Rust — extract title, year, season, episode, codec, language, and 49 properties from messy filenames.
A Rust rewrite of Python's guessit. Pure, deterministic, single-binary, linear-time regex only (ReDoS-immune).
Quick Start
CLI
{
}
For batch parsing across a media library and cross-file context for ambiguous CJK / anime filenames, see the User Manual.
Library
use hunch;
let result = hunch;
assert_eq!;
assert_eq!;
assert_eq!;
Documentation
📖 Full documentation site: https://lijunzh.github.io/hunch
| Document | What's there |
|---|---|
| User Manual | Install, CLI, library API, all 49 properties, batch parsing, cross-file context |
| guessit Compatibility | Pass rates per property, methodology |
| Known Limitations | Edge cases that remain difficult to handle |
| Migrating to v2.0.0 | Breaking-change guide |
| Design | Principles, architecture, key decisions |
| API Reference | Full Rust API docs |
| Changelog | Version history |
Real-world accuracy
Validated against guessit's upstream test suite — see the
compatibility report
for the live pass rate, regenerated from
cargo test -- --ignored guessit_compat so it can't drift.
In one real-world library audit of 7,838 files, hunch achieved 99.8% accuracy across a mixed Anime / English / Japanese / Kids collection. The remaining edge cases are documented under Known Limitations.
Contributing
See CONTRIBUTING.md. The easiest contribution is reporting a failed parse.