Crate sublercli[−][src]
sublercli-rs - a simple commandline interface for the sublerCLI tool on mac OS to write metadata to media files
Installation
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/SublerCliYou can check your installtion path with
brew cask info sublercliIf the SublerCLI installation destination deviates from default, you can overwerite the path by setting the
SUBLER_CLI_PATH` environment variable to the valid destination.
Atoms
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();
Tagging
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(()) });
Structs
Atom |
Represents a Metadata Media Atom |
Atoms | |
Builder | |
Subler |
Enums
MediaKind |
Represents the type of media for a input file |