Cinegy CSV Input File Format
Reading time ~4 minutes
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;
-
Flags – item 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.