diff --git a/plexapi/audio.py b/plexapi/audio.py index 10ba97689..0c86d16d9 100644 --- a/plexapi/audio.py +++ b/plexapi/audio.py @@ -449,6 +449,8 @@ class Track( primaryExtraKey (str) API URL for the primary extra for the track. ratingCount (int): Number of listeners who have scrobbled this track, as reported by Last.fm. skipCount (int): Number of times the track has been skipped. + sourceURI (str): Remote server URI (server:///com.plexapp.plugins.library) + (remote playlist item only). viewOffset (int): View offset in milliseconds. year (int): Year the track was released. """ @@ -483,6 +485,7 @@ def _loadData(self, data): self.primaryExtraKey = data.attrib.get('primaryExtraKey') self.ratingCount = utils.cast(int, data.attrib.get('ratingCount')) self.skipCount = utils.cast(int, data.attrib.get('skipCount')) + self.sourceURI = data.attrib.get('source') # remote playlist item self.viewOffset = utils.cast(int, data.attrib.get('viewOffset', 0)) self.year = utils.cast(int, data.attrib.get('year')) diff --git a/plexapi/photo.py b/plexapi/photo.py index 8737d814c..c68b36131 100644 --- a/plexapi/photo.py +++ b/plexapi/photo.py @@ -180,6 +180,8 @@ class Photo( parentThumb (str): URL to photo album thumbnail image (/library/metadata//thumb/). parentTitle (str): Name of the photo album for the photo. ratingKey (int): Unique key identifying the photo. + sourceURI (str): Remote server URI (server:///com.plexapp.plugins.library) + (remote playlist item only). summary (str): Summary of the photo. tags (List<:class:`~plexapi.media.Tag`>): List of tag objects. thumb (str): URL to thumbnail image (/library/metadata//thumb/). @@ -218,6 +220,7 @@ def _loadData(self, data): self.parentThumb = data.attrib.get('parentThumb') self.parentTitle = data.attrib.get('parentTitle') self.ratingKey = utils.cast(int, data.attrib.get('ratingKey')) + self.sourceURI = data.attrib.get('source') # remote playlist item self.summary = data.attrib.get('summary') self.tags = self.findItems(data, media.Tag) self.thumb = data.attrib.get('thumb') diff --git a/plexapi/video.py b/plexapi/video.py index 4a66c0a4f..9bfabcd4e 100644 --- a/plexapi/video.py +++ b/plexapi/video.py @@ -369,6 +369,8 @@ class Movie( ratings (List<:class:`~plexapi.media.Rating`>): List of rating objects. roles (List<:class:`~plexapi.media.Role`>): List of role objects. similar (List<:class:`~plexapi.media.Similar`>): List of Similar objects. + sourceURI (str): Remote server URI (server:///com.plexapp.plugins.library) + (remote playlist item only). studio (str): Studio that created movie (Di Bonaventura Pictures; 21 Laps Entertainment). tagline (str): Movie tag line (Back 2 Work; Who says men can't change?). theme (str): URL to theme resource (/library/metadata//theme/). @@ -412,6 +414,7 @@ def _loadData(self, data): self.ratings = self.findItems(data, media.Rating) self.roles = self.findItems(data, media.Role) self.similar = self.findItems(data, media.Similar) + self.sourceURI = data.attrib.get('source') # remote playlist item self.studio = data.attrib.get('studio') self.tagline = data.attrib.get('tagline') self.theme = data.attrib.get('theme') @@ -898,6 +901,8 @@ class Episode( ratings (List<:class:`~plexapi.media.Rating`>): List of rating objects. roles (List<:class:`~plexapi.media.Role`>): List of role objects. skipParent (bool): True if the show's seasons are set to hidden. + sourceURI (str): Remote server URI (server:///com.plexapp.plugins.library) + (remote playlist item only). viewOffset (int): View offset in milliseconds. writers (List<:class:`~plexapi.media.Writer`>): List of writers objects. year (int): Year the episode was released. @@ -940,6 +945,7 @@ def _loadData(self, data): self.ratings = self.findItems(data, media.Rating) self.roles = self.findItems(data, media.Role) self.skipParent = utils.cast(bool, data.attrib.get('skipParent', '0')) + self.sourceURI = data.attrib.get('source') # remote playlist item self.viewOffset = utils.cast(int, data.attrib.get('viewOffset', 0)) self.writers = self.findItems(data, media.Writer) self.year = utils.cast(int, data.attrib.get('year'))