The vimeta package

[Tags:bsd2, library, program]

Vimeta is a tool to fetch video metadata from the interwebs and update video files using a tagging tool.


[Skip to Readme]

Properties

Versions 0.2.0.0, 0.2.1.0, 0.2.2.0, 0.2.3.0
Change log CHANGES.md
Dependencies aeson (>=0.8 && <1.2), base (>=4.6 && <5.0), byline (>=0.1 && <0.3), bytestring (==0.10.*), containers (==0.5.*), directory (>=1.2 && <1.4), either (>=4.3 && <4.5), filepath (>=1.3 && <1.5), http-client (>=0.4.30 && <0.6), http-client-tls (>=0.2.2 && <0.4), http-types (>=0.8 && <0.10), mtl (>=2.1 && <2.3), old-locale (==1.0.*), optparse-applicative (>=0.11 && <0.14), parsec (==3.1.*), process (>=1.1 && <1.7), temporary (>=1.1 && <1.3), text (>=0.11 && <1.3), themoviedb (==1.1.*), time (>=1.2 && <1.9), time-locale-compat (==0.1.*), transformers (>=0.3 && <0.6), vimeta, xdg-basedir (==0.2.*), yaml (==0.8.*) [details]
License BSD2
Copyright Copyright (c) 2013-2017 Peter Jones
Author Peter Jones <pjones@devalot.com>
Maintainer Peter Jones <pjones@devalot.com>
Category Video
Home page http://github.com/pjones/vimeta
Bug tracker http://github.com/pjones/vimeta/issues
Source repository head: git clone git://github.com/pjones/vimeta.git
Uploaded Sun Mar 19 21:19:45 UTC 2017 by PeterJones
Distributions NixOS:0.2.3.0
Downloads 313 total (15 in the last 30 days)
Votes
0 []
Status Docs available [build log]
Last success reported on 2017-03-19 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Flags

NameDescriptionDefaultType
maintainerEnable settings for the package maintainer.DisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Readme for vimeta

Readme for vimeta-0.2.3.0

% VIMETA(1) Vimeta User Manual % Peter J. Jones % May 19, 2015

NAME

vimeta - frontend for video metadata tagging tools

Build Status

SYNOPSIS

vimeta --version

vimeta config [options]

vimeta movie [options] FILE

vimeta tv [options] [FILE]...

DESCRIPTION

Vimeta is a tool to fetch video metadata from the interwebs and update video files using a tagging tool.

TheMovieDB is used as the source for movie and TV series metadata. This means that an API key for TheMovieDB is required in order to use Vimeta. Sign up for an account at TheMovieDB.com and create an API key. See the config command for details on how to create a configuration file that includes your API key.

AtomicParsley is the default tagging tool used to update the metadata in a video file. Any video tagging utility can be used as long as it can be called from the command line. See the CONFIGURATION section for details on specifying a tagging tool to Vimeta. If you decide to use AtomicParsley it's highly recommended that you use the fork maintained by wez at https://bitbucket.org/wez/atomicparsley.

OPTIONS

The following command-line options are available to all of the commands listed in the COMMANDS section.

--verbose : Enable verbose output

-d, --dry-run : Don't actually do anything. Instead, print out what would be done. Automatically enables --verbose.

COMMANDS

vimeta --version

Display the Vimeta version number and then exit.

vimeta config [options]

Create a configuration file for Vimeta.

-k, --key=STRING : The API key for TheMovieDB to record into the configuration file.

vimeta movie [options] FILE

Look up movie metadata from TheMovieDB and tag a video file. Vimeta will interactively prompt for a movie name and provide a list of matching movies to choose from.

-i, --id=ID : Avoid interactive prompting by supplying a movie ID assigned by TheMovieDB.com.

vimeta tv [options] [FILE]...

Look up TV series metadata from TheMovieDB and tag one or more video files. Episode video files can be given on the command line or specified using a mapping file. See MAPPING FILES for more information about creating a file that maps episodes to video files.

Vimeta will interactively prompt for a search string and then list matching TV series. The starting season number and starting episode number should be given on the command line or they will default to 1. Each video file will be assigned the next episode number in the series. Vimeta is smart enough to switch to the next season after the last episode of the specified season.

-s, --season=NUMBER : Specify the starting season number to tag into the episode files. The season number will be incremented after the last episode of a season is tagged. If the season number isn't specified it will default to 1.

-e, --episode=NUMBER : Specify the staring episode number. If not specified it defaults to 1.

-m, --map=FILE : Use FILE as a mapping file. The mapping file should contain two columns, the first specifies the season and episode numbers and the second the file name for the episode video file. See the MAPPING FILE section for more details about mapping files.

-i, --id=ID : Avoid interactive prompting by supplying a TV series ID assigned by TheMovieDB.com.

CONFIGURATION

The Vimeta configuration file is a YAML file containing a few keys. You should begin by creating a default configuration file using the config command.

Description of Keys

tmdb_key : The API key issued by TheMovieDB.

cmd_movie : A format string used to execute a tagging tool for movie files. See FORMAT STRINGS for more information.

cmd_tv : A format string used to execute a tagging tool for TV episode files. See FORMAT STRINGS for more information.

FORMAT STRINGS

Description

Vimeta uses format strings to specify the command to run in order to tag video files, and the arguments needed to pass metadata to the tagging utility. These format strings are similar to those used with the printf family of functions and utilities.

In format stings, the percent character (%), followed by a single character, is replaced by one of the metadata attributes. Percent characters are removed and do not appear in the output string. Therefore, if you need a literal percent character to appear in the output string, you should use two percent characters (%%).

Format strings in Vimeta can also contain conditional parts. These are introduced with the %{ format specifier, which must be terminated with the %} format specifier. The text and any format specifiers enclosed inside the opening and closing brackets are only injected into the output string if all of the enclosed format specifiers have valid values.

As an example, not all movies have release dates. Supplying a command-line flag along with a blank release date to a tagging tool will most likely cause a problem. It would be best to avoid using the command-line flag altogether. The following example does just this:

somecommand %{ --release-date %Y %}

Here, %Y stands in for the full release date. If it's not present in the metadata then none of the text between the brackets will be injected into the output string. If multiple format specifiers are used, all of them have to be present in the metadata for any of the text between the brackets to be included in the output text.

Format Specifiers for Movies

The following format specifiers are available for tagging movie files. Not all specifiers are guaranteed to be present. Consider using conditional specifiers.

%Y : Full release date in XML schema notation.

%a : Path to a temporary file containing a movie poster image file.

%d : Movie description (summary text, truncated to 255 characters).

%f : Path to the video file to be tagged.

%g : Name of first listed genre.

%t : Movie title.

%y : Release year.

Format Specifiers for Episodes

The following format specifiers are available for tagging TV episode files. Not all specifiers are guaranteed to be present. Consider using conditional specifiers.

%Y : Full air date in XML schema notation.

%a : Path to a temporary file containing a season poster image file.

%d : Episode description (summary text, truncated to 255 characters).

%e : Episode number.

%f : Path to the video file to be tagged.

%n : Name of the TV series.

%s : Season number.

%t : Episode name.

%y : Year that the episode aired.

MAPPING FILES

Vimeta can use mapping files that specify hints about metadata and which video files to tag. For example, the tv command can use mapping files to link video files to specific season and episode numbers.

Mapping files are plain text files that contain two columns separated by whitespace. Comments and blank lines are ignored. Comments begin with a pound sign (#) and continue to the end of the line.

The first column should contain information relevant to the command using the mapping file. For example, the tv command expects the first column to specify the season and episode number.

The second column is always a file name. If the file doesn't exist and the file name lacks a file extension, .m4v will be added to the file name automatically.

Example mapping file for the tv command:

# This is a comment.
S2E3 track03.m4v  # Season 2, Episode 3
S3E1 track01.m4v  # Season 3, Episode 1

EXAMPLES

Tag Several Episode Files

vimeta tv -s 3 -e 10 file01.m4v file02.m4v

With this command, Vimeta will prompt for the name of the TV series and then search TheMovieDB. It will then generate a menu where the correct TV series can be chosen. Both files will be tagged as belonging to season 3. The first file is episode 10 and the second file is episode 11. (For more control over how season and episode numbers are assigned to files, see the section on MAPPING FILES.)