@@ -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
129157class MediaPartStream (PlexObject ):
130158 """ Base class for media streams. These consist of video, audio and subtitles.
0 commit comments