coherence.upnp.core.DIDLLite (module)

TODO:

  • use more XPath expressions in fromElement() methods
qname(tag, ns=None)[source]
is_audio(mimetype)[source]

checks for type audio, expects a mimetype or an UPnP protocolInfo

is_video(mimetype)[source]

checks for type video, expects a mimetype or an UPnP protocolInfo

class Resources[source]

Bases: list

a list of resources, always sorted after an append

append(value)[source]

Append object to the end of the list.

p_sort(x, y)[source]

we want the following order http-get is always at the beginning rtsp-rtp-udp the second anything else after that

get_matching(local_protocol_infos, protocol_type=None)[source]
classChooser(mimetype, sub=None)[source]
build_dlna_additional_info(content_format, does_playcontainer=False)[source]
class Resource(data=None, protocol_info=None)[source]

Bases: object

An object representing a resource.

get_additional_info(upnp_client='')[source]
toElement(**kwargs)[source]
fromElement(elt)[source]
toString(**kwargs)[source]
classmethod fromString(_string)[source]
transcoded(format)[source]
class PlayContainerResource(udn, sid='urn:upnp-org:serviceId:ContentDirectory', cid=None, fid=None, fii=0, sc='', md=0, protocol_info=None)[source]

Bases: coherence.upnp.core.DIDLLite.Resource

An object representing a DLNA playcontainer resource.

class Object(id=None, parentID=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.log.LogAble

The root class of the entire content directory class heirachy.

logCategory = 'didllite'
elementName = None
upnp_class = 'object'
writeStatus = None
date = None
albumArtURI = None
artist = None
genre = None
genres = None
album = None
originalTrackNumber = None
description = None
longDescription = None
refID = None
server_uuid = None
creator = None
res = None
checkUpdate()[source]
toElement(**kwargs)[source]
toString(**kwargs)[source]
fromElement(elt)[source]
classmethod fromString(data)[source]
class Item(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.Object

A class used to represent atomic (non-container) content objects.

upnp_class = 'object.item'
elementName = 'item'
refID = None
director = None
actors = []
language = None
toElement(**kwargs)[source]
fromElement(elt)[source]

TODO: * creator * writeStatus

class ImageItem(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.Item

upnp_class = 'object.item.imageItem'
rating = None
storageMedium = None
publisher = None
rights = None
toElement(**kwargs)[source]
class Photo(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.ImageItem

upnp_class = 'object.item.imageItem.photo'
album = None
toElement(**kwargs)[source]
class AudioItem(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.Item

A piece of content that when rendered generates some audio.

upnp_class = 'object.item.audioItem'
publisher = None
language = None
relation = None
rights = None
valid_keys = ['genre', 'description', 'longDescription', 'publisher', 'language', 'relation', 'rights', 'albumArtURI']
toElement(**kwargs)[source]
fromElement(elt)[source]

TODO: * creator * writeStatus

class MusicTrack(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.AudioItem

A discrete piece of audio that should be interpreted as music.

upnp_class = 'object.item.audioItem.musicTrack'
album = None
playlist = None
storageMedium = None
contributor = None
toElement(**kwargs)[source]
class AudioBroadcast(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.AudioItem

upnp_class = 'object.item.audioItem.audioBroadcast'
class AudioBook(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.AudioItem

upnp_class = 'object.item.audioItem.audioBook'
class VideoItem(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.Item

upnp_class = 'object.item.videoItem'
valid_attrs = {'producer': 'urn:schemas-upnp-org:metadata-1-0/upnp/', 'publisher': 'http://purl.org/dc/elements/1.1/', 'rating': 'urn:schemas-upnp-org:metadata-1-0/upnp/', 'relation': 'http://purl.org/dc/elements/1.1/'}
toElement(**kwargs)[source]
fromElement(elt)[source]

TODO: * creator * writeStatus

class Movie(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.VideoItem

upnp_class = 'object.item.videoItem.movie'
class VideoBroadcast(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.VideoItem

upnp_class = 'object.item.videoItem.videoBroadcast'
class MusicVideoClip(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.VideoItem

upnp_class = 'object.item.videoItem.musicVideoClip'
class PlaylistItem(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.Item

upnp_class = 'object.item.playlistItem'
class TextItem(*args, **kwargs)[source]

Bases: coherence.upnp.core.DIDLLite.Item

upnp_class = 'object.item.textItem'
class Container(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Object

An object that can contain other objects.

upnp_class = 'object.container'
elementName = 'container'
childCount = None
createClass = None
searchable = None
toElement(**kwargs)[source]
fromElement(elt)[source]

TODO: * creator * writeStatus

class Person(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Container

upnp_class = 'object.container.person'
class MusicArtist(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Person

upnp_class = 'object.container.person.musicArtist'
class PlaylistContainer(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Container

upnp_class = 'object.container.playlistContainer'
class Album(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Container

upnp_class = 'object.container.album'
class MusicAlbum(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Album

upnp_class = 'object.container.album.musicAlbum'
class PhotoAlbum(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Album

upnp_class = 'object.container.album.photoAlbum'
class Genre(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Container

upnp_class = 'object.container.genre'
class MusicGenre(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Genre

upnp_class = 'object.container.genre.musicGenre'
class MovieGenre(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Genre

upnp_class = 'object.container.genre.movieGenre'
class StorageSystem(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Container

upnp_class = 'object.container.storageSystem'
class StorageVolume(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Container

upnp_class = 'object.container.storageVolume'
class StorageFolder(id=None, parent_id=None, title=None, restricted=False, creator=None)[source]

Bases: coherence.upnp.core.DIDLLite.Container

upnp_class = 'object.container.storageFolder'
class DIDLElement(upnp_client='', parent_container=None, requested_id=None, transcoding=False)[source]

Bases: coherence.log.LogAble

logCategory = 'didllite'
addContainer(id, parent_id, title, restricted=False)[source]
addItem(item)[source]
rebuild()[source]
numItems()[source]
getItems()[source]
toString()[source]

sigh - having that optional preamble here breaks some of the older ContentDirectoryClients

get_upnp_class(name)[source]
classmethod fromString(data)[source]