Crates.io | sublercli |
lib.rs | sublercli |
version | 0.1.1 |
source | src |
created_at | 2018-08-05 14:53:55.527226 |
updated_at | 2018-08-05 14:53:55.527226 |
description | Commandline Interface for the SublerCLI Tool. Only mac OS. |
homepage | |
repository | https://github.com/MattsSe/sublercli-rs |
max_upload_size | |
id | 77622 |
size | 37,171 |
A simple commandline interface for the sublerCLI tool on mac OSto write metadata to media files
Requires an additional SublerCLI Installation.
To install with homebrew: brew cask install sublercli
By default sublercli-rs
assumes a homebrew
installation under /usr/local/bin/SublerCli
You can check your installtion path with brew cask info sublercli
If the SublerCLI installation destination deviates from default, you can overwerite the path
by setting the SUBLER_CLI_PATH
environment variable to the valid destination.
To store metadata, Atoms are used. An Atom has a specifc name and the value it stores.
The Atom
struct mimics this behavior. There is a predefined set of valid atoms.
To obtain a list of al valid metadata atom tag names:
use sublercli::Atoms;
let valid_tags: Vec<&str> = Atoms::metadata_tags();
Support for the predefined set of known atoms is individually implemented. Atoms
functions as a wrapper to store a set of single Atom
values and is used to create Atoms like:
use sublercli::*;
let atoms = Atoms::new()
.add("Cast", "John Doe")
.genre("Foo,Bar")
.artist("Foo Artist")
.title("Foo Bar Title")
.release_date("2018")
.build();
To invoke the SublerCLI process:
If no dest path is supplied then the destination path is the existing file name suffixed, starting from 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(())
});