Skip to main content

XML Methods

API4.2 XML Methods​

Lets go through come calls and examples that you can do for each XML method.

Remember that Binary data methods will not return xml; just the file/data you have requested.

Non-Data Methods​

handshake​

This is the function that handles verifying a new handshake Takes a timestamp, auth key, and username.

@param array $input @return boolean

InputTypeDescriptionOptional
'auth'string$passphrase (Timestamp . Password SHA hash) OR (API Key)NO
'user'string$username (Required if login/password authentication)YES
'timestamp'integerUNIXTIME() (Timestamp used in seed of password hash. Required if login/password authentication)YES
'version'string$version (API Version that the application understands)YES

Example: API 4.2

ping​

This can be called without being authenticated, it is useful for determining if what the status of the server is, and what version it is running/compatible with @param array $input

InputTypeDescriptionOptional
'auth'string(Session ID) returns version information and extends the session if passedYES

Example: API 4.2

goodbye​

Destroy a session using the auth parameter.

@param array $input

InputTypeDescriptionOptional
'auth'string(Session ID) destroys the session if it existsNO

Example: API 4.2

url_to_song​

This takes a url and returns the song object in question @param array $input

InputTypeDescriptionOptional
'url'stringFull Ampache URL from server, translates back into a song XMLNO

Example: API 4.2

Data Methods​

get_indexes​

This takes a collection of inputs and returns ID + name for the object type @param array $input @return boolean

InputTypeDescriptionOptional
'type'stringsong, album, artist, playlistNO
'filter'stringYES
'add'set_filterISO 8601 Date Format (2020-09-16) add date is newer then specified dateYES
'update'set_filterISO 8601 Date Format (2020-09-16) update itme is newer then specified dateYES
'offset'integerYES
'limit'integerYES

SONGS

Example: API 4.2

ARTIST

Example: API 4.2

ALBUM

Example: API 4.2

PLAYLIST

Example: API 4.2

Changes to text searches​

  • 'is not' has been added shifting values down the list. 0=contains, 1=does not contain, 2=starts with, 3=ends with 4=is, 5=is not, 6=sounds like, 7=does not sound like
  • rule_1['name'] is depreciated. Instead of rule_1['name'] use rule_1['title'] (I have put a temp workaround into the search rules to alleviate this change for any existing apps)

Perform an advanced search given passed rules. This works in a similar way to the web/UI search pages. You can pass multiple rules as well as joins to create in depth search results

Rules must be sent in groups of 3 using an int (starting from 1) to designate which rules are combined. Use operator ('and', 'or') to choose whether to join or separate each rule when searching.

Refer to the Advanced Search page for details about creating searches.

@param array $input

INPUTS

  • ampache_url = (string)
  • ampache_API = (string)
  • operator = (string) and, or (whether to match one rule or all)
  • rules = (array) = [[rule_1, rule_1_operator, rule_1_input], [rule_2, rule_2_operator, rule_2_input], [etc]]
  • type = (string) song, album, artist, playlist, label, user, video
  • random = (integer) 0, 1 (random order of results; default to 0)
  • offset = (integer)
  • limit = (integer)

SONG

Example: API 4.2

ARTIST

Example: API 4.2

ALBUM

Example: API 4.2

artists​

This takes a collection of inputs and returns artist objects.

@param array $input

InputTypeDescriptionOptional
'filter'stringValue is Alpha Match for returned results, may be more than one letter/numberYES
'exact'boolean0, 1 (if true filter is exact rather then fuzzy)YES
'add'set_filterISO 8601 Date Format (2020-09-16) add date is newer then specified dateYES
'update'set_filterISO 8601 Date Format (2020-09-16) update itme is newer then specified dateYES
'offset'integerYES
'limit'integerYES
'include'stringalbums, songs (include child objects in the response)YES

Example: API 4.2

artist​

This returns a single artist based on the UID of said artist @param array $input

InputTypeDescriptionOptional
'filter'stringUID of Artist, returns artist XMLNO
'include'stringalbums, songs (include child objects in the response)YES

Example: API 4.2

artist_albums​

This returns the albums of an artist @param array $input

InputTypeDescriptionOptional
'filter'stringUID of Artist, returns Album XMLNO
'offset'integerYES
'limit'integerYES

Example: API 4.2

artist_songs​

This returns the songs of the specified artist @param array $input

InputTypeDescriptionOptional
'filter'stringUID of Artist, returns Song XMLNO
'offset'integerYES
'limit'integerYES

Example: API 4.2

albums​

This returns albums based on the provided search filters @param array $input

InputTypeDescriptionOptional
'filter'stringValue is Alpha Match for returned results, may be more than one letter/numberYES
'exact'boolean0, 1 (if true filter is exact rather then fuzzy)YES
'add'set_filterISO 8601 Date Format (2020-09-16) add date is newer then specified dateYES
'update'set_filterISO 8601 Date Format (2020-09-16) update itme is newer then specified dateYES
'offset'integerYES
'limit'integerYES
'include'stringalbums, songs (include child objects in the response)YES

Example: API 4.2

album​

This returns a single album based on the UID provided @param array $input

InputTypeDescriptionOptional
'filter'stringUID of Album, returns album XMLNO
'include'string'songs' and will include the corresponding XML nested in the album XMLYES

Example: API 4.2

album_songs​

This returns the songs of a specified album @param array $input

InputTypeDescriptionOptional
'filter'stringUID of Album, returns song XMLNO
'offset'integerYES
'limit'integerYES

Example: API 4.2

tags​

This returns the tags (Genres) based on the specified filter @param array $input

InputTypeDescriptionOptional
'filter'stringValue is Alpha Match for returned results, may be more than one letter/numberYES
'exact'booleanif true filter is exact rather then fuzzyYES
'offset'integerYES
'limit'integerYES

Example: API 4.2

tag​

This returns a single tag based on UID @param array $input

InputTypeDescriptionOptional
'filter'stringUID of tag, returns tag XMLNO

Example: API 4.2

tag_artists​

This returns the artists associated with the tag in question as defined by the UID @param array $input

InputTypeDescriptionOptional
'filter'stringUID of tag, returns artist XMLNO
'offset'integerYES
'limit'integerYES

Example: API 4.2

tag_albums​

This returns the albums associated with the tag in question @param array $input

InputTypeDescriptionOptional
'filter'stringUID of tag, returns album XMLNO
'offset'integerYES
'limit'integerYES

Example: API 4.2

tag_songs​

returns the songs for this tag @param array $input

InputTypeDescriptionOptional
'filter'stringUID of tag, returns song XMLNO
'offset'integerYES
'limit'integerYES

Example: API 4.2

songs​

Returns songs based on the specified filter @param array $input

InputTypeDescriptionOptional
'filter'stringValue is Alpha Match for returned results, may be more than one letter/numberYES
'exact'boolean0, 1 (if true filter is exact rather then fuzzy)YES
'add'set_filterISO 8601 Date Format (2020-09-16) add date is newer then specified dateYES
'update'set_filterISO 8601 Date Format (2020-09-16) update itme is newer then specified dateYES
'offset'integerYES
'limit'integerYES

Example: API 4.2

song​

returns a single song @param array $input

InputTypeDescriptionOptional
'filter'stringUID of Song, returns song XMLNO

Example: API 4.2

playlists​

This returns playlists based on the specified filter @param array $input

InputTypeDescriptionOptional
'filter'stringValue is Alpha Match for returned results, may be more than one letter/numberYES
'exact'boolean0, 1 (if true filter is exact rather then fuzzy)YES
'add'set_filterISO 8601 Date Format (2020-09-16) add date is newer then specified dateYES
'update'set_filterISO 8601 Date Format (2020-09-16) update itme is newer then specified dateYES
'offset'integerYES
'limit'integerYES

Example: API 4.2

playlist​

This returns a single playlist @param array $input

InputTypeDescriptionOptional
'filter'stringUID of playlist, returns playlist XMLNO

Example: API 4.2

playlist_songs​

This returns the songs for a playlist @param array $input

InputTypeDescriptionOptional
'filter'stringUID of Playlist, returns song XMLNO
'offset'integerYES
'limit'integerYES

Example: API 4.2

playlist_create​

This create a new playlist and return it @param array $input

InputTypeDescriptionOptional
'name'stringPlaylist nameNO
'type'stringpublic, private (Playlist type)YES

Example: API 4.2

playlist_edit​

This modifies name and type of a playlist Previously name and type were mandatory while filter wasn't. this has been reversed. @param array $input

InputTypeDescriptionOptional
'filter'stringUID of PlaylistNO
'name'stringPlaylist nameYES
'type'stringpublic, private (Playlist type)YES
'items'stringcomma-separated song_id's (replace existing items with a new object_id)YES
'tracks'stringcomma-separated playlisttrack numbers matched to items in orderYES

Example: API 4.2

playlist_delete​

This deletes a playlist @param array $input

InputTypeDescriptionOptional
'filter'stringUID of PlaylistNO

Example: API 4.2

playlist_add_song​

This adds a song to a playlist. setting check=1 will not add duplicates to the playlist @param array $input

InputTypeDescriptionOptional
'filter'integerUID of PlaylistNO
'song'integerUID of song to add to playlistNO
'check'boolean0, 1 Whether to check and ignore duplicates (default = 0)YES

Example: API 4.2

playlist_remove_song​

This remove a song from a playlist. Previous versions required 'track' instead of 'song'. @param array $input

InputTypeDescriptionOptional
'filter'stringUID of PlaylistNO
'song'stringUID of song to remove from playlistYES
'track'integerTrack number to remove from playlistYES

Example: API 4.2

playlist_generate​

Get a list of song XML, indexes or id's based on some simple search criteria 'recent' will search for tracks played after 'Popular Threshold' days 'forgotten' will search for tracks played before 'Popular Threshold' days 'unplayed' added in 400002 for searching unplayed tracks

@param array $input

InputTypeDescriptionOptional
'mode'stringrecent, forgotten, unplayed, random (default = 'random')YES
'filter'stringstring LIKE matched to song titleYES
'album'integer$album_idYES
'artist'integer$artist_idYES
'flag'integer0, 1 (get flagged songs only. default = 0)YES
'format'stringsong, index, id (default = 'song')YES
'offset'integerYES
'limit'integerYES

SONG

Example: API 4.2

INDEX

Example: API 4.2

ID

Example: API 4.2

shares​

  • NEW in 4.2.0

This searches the shares and returns... shares @param array $input

InputTypeDescriptionOptional
'filter'stringValue is Alpha Match for Song Title, Artist Name, Album Name, Genre Name returns song XMLYES
'exact'boolean0, 1 boolean to match the exact filter stringYES
'offset'integerYES
'limit'integerYES

Example: API 4.2

share​

  • NEW in 4.2.0

Return shares by UID @param array $input

InputTypeDescriptionOptional
'filter'stringUID of Share, returns song XMLNO

Example: API 4.2

share_create​

  • NEW in 4.2.0

Create a public url that can be used by anyone to stream media. Takes the file id with optional description and expires parameters.

@param array $input

InputTypeDescriptionOptional
'filter'integerUID of object you are sharingNO
'type'stringobject_typeNO
'description'stringdescription (will be filled for you if empty)YES
'expires'integerdays to keep activeYES

Example: API 4.2

share_edit​

  • NEW in 4.2.0

Update the description and/or expiration date for an existing share. Takes the share id to update with optional description and expires parameters.

@param array $input

InputTypeDescriptionOptional
'filter'stringAlpha-numeric search termNO
'stream'boolean0, 1 Allow streamingYES
'download'boolean0, 1 Allow DownloadingYES
'expires'integernumber of whole days before expiryYES
'description'stringupdate descriptionYES

Example: API 4.2

share_delete​

  • NEW in 4.2.0

Delete an existing share.

@param array $input

InputTypeDescriptionOptional
'filter'stringUID of Share to deleteNO

Example: API 4.2

get_similar​

  • NEW in 4.2.0

Return similar artist id's or similar song ids compared to the input filter @param array $input

InputTypeDescriptionOptional
'type'stringsong, artistNO
'filter'integerartist id or song idNO
'offset'integerYES
'limit'integerYES

Example: API 4.2

search_songs​

This searches the songs and returns... songs @param array $input

InputTypeDescriptionOptional
'filter'stringValue is Alpha Match for Name returns share XMLNO
'offset'integerYES
'limit'integerYES

Example: API 4.2

videos​

This returns video objects! @param array $input

InputTypeDescriptionOptional
'filter'stringValue is Alpha Match for returned results, may be more than one letter/numberYES
'exact'booleanif true filter is exact rather then fuzzyYES
'offset'integerYES
'limit'integerYES

Example: API 4.2

video​

This returns a single video @param array $input

InputTypeDescriptionOptional
'filter'stringUID of video, returns video XMLNO

Example: API 4.2

stats​

Get some items based on some simple search types and filters. This method has partial backwards compatibility with older api versions but should be updated to follow the current input values. (Changed in 400001 'filter' added) @param array $input

InputTypeDescriptionOptional
'type'stringsong, album, artistNO
'filter'stringnewest, highest, frequent, recent, forgotten, flagged, randomNO
'user_id'integerYES
'username'stringYES
'offset'integerYES
'limit'integerYES

SONG

Example: API 4.2

ARTIST

Example: API 4.2

ALBUM

Example: API 4.2

podcasts​

  • NEW in 4.2.0

Get information about podcasts @param array $input

InputTypeDescriptionOptional
'filter'stringYES
'offset'integerYES
'limit'integerYES
'include'stringepisodes (include podcast_episodes in the response)YES

Example: API 4.2

podcast​

  • NEW in 4.2.0

Get the podcast from it's id. @param array $input

InputTypeDescriptionOptional
'filter'stringNO
'include'stringepisodes (include podcast_episodes in the response)YES

Example: API 4.2

podcast_create​

  • NEW in 4.2.0

Create a podcast that can be used by anyone to stream media. Takes the url and catalog parameters. @param array $input

InputTypeDescriptionOptional
'url'stringrss url for podcastNO
'catalog'stringpodcast catalogNO

Example: API 4.2

podcast_edit​

  • NEW in 4.2.0

Update the description and/or expiration date for an existing podcast. Takes the podcast id to update with optional description and expires parameters. @param array $input

InputTypeDescriptionOptional
'filter'stringAlpha-numeric search termNO
'feed'stringfeed rss xml urlYES
'title'stringtitle stringYES
'website'stringsource website urlYES
'description'stringYES
'generator'stringYES
'copyright'stringYES

Example: API 4.2

podcast_delete​

  • NEW in 4.2.0

Delete an existing podcast. @param array $input

InputTypeDescriptionOptional
'filter'stringUID of podcast to deleteNO

Example: API 4.2

podcast_episodes​

  • NEW in 4.2.0

This returns the episodes for a podcast @param array $input

InputTypeDescriptionOptional
'filter'stringUID of podcastNO
'offset'integerYES
'limit'integerYES

Example: API 4.2

podcast_episode​

  • NEW in 4.2.0

Get the podcast_episode from it's id. @param array $input

InputTypeDescriptionOptional
'filter'stringpodcast_episode ID numberNO

Example: API 4.2

podcast_episode_delete​

  • NEW in 4.2.0

Delete an existing podcast_episode. @param array $input

InputTypeDescriptionOptional
'filter'stringUID of podcast_episode to deleteNO

Example: API 4.2

user​

This gets a user's public information @param array $input

InputTypeDescriptionOptional
'username'stringUsername of the user to get details forNO

Example: API 4.2

user_create​

Create a new user. (Requires the username, password and email.) @param array $input

InputTypeDescriptionOptional
'username'string$usernameNO
'password'stringhash('sha256', $password)NO
'email'stringe.g.user@gmail.comNO
'fullname'stringYES
'disable'boolean0, 1YES

Example: API 4.2

user_update​

Update an existing user. @param array $input

InputTypeDescriptionOptional
'username'string$usernameNO
'password'stringhash('sha256', $password)YES
'email'stringe.g.user@gmail.comYES
'fullname'stringYES
'website'stringYES
'state'stringYES
'city'stringYES
'disable'boolean0, 1YES
'maxbitrate'stringYES

Example: API 4.2

user_delete​

Delete an existing user. @param array $input

InputTypeDescriptionOptional
'username'stringNO

Example: API 4.2

licenses​

  • NEW in 4.2.0

This returns licenses based on the specified filter @param array $input

InputTypeDescriptionOptional
'filter'stringValue is Alpha Match for returned results, may be more than one letter/numberYES
'exact'boolean0, 1 (if true filter is exact rather then fuzzy)YES
'add'set_filterISO 8601 Date Format (2020-09-16) add date is newer then specified dateYES
'update'set_filterISO 8601 Date Format (2020-09-16) update itme is newer then specified dateYES
'offset'integerYES
'limit'integerYES

Example: API 4.2

license​

  • NEW in 4.2.0

This returns a single license @param array $input

InputTypeDescriptionOptional
'filter'stringUID of license, returns license XMLNO

Example: API 4.2

license_songs​

  • NEW in 4.2.0

This returns the songs for a license @param array $input

InputTypeDescriptionOptional
'filter'stringUID of license, returns song XMLNO
'offset'integerYES
'limit'integerYES

Example: API 4.2

followers​

This gets a user's followers @param array $input

InputTypeDescriptionOptional
'username'stringUsername of the user for who to get followers listNO

Example: API 4.2

following​

This get the user list followed by a user @param array $input

InputTypeDescriptionOptional
'username'string(Username of the user for who to get following listNO

Example: API 4.2

toggle_follow​

This follow/unfollow a user @param array $input

InputTypeDescriptionOptional
'username'stringUsername of the user to follow/unfollowNO

Example: API 4.2

last_shouts​

This get the latest posted shouts @param array $input

InputTypeDescriptionOptional
'username'stringUsername of the user for who to get latest shoutsYES
'limit'integerYES

Example: API 4.2

rate​

This rates a library item @param array $input

InputTypeDescriptionOptional
'type'stringalbum, artist, song, video (item type)NO
'id'stringlibrary item idNO
'rating'integerrating between 0-5NO

Example: API 4.2

flag​

This flags a library item as a favorite

  • Setting flag to true (1) will set the flag
  • Setting flag to false (0) will remove the flag @param array $input
InputTypeDescriptionOptional
'type'stringsong, album, artist, videoNO
'id'integer$object_idNO
'flag'boolean0, 1NO

Example: API 4.2

record_play​

Take a song_id and update the object_count and user_activity table with a play. This allows other sources to record play history to ampache @param array $input

InputTypeDescriptionOptional
'id'integer$object_idNO
'user'integer$user_idNO
'client'string$agentYES

Example: API 4.2

scrobble​

Search for a song using text info and then record a play if found. This allows other sources to record play history to ampache @param array $input

InputTypeDescriptionOptional
'song'string$song_nameNO
'artist'string$artist_nameNO
'album'string$album_nameNO
'songmbid'string$song_mbidYES
'artistmbid'string$artist_mbidYES
'albummbid'string$album_mbidYES
'date'integerUNIXTIME()YES
'client'string$agentYES

Example: API 4.2

catalogs​

  • NEW in 4.2.0

This searches the catalogs and returns... catalogs @param array $input

InputTypeDescriptionOptional
'filter'stringmusic, clip, tvshow, movie, personal_video, podcast (Catalog type)YES

Example: API 4.2

catalog​

  • NEW in 4.2.0

Return catalog by UID @param array $input

InputTypeDescriptionOptional
'filter'stringUID of CatalogNO

Example: API 4.2

catalog_action​

Kick off a catalog update or clean for the selected catalog @param array $input

InputTypeDescriptionOptional
'task'stringadd_to_catalog, clean_catalogNO
'catalog'integer$catalog_idNO

Example: clean_catalog

Example: add_to_catalog

catalog_file​

  • NEW in 4.2.0

Perform actions on local catalog files. Single file versions of catalog add, clean, verify and remove (delete) Make sure you remember to urlencode those file names!

@param array $input

InputTypeDescriptionOptional
'file'stringFULL path to local fileNO
'task'stringadd, clean, verify, removeNO
'catalog'integer$catalog_idNO

Example: API 4.2

timeline​

This gets a user's timeline @param array $input

InputTypeDescriptionOptional
'username'stringUsername of the user for whom to get the timelineNO
'limit'integerYES
'since'integerUNIXTIME()YES

Example: API 4.2

friends_timeline​

This get current user friends timeline @param array $input

InputTypeDescriptionOptional
'limit'integerYES
'since'integerUNIXTIME()NO

Example: API 4.2

update_from_tags​

Update a single album, artist, song from the tag data @param array $input

InputTypeDescriptionOptional
'type'stringsong, artist, albumNO
'id'integer$artist_id, $album_id, $song_idNO

Example: API 4.2

update_artist_info​

Update artist information and fetch similar artists from last.fm Make sure lastfm_API_key is set in your configuration file @param array $input

InputTypeDescriptionOptional
'id'integer$artist_idNO

Example: API 4.2

update_art​

Updates a single album, artist, song running the gather_art process Doesn't overwrite existing art by default. @param array $input

InputTypeDescriptionOptional
'id'integer$object_idNO
'type'stringsong, podcastNO
'overwrite'boolean0, 1YES

Example: API 4.2

update_podcast​

Sync and download new podcast episodes @param array $input

InputTypeDescriptionOptional
'id'integer$object_idNO

Example: API 4.2

Binary Data Methods​

stream​

Streams a given media file. Takes the file id in parameter with optional max bit rate, file format, time offset, size and estimate content length option. @param array $input

InputTypeDescriptionOptional
'id'integer$object_idNO
'type'stringsong, podcastNO
'bitrate'integermax bitrate for transcoding in bytes (e.g 192000=192Kb)YES
'format'stringmp3, ogg, raw, etc (raw returns the original format)YES
'offset'integertime offset in secondsYES
'length'boolean0, 1YES

download​

Downloads a given media file. set format=raw to download the full file @param array $input

InputTypeDescriptionOptional
'id'integer$object_idNO
'type'stringsong, podcastNO
'format'stringmp3, ogg, raw, etc (raw returns the original format)YES

get_art​

Get an art image. @param array $input

Control Methods​

localplay​

This is for controlling localplay @param array $input

Example: API 4.2

Example (status)

democratic​

This is for controlling democratic play (Songs only) @param array $input

  • ACTION
    • method
      • vote
        • oid (Unique ID of the element you want to vote on)
      • devote
        • oid (Unique ID of the element you want to vote on)
      • playlist (Returns an array of song items with an additional <vote>[VOTE COUNT]</vote> element)
      • play (Returns the URL for playing democratic play)
InputTypeDescriptionOptional
'oid'integerUID of Song objectNO
'method'stringvote, devote, playlist, playNO

Example: API 4.2

All XML Documents that have a <tag></tag> element may have 0 or more tag elements associated with them. Each tag element has an attribute "count" that indicates the number of people who have specified this tag.

Artists XML Document. ID's are Ampache's unique Identifier for the artist.

<root>
<artist id="12039">
<name>Metallica</name>
<albums># of Albums</albums>
<songs># of Songs</songs>
<tag id="2481" count="2">Rock & Roll</tag>
<tag id="2482" count="1">Rock</tag>
<tag id="2483" count="1">Roll</tag>
<preciserating>3</preciserating>
<rating>2.9</rating>
</artist>
<artist id="129348">
<name>AC/DC</name>
<albums># of Albums</albums>
<songs># of Songs</songs>
<tag id="2481" count="2">Rock & Roll</tag>
<tag id="2482" count="2">Rock</tag>
<tag id="2483" count="1">Roll</tag>
<preciserating>3</preciserating>
<rating>2.9</rating>
</artist>
</root>

Album XML Document. ID's are Ampache's unique identifier for the album and artist associated.

<root>
<album id="2910">
<name>Back in Black</name>
<artist id="129348">AC/DC</artist>
<year>1984</year>
<tracks>12</tracks>
<disk>1</disk>
<tag id="2481" count="2">Rock & Roll</tag>
<tag id="2482" count="1">Rock</tag>
<tag id="2483" count="1">Roll</tag>
<art>http://localhost/image.php?id=129348</art>
<preciserating>3</preciserating>
<rating>2.9</rating>
</album>
</root>

Single Song XML document, includes references to its parent objects.

<root>
<song id="3180">
<title>Hells Bells</title>
<artist id="129348">AC/DC</artist>
<album id="2910">Back in Black</album>
<tag id="2481" count="3">Rock & Roll</tag>
<tag id="2482" count="1">Rock</tag>
<tag id="2483" count="1">Roll</tag>
<track>4</track>
<time>234</time>
<url>http://localhost/play/index.php?oid=123908...</url>
<size>Song Filesize in Bytes</size>
<art>http://localhost/image.php?id=129348</art>
<preciserating>3</preciserating>
<rating>2.9</rating>
</song>
</root>

Tag XML Document, includes counts for it's child objects

<root>
<tag id="2481">
<name>Rock & Roll</name>
<albums>84</albums>
<artists>29</artists>
<songs>239</songs>
<video>13</video>
<playlist>2</playlist>
<stream>6</stream>
</tag>
</root>

Playlist XML Document, includes counts for it's child objects

<root>
<playlist id="1234">
<name>The Good Stuff</name>
<owner>Karl Vollmer</owner>
<items>50</items>
<tag id="2481" count="2">Rock & Roll</tag>
<tag id="2482" count="2">Rock</tag>
<tag id="2483" count="1">Roll</tag>
<type>Public</type>
</playlist>
</root>

Video XML Document -- Attention UIDs for video elements are non-unique against song.id

<root>
<video id="1234">
<title>Futurama Bender's Big Score</title>
<mime>video/avi</mime>
<resolution>720x288</resolution>
<size>Video Filesize in Bytes</size>
<tag id="12131" count="3">Futurama</tag>
<tag id="32411" count="1">Movie</tag>
<url>http://localhost/play/index.php?oid=123908...</url>
</video>
</root>