zantetsu-core
Heuristic anime metadata extraction and normalization engine.
Part of the zantetsu crate family.
What it does
zantetsu-core parses anime release filenames into structured metadata — title,
episode number, group tag, resolution, codecs, source, and more — using a
fast regex-based heuristic engine. No machine learning, no network calls, no
runtime downloads.
Install
[]
= "0.2"
Requires Rust 1.85+.
Quick start
use HeuristicParser;
let parser = new.unwrap;
let result = parser
.parse
.unwrap;
assert_eq!;
assert_eq!;
println!; // Some(Resolution::P1080)
API overview
| Item | Description |
|---|---|
HeuristicParser |
Main parser — call HeuristicParser::new() then .parse(filename) |
Parser |
Unified wrapper around HeuristicParser with ParserConfig support |
ParseResult |
Structured parse output |
EpisodeSpec |
Single(u32), Range(u32, u32), Special(f32) |
Resolution |
P480, P720, P1080, P2160, P4320 |
VideoCodec |
H264, H265, AV1, VP9, … |
AudioCodec |
AAC, AC3, FLAC, Opus, … |
MediaSource |
BluRay, WebDL, HDTV, … |
QualityProfile / QualityScores |
Score a ParseResult against a configurable quality profile |
What is parsed
Given a filename like:
[Erai-raws] Frieren - Beyond Journey's End - 01 [1080p][HEVC][AAC][Multi-Sub].mkv
zantetsu-core extracts:
- Group:
Erai-raws - Title:
Frieren - Beyond Journey's End - Episode:
Single(1) - Resolution:
1080p - Video codec:
H265 (HEVC) - Audio codec:
AAC - Confidence score:
0.0–1.0
Error handling
All public functions return Result<T, ZantetsuError>. Errors are typed and
implement std::error::Error via thiserror.
use ZantetsuError;
match parser.parse
Related crates
| Crate | Purpose |
|---|---|
zantetsu |
Unified façade — start here |
zantetsu-vecdb |
Canonical title matching |
License
MIT