1个不稳定版本
使用旧的Rust 2015
0.1.1 | 2018年8月5日 |
---|
#129 in #media
17KB
301 行
sublercli-rs
一个简单的SublerCLI工具命令行界面,用于在mac OS上向媒体文件写入元数据
安装
需要额外安装SublerCLI。使用homebrew安装:brew cask install sublercli
默认情况下,sublercli-rs
假定在/usr/local/bin/SublerCli
下安装了homebrew
。您可以使用brew cask info sublercli
来检查您的安装路径。如果SublerCLI的安装目标与默认值不同,您可以通过将环境变量SUBLER_CLI_PATH
设置为有效目标来覆盖路径。
原子
为了存储元数据,使用原子。原子有一个特定的名称和它存储的值。Atom
结构体模仿了这种行为。存在一组预定义的有效原子。要获取所有有效元数据原子标签名称的列表
use sublercli::Atoms;
let valid_tags: Vec<&str> = Atoms::metadata_tags();
对预定义的已知原子的支持是单独实现的。Atoms
函数作为一个包装器来存储一组单个Atom
值,并用于创建类似以下的原子
use sublercli::*;
let atoms = Atoms::new()
.add("Cast", "John Doe")
.genre("Foo,Bar")
.artist("Foo Artist")
.title("Foo Bar Title")
.release_date("2018")
.build();
标签
要调用SublerCLI进程:如果没有提供目标路径,则目标路径是现有文件名后缀,从0开始:demo.mp4 -> demo.0.mp4
use sublercli::*;
let file = "demo.mp4";
let subler = Subler::new(file, Atoms::new().title("Foo Bar Title").build())
// by default, mediakind is already set to `Movie`
.media_kind(Some(MediaKind::Movie))
// set an optional destination path
.dest("dest/path")
// by default the optimization flag is set to true
.optimize(false)
// execute prcess in sync,
// alternativly spawn the process: `.spawn_tag()`
.tag()
.and_then(|x| {
println!("stdout: {}", String::from_utf8_lossy(&x.stdout));
Ok(())
});