Skip to content

Commit 99efddf

Browse files
authored
Merge pull request #336 from gstacks13/set_default_streams
Closes #334 - set default audio & subtitle stream Thanks for the updates!
2 parents 6d135a7 + e830f74 commit 99efddf

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

plexapi/media.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,35 @@ def audioStreams(self):
124124
def subtitleStreams(self):
125125
""" Returns a list of :class:`~plexapi.media.SubtitleStream` objects in this MediaPart. """
126126
return [stream for stream in self.streams if stream.streamType == SubtitleStream.STREAMTYPE]
127+
128+
def setDefaultAudioStream(self, stream):
129+
""" Set the default :class:`~plexapi.media.AudioStream` for this MediaPart.
127130
131+
Parameters:
132+
stream (:class:`~plexapi.media.AudioStream`): AudioStream to set as default
133+
"""
134+
if isinstance(stream, AudioStream):
135+
key = "/library/parts/%d?audioStreamID=%d&allParts=1" % (self.id, stream.id)
136+
else:
137+
key = "/library/parts/%d?audioStreamID=%d&allParts=1" % (self.id, stream)
138+
self._server.query(key, method=self._server._session.put)
139+
140+
def setDefaultSubtitleStream(self, stream):
141+
""" Set the default :class:`~plexapi.media.SubtitleStream` for this MediaPart.
142+
143+
Parameters:
144+
stream (:class:`~plexapi.media.SubtitleStream`): SubtitleStream to set as default.
145+
"""
146+
if isinstance(stream, SubtitleStream):
147+
key = "/library/parts/%d?subtitleStreamID=%d&allParts=1" % (self.id, stream.id)
148+
else:
149+
key = "/library/parts/%d?subtitleStreamID=%d&allParts=1" % (self.id, stream)
150+
self._server.query(key, method=self._server._session.put)
151+
152+
def resetDefaultSubtitleStream(self):
153+
""" Set default subtitle of this MediaPart to 'none'. """
154+
key = "/library/parts/%d?subtitleStreamID=0&allParts=1" % (self.id)
155+
self._server.query(key, method=self._server._session.put)
128156

129157
class MediaPartStream(PlexObject):
130158
""" Base class for media streams. These consist of video, audio and subtitles.

0 commit comments

Comments
 (0)