A library for reading and writing iTunes style MPEG-4 audio metadata.
Most commonly this kind of metadata is found inside m4a
or m4b
files but basically any mp4
container supports it.
```rust let mut tag = mp4ameta::Tag::readfrompath("music.m4a").unwrap();
println!("{}", tag.artist().unwrap());
tag.setartist("artist"); tag.writeto_path("music.m4a").unwrap(); ```
```rust use mp4ameta::{Data, Fourcc, Tag};
let mut tag = Tag::readfrompath("music.m4a").unwrap(); let artist_ident = Fourcc(*b"\xa9ART");
let artist = tag.string(&artist_ident).next().unwrap(); println!("{}", artist);
tag.setdata(artistident, Data::Utf8("artist".toowned())); tag.writeto_path("music.m4a").unwrap(); ```
```rust use mp4ameta::{Data, FreeformIdent, Tag};
let mut tag = Tag::readfrompath("music.m4a").unwrap(); let isrc_ident = FreeformIdent::new("com.apple.iTunes", "ISRC");
let isrc = tag.string(&isrc_ident).next().unwrap(); println!("{}", isrc);
tag.setdata(isrcident, Data::Utf8("isrc".toowned())); tag.writeto_path("music.m4a").unwrap(); ```
Run all tests:
cargo test
Test this library on your collection:
cargo test -- --nocapture collection <path>