XSPF: Difference between revisions
format, expand slightly |
VLC extensions in XSPF |
||
| Line 15: | Line 15: | ||
== Compatability == | == Compatability == | ||
{{compat}} | {{compat}} | ||
== VLC Extensions == | |||
XSPF supports extensions to allow applications to add special data. These extensions can appear in the following entries: | |||
* playlist | |||
* track | |||
The extension format is defined in the namespace <code>xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/"</code>: | |||
<playlist version="1" xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/"> | |||
... | |||
<extension application="http://www.videolan.org/vlc/playlist/0"> | |||
... | |||
</extension> | |||
</playlist> | |||
Currently, extensions support the following elements: | |||
* vlc:node | |||
* vlc:item | |||
* vlc:id | |||
* vlc:option | |||
The extensions vlc:node and vlc:item are used to specify how to display the playlist tree, which is not supported by standard XSPF. | |||
=== vlc:node === | |||
This element will be displayed as a node in the playlist. It appears as an extension of the '''playlist''' block. Only its name can be specified: | |||
<vlc:node title="Node title"> | |||
[list of vlc:item or vlc:node] | |||
</vlc:node> | |||
=== vlc:item === | |||
This element represents a playlist item (not a node). It appears as an extension of the '''playlist''' block. It contains only a track id (see below, vlc:id): | |||
<vlc:item tid="42" /> | |||
=== vlc:id === | |||
This element specifies a track's id. It appears as an extension of the '''track''' block. | |||
<vlc:id>42</vlc:id> | |||
The value of the id corresponds to the value of the attribute tid of vlc:item. | |||
=== vlc:option === | |||
This element allows you to add options to the input item. It appears as an extension of the '''track''' block. | |||
<vlc:option>option-name</vlc:option> | |||
Or, if the option has a value: | |||
<vlc:option>option-name=option-value</vlc:option> | |||
=== Example of XSPF with VLC extensions === | |||
Let's summarize these as an example: | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<playlist version="1" xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/"> | |||
<title>Playlist</title> | |||
<location>D:/media/example.xspf</location> | |||
<trackList> | |||
<track> | |||
<title>Track 1</title> | |||
... | |||
<extension application="http://www.videolan.org/vlc/playlist/0"> | |||
<vlc:id>0</vlc:id> | |||
</extension> | |||
</track> | |||
<track> | |||
<title>Track 2</title> | |||
... | |||
<extension application="http://www.videolan.org/vlc/playlist/0"> | |||
<vlc:id>1</vlc:id> | |||
</extension> | |||
</track> | |||
<track> | |||
<title>Track 3</title> | |||
... | |||
<extension application="http://www.videolan.org/vlc/playlist/0"> | |||
<vlc:id>2</vlc:id> | |||
</extension> | |||
</track> | |||
<track> | |||
<title>Track 4</title> | |||
... | |||
<extension application="http://www.videolan.org/vlc/playlist/0"> | |||
<vlc:id>3</vlc:id> | |||
<vlc:option>my-option=42</vlc:option> | |||
</extension> | |||
</track> | |||
</trackList> | |||
<extension application="http://www.videolan.org/vlc/playlist/0"> | |||
<vlc:node title="Node 1"> | |||
<vlc:item tid="0" /> | |||
<vlc:item tid="1" /> | |||
<vlc:node title="Node 2"> | |||
<vlc:item tid="2" /> | |||
<vlc:item tid="3" /> | |||
</vlc:node> | |||
</vlc:node> | |||
</extension> | |||
</playlist> | |||
This playlist example will be displayed as: | |||
Playlist | |||
`- Node 1 | |||
|- Track 1 | |||
|- Track 2 | |||
`- Node 2 | |||
|- Track 3 | |||
`- Track 4 | |||
The input for ''Track 4'' will be created with the option ''my-option'' set to 42. | |||
== See also == | == See also == | ||
Revision as of 14:03, 15 January 2009
XSPF, pronounced "spiff", is a playlist in XML format, which is supported by Xiph. It is a free and open format so can be easily, freely used for sharing playlists.
Sample
A very simple document looks like this:
<?xml version="1.0" encoding="UTF-8"?> <playlist version="1" xmlns="http://xspf.org/ns/0/"> <trackList> <track><location>file:///mp3s/song_1.mp3</location></track> <track><location>file:///mp3s/song_2.mp3</location></track> <track><location>file:///mp3s/song_3.mp3</location></track> </trackList> </playlist>
Compatability
VLC Extensions
XSPF supports extensions to allow applications to add special data. These extensions can appear in the following entries:
- playlist
- track
The extension format is defined in the namespace xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/":
<playlist version="1" xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/"> ... <extension application="http://www.videolan.org/vlc/playlist/0"> ... </extension> </playlist>
Currently, extensions support the following elements:
- vlc:node
- vlc:item
- vlc:id
- vlc:option
The extensions vlc:node and vlc:item are used to specify how to display the playlist tree, which is not supported by standard XSPF.
vlc:node
This element will be displayed as a node in the playlist. It appears as an extension of the playlist block. Only its name can be specified:
<vlc:node title="Node title"> [list of vlc:item or vlc:node] </vlc:node>
vlc:item
This element represents a playlist item (not a node). It appears as an extension of the playlist block. It contains only a track id (see below, vlc:id):
<vlc:item tid="42" />
vlc:id
This element specifies a track's id. It appears as an extension of the track block.
<vlc:id>42</vlc:id>
The value of the id corresponds to the value of the attribute tid of vlc:item.
vlc:option
This element allows you to add options to the input item. It appears as an extension of the track block.
<vlc:option>option-name</vlc:option>
Or, if the option has a value:
<vlc:option>option-name=option-value</vlc:option>
Example of XSPF with VLC extensions
Let's summarize these as an example:
<?xml version="1.0" encoding="UTF-8"?> <playlist version="1" xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/"> <title>Playlist</title> <location>D:/media/example.xspf</location> <trackList> <track> <title>Track 1</title> ... <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:id>0</vlc:id> </extension> </track> <track> <title>Track 2</title> ... <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:id>1</vlc:id> </extension> </track> <track> <title>Track 3</title> ... <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:id>2</vlc:id> </extension> </track> <track> <title>Track 4</title> ... <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:id>3</vlc:id> <vlc:option>my-option=42</vlc:option> </extension> </track> </trackList> <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:node title="Node 1"> <vlc:item tid="0" /> <vlc:item tid="1" /> <vlc:node title="Node 2"> <vlc:item tid="2" /> <vlc:item tid="3" /> </vlc:node> </vlc:node> </extension> </playlist>
This playlist example will be displayed as:
Playlist
`- Node 1
|- Track 1
|- Track 2
`- Node 2
|- Track 3
`- Track 4
The input for Track 4 will be created with the option my-option set to 42.
See also
There are many advantages to using XML as the format. More information is available at