[ Table of Contents ]

# Metadata and Publishing

## Introduction

One can enter metadata about the scenes into their project using the the Storyboard. Click the triangle next to the thumbnail to expand it, then click the pulldown menu of the combo widget to select a metadata item to add. Finally, enter a metadata value into the rightmost column. The metadata facilities are very configurable through the Kino config file. Kino can prompt the user for a project name for each new project, insert the name into a URL, query a HTTP server, and parse an XML server response to present lists of values from which to pick during metadata entry. Finally, the user "publishes" the Kino XML project file (SMIL derivative) or still frames simply by editing shell scripts.

## Config file keys

The Kino config file is located at ~/.gnome2/kino. A default one is created the first time Kino runs.

metaNames is a comma-delimited list of xml attribute names. Preface name with a '*' to make it required.

metaValues is mapped to each metaName as "metaValue_{metaName}". Each metaValue is a comma-delimited list of permissable values. If '*' is a value, then the user can enter a value not in the list. The list may contain a label=value pair. The 'label' is displayed to the user while a 'value' is hidden and used in the XML attribute value. The '=value' part of a pair is optional. If the first value pair begins with "xpath:" then the metaValues are expanded using the XML response from newProjectURI. Remember, a XPath query can return a collection of nodes. The text/value of these nodes is used to build the replacement list of label/values.

enablePublish shows the Publish SMIL and Still menu items and toolbar icons.

If newProjectURI is not empty, then a prompt is displayed on startup when no files on command line or File/New selected. The user is prompted for a project name/ID which is pasted in the URI where there exists a "%s" Then, the URI is requested from a server using HTTP. It expects to receive a well-formed XML document in the body of the response, which is parsed by libxml2.

newProjectXPath is the XPath expression to locate the project ID in the XML response from newProjectURI. The value is put into the "id" attribute value on the smil element.

## An Example

`newProjectURI=http://cms/query=%s`
causes Kino to prompt the user for a project name. When the user clicks OK, the server returns the following XML:

    <storylist id="1234">
      <story id="56789">
        <title>Kino 0.7.1 is Released<titleürzung gepla>
      </story>
      <story></story>
      ...
    </storylist>

`newProjectXPath=/storylist/@id`
causes Kino to locate the actual story ID and associate it with this project.
`metaNames=*title`
causes Kino to automatically add and show only one metadata item.
`metaValues_title=xpath:/storylist/story/title=xpath:/storylist/story/@id`
causes Kino to show the stories as the list of metadata values to choose from. Furthermore, the user can only the values in the list. Also, the story ID is stored in the XML project document as opposed to the story title.

## Publish Scripts

Scripts are installed at $prefix/share/kino/scripts/publish/
$prefix is typically "/usr" or "/usr/local"
There is a frame.sh and a project.sh. Kino passes as command arguments the file name of the xml document or still frame followed by the project ID returned by the server followed by the the project name entered into the new project dialog.

[ Table of Contents ]