sublercli-rs

Build Status Released API docs

A simple commandline interface for the sublerCLI tool on mac OSto 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/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.

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:

rust 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:

rust 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

``rust use sublercli::*; let file = "demo.mp4"; let subler = Subler::new(file, Atoms::new().title("Foo Bar Title").build()) // by default, mediakind is already set toMovie` .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(())
});

```