Item Format

The full syntax of every input playlist is:

//start,duration,flags,id,name,description,comments,in,out,date

Where:

  • Start – item start time; optional for "follow" items;

  • Duration – item duration;

  • Flagsitem flags;

  • ID – item Traffic ID (used to locate media);

  • Name – item name;

  • Description – optional; item description;

  • Comments – optional; item comments;

  • IN – optional; item In point;

  • OUT – optional; item Out point;

  • Start Date – optional; item start date.

Note
Optional fields may be skipped (no value assigned).

For example:

12;30;00;00,00;01;00;00,C,ITEM001,First item,First item description,First item comments,,,31/12/2015

,00;01;00;00,,ITEM002,Second,,Item with IN point,00;00;10;00

,00;01;00;00,,ITEM003,Third,,Item with OUT point,,00;00;50;00

,00;15;00;00,,ITEM003,Next item,Secondary Event Sample

N,"This is just a comment line you can insert into the playlist. Please note, that you can insert comma in the value when ""double quote"" it"

,00;15;00;00,D,Dummy item

Also trailing empty values can be skipped. For example:

,00;01;00;00,,ITEM002,Short Item

The empty lines and lines with comments are supported in CSV allowing creating better human-readable files. The line starting with // will be identified as comments and will be skipped when processing the CSV file.

The complex values can contain commas and quotes. For example:

N,"This is just a comment line you can insert into the playlist. Please note, that you can insert comma in the value when ""double quote"" it"

Note
Please note, that value with comma inside should be put into quotes.

The quote symbol " inside value should be specified as "" and the entire value should be "quoted".

Item Flags

Item flags can be any reasonable combination of the following values:

  • C – clocked (fixed start) item;

  • J – join-in-progress item;

  • M – item with manual end;

  • S – item with loop start;

  • E – item with loop end;

  • L – live item (media timeline is ignored);

  • D – dummy item (media timeline is ignored).

The loop in playlist includes all items between Loop Start and Loop End item inclusively. In case new Program, new Block or join-in-progress item is detected, the loop is terminated automatically.

Program

The program format is the following:

//program,name,description

Where:

  • P – identifies that the line defines program item;

  • Name – program name;

  • Description – optional; program description.

For example:

P,Explicit Program,Sample Program Description

Note
Please note, that in case no programs are defined in CSV, the 'Default' program will be automatically created.

Block

The block format is the following:

//block,name,type,AvailId,skipped

Where the block line format is the following:

  • B – identifies that the line defines block item;

  • Name – block name;

  • Type – optional; 'A' identifies block as 'Automatic Opt-Out';

  • AvailId – optional; avail-id attribute for the block;

  • Skipped – optional; 'S' identifies the block as 'Skipped'.

For example:

B,Auto OptOut Block,A,ID001,S

Note
Please note, that in case no blocks are defined in CSV, the 'Default' block will be automatically created.

Notes and Comments

The format is the following:

//note,text

Where the note line format is the following:

  • N – identifies that the line defines Note item;

  • Text – defines the comment text.

For example:

N,"This is just a comment line you can insert into the playlist. Please note, that you can insert comma in the value when ""double quote"" it"

Generic Secondary Events

The format is the following:

//type,offset,offsetFrom,name,description,device,command,option1,option2,option3

Where the event line format is the following:

  • S – identifies that the line defines generic secondary event;

  • Offset – event offset, can be negative;

  • OffsetFrom – defines the origin point for offset. Can be 'E' for EndOfEvent, empty or 'B' for BeginningOfEvent;

  • Name – event name;

  • Description – event description;

  • Device – device name;

  • Command – command;

  • Option1..3 – options for command.

Note
Please note, that secondary event should not be the first item in the list. All secondary events are associated to the previous item (clip, live, dummy).

For example:

S,00;00;15;00,E,Secondary,,VIKINX,crosspoint,001,015

Predefined Cinegy Type Layer

The explicit support for CG layer events is added. The format is the following:

//type,offset,offsetFrom,name,description,id,variables xml

Where the CG line format is the following:

  • CG_* – identifies that the line defines CG event. The * defines the layer to be applied (0..8 or LOGO);

  • Offset – event offset, can be a negative value;

  • OffsetFrom – defines the origin point for offset. Can be 'E' for EndOfEvent, empty or 'B' for BeginningOfEvent;

  • Name – event name;

  • Description – event description;

  • ID – defines Cinegy Type template file name;

  • Variables – optional; variables XML definition. When empty/not set the defaults from Cinegy Type template file will be extracted.

For example:

CG_1,00;00;15;00,,Demo CG,,CG_FILENAME

CG_1,-00;00;15;00,E,Hide CG,,HIDE

Note
Please note, that Cinegy Type template file with the name that equals to ID should exist in the Type repository folder or the playlist processing will be finished with errors.

Example

A sample CSV file can be downloaded from GitHub repos.