Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including @pivotshare/avails with all npm packages installed. Try it out:

var avails = require("@pivotshare/avails")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

@pivotshare/avails v1.2.0

Tool for parsing and generating EMA Avails

avails -- tool for manipulating EMA Avails

SYNOPSES

avails convert [-i type] [-o type]

avails merge [-i type] [-o type] file1 [file2 ...]

avails diff [-i type] [-o type] file1 file2

avails ids [-i type] [-o type]

DESCRIPTION

avails convert simply transforms avails from one format to another.

avails merge will accept one of more avails in chronological order and merge them into a single avails. Merge will treat avails as state so repeated entities with the same Entry Types will be ignored. A Full Extract followed by a Full Delete will result in no entry for that entity.

avails diff will accept two avails, A and B, and return a new avails containing entries unique to B, without entries that exist in both A and B, and with entries that are only in A as Full Delete entries.

avails ids accepts avails and outputs a list of Alt IDs found.

The following options are available:

  • -i, --input __: Specify the format of input file: tsv, json, xlsx. Required. See FORMATS.

  • -o, --output __: Specify the format of output file: tsv, json, xlsx. Required. See FORMATS.

  • -h: Display help avails or subcommands.

See BACKGROUND for more information regarding the Avails standard and this tool.

FORMATS

avails conforms to EMA Avails spreadsheet template Version 1.6e2.

avails supports the following formats:

  • Tab-separated values (tsv)
  • Microsoft Excel (xlsx)
  • JSON (json)

The official Avails XML format is not supported.

The TSV format should not supply headers, as the Entity Type field is used to determine that particular line's schema.

The JSON format is an unofficial format used both for representing Avails, and as an intermediary data structure within avails. It has a 1-1 mapping with the columns of the Excel-based standard. Keys (columns) are in snake_case. Values are always strings. See schema for header values and test/mock for examples. Excel was chosen over the XML standard for modeling since most vendors prefer that format.

BACKGROUND

Content Availability Metadata, or avails, is an Entertainment industry term for information about the time, location and business rules relating to offering a media asset, e.g. a movie or a television show.

avails document the transition between states, e.g. Full Extract, Full Delete, not states themselves, however, by manipulating initial and subsequent avails we can recreate the expected state of content on a given platform. This is the technique utilized by the merge and diff subcommands, and third-party tools that generate initial avails.

It is recommended to persist submitted avails and use avails, together with custom or third-party tools, to easily create new avails, or determine state of content on third-party platforms.

INSTALLATION

You can use avails as a CLI or a Node.JS module.

as CLI:

npm install -g avails
avails convert -i json -o xlsx <movies.json >movies.xlsx

as module:

// npm install avails
const Avails = require('@pivotshare/avails');
const obj = Avails.fromTSVLine('SomeFilmStudio\tEN\tUS\tMovie');

SEE ALSO

emavalidator, Content Availability Metadata, Sending Avails

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free