Media metadata extraction for Rust — one API, every format MediaInfo understands.
- Idiomatic API — small, ergonomic surface over the MediaInfo C library
- Flexible inputs — parse from file paths,
Readsources, in-memory buffers, or remote URLs - Structured tracks — typed
MediaInfoandTrackmodels with insertion-ordered attributes - Multiple output formats — text, JSON, XML, or
%-delimited templates straight from the library - Pre-parsed XML — build a
MediaInfofrom an existing XML payload with no shared library required - Bundled library — optional download of the MediaInfo shared library at build time
- Reusable context —
MediaInfoContextloads the shared library once and reuses it across many parse calls for batch workloads - Configurable parsing — parse speed, completion level, cover art, custom library options, encoding error policy
- Typed errors — every failure mode of the underlying library surfaced through
MediaInfoError - Thread-safe — internal serialization keeps the library's global option store deterministic across threads
[dependencies]
rsmediainfo = "0.2.0"
# Use a system-installed MediaInfo library instead of the bundled one:
# rsmediainfo = { version = "0.2.0", default-features = false }| Feature | Description |
|---|---|
bundled |
Download the MediaInfo shared library for the target platform during the build (enabled by default) |
See the
examples/directory for parsing from paths, readers, URLs, raw output, pre-generated XML, and batch parsing through a reusableMediaInfoContext.
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in rsmediainfo by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.