#audio-metadata #metadata #mp4 #parser #m4a

mp4ameta

一个用于读取和写入iTunes风格的MPEG-4音频元数据的库

22个版本 (10个重大更新)

0.11.0 2021年6月15日
0.10.1 2021年4月25日
0.9.1 2021年2月14日
0.7.3 2020年12月13日
0.1.0 2020年3月26日

#860解析器实现 中排名

Download history 747/week @ 2024-03-13 603/week @ 2024-03-20 412/week @ 2024-03-27 453/week @ 2024-04-03 737/week @ 2024-04-10 553/week @ 2024-04-17 570/week @ 2024-04-24 624/week @ 2024-05-01 676/week @ 2024-05-08 566/week @ 2024-05-15 611/week @ 2024-05-22 482/week @ 2024-05-29 706/week @ 2024-06-05 718/week @ 2024-06-12 531/week @ 2024-06-19 576/week @ 2024-06-26

每月下载量 2,590次
用于 21 包(8个直接使用)

MIT/Apache

685KB
3K SLoC

rust-mp4ameta

CI Crate Documentation License LOC

一个用于读取和写入iTunes风格的MPEG-4音频元数据的库。这种类型的元数据通常位于m4am4b文件中,但基本上任何mp4容器都支持它。

示例

简单方法

let mut tag = mp4ameta::Tag::read_from_path("music.m4a").unwrap();

println!("{}", tag.artist().unwrap());

tag.set_artist("artist");
tag.write_to_path("music.m4a").unwrap();

复杂方法

use mp4ameta::{Data, Fourcc, Tag};

let mut tag = Tag::read_from_path("music.m4a").unwrap();
let artist_ident = Fourcc(*b"\xa9ART");

let artist = tag.string(&artist_ident).next().unwrap();
println!("{}", artist);

tag.set_data(artist_ident, Data::Utf8("artist".to_owned()));
tag.write_to_path("music.m4a").unwrap();

使用自由标识符

use mp4ameta::{Data, FreeformIdent, Tag};

let mut tag = Tag::read_from_path("music.m4a").unwrap();
let isrc_ident = FreeformIdent::new("com.apple.iTunes", "ISRC");

let isrc = tag.string(&isrc_ident).next().unwrap();
println!("{}", isrc);

tag.set_data(isrc_ident, Data::Utf8("isrc".to_owned()));
tag.write_to_path("music.m4a").unwrap();

测试

__运行所有测试:__
cargotest

__在您的收藏夹上测试此库:__
cargotest ----nocapture collection<路径>

依赖关系