platypush/plugins/media/chromecast/__init__.py
def play(self, resource, content_type=None, chromecast=None, title=None,
             image_url=None, autoplay=True, current_time=0,
             stream_type=STREAM_TYPE_BUFFERED, subtitles=None,
             subtitles_lang='en-US', subtitles_mime='text/vtt',
             subtitle_id=1):
        """
        Cast media to a visible Chromecast

        :param resource: Media to cast
        :type resource: str

        :param content_type: Content type as a MIME type string
        :type content_type: str

        :param chromecast: Chromecast to cast to. If none is specified, then the default configured Chromecast
            will be used.
        :type chromecast: str

        :param title: Optional title
        :type title: str

        :param image_url: URL of the image to use for the thumbnail
        :type image_url: str

        :param autoplay: Set it to false if you don't want the content to start playing immediately (default: true)
        :type autoplay: bool

        :param current_time: Time to start the playback in seconds (default: 0)
        :type current_time: int

        :param stream_type: Type of stream to cast. Can be BUFFERED (default), LIVE or UNKNOWN
        :type stream_type: str

        :param subtitles: URL of the subtitles to be shown
        :type subtitles: str

        :param subtitles_lang: Subtitles language (default: en-US)
        :type subtitles_lang: str

        :param subtitles_mime: Subtitles MIME type (default: text/vtt)
        :type subtitles_mime: str

        :param subtitle_id: ID of the subtitles to be loaded (default: 1)
        :type subtitle_id: int
        """

        from pychromecast.controllers.youtube import YouTubeController
        if not chromecast:
            chromecast = self.chromecast

        post_event(MediaPlayRequestEvent, resource=resource, device=chromecast)
        cast = self.get_chromecast(chromecast)

        mc = cast.media_controller
        yt = self._get_youtube_url(resource)

        if yt:
            self.logger.info('Playing YouTube video {} on {}'.format(
                yt, chromecast))

            hndl = YouTubeController()
            cast.register_handler(hndl)
            hndl.update_screen_id()
            return hndl.play_video(yt)

        resource = self._get_resource(resource)

        if not content_type:
            content_type = get_mime_type(resource)

        if not content_type:
            raise RuntimeError('content_type required to process media {}'.
                               format(resource))

        if not resource.startswith('http://') and \
                not resource.startswith('https://'):
            resource = self.start_streaming(resource).output['url']
            self.logger.info('HTTP media stream started on {}'.format(resource))

        self.logger.info('Playing {} on {}'.format(resource, chromecast))

        mc.play_media(resource, content_type, title=title, thumb=image_url,
                      current_time=current_time, autoplay=autoplay,
                      stream_type=stream_type, subtitles=subtitles,
                      subtitles_lang=subtitles_lang,
                      subtitles_mime=subtitles_mime, subtitle_id=subtitle_id)

        if subtitles:
            mc.register_status_listener(self.SubtitlesAsyncHandler(mc, subtitle_id))

        mc.block_until_active()

        if self.volume:
            self.set_volume(volume=self.volume, chromecast=chromecast)

        return self.status(chromecast=chromecast)

        Cast media to a visible Chromecast

        :param resource: Media to cast
        :type resource: str

        :param content_type: Content type as a MIME type string
        :type content_type: str

        :param chromecast: Chromecast to cast to. If none is specified, then the default configured Chromecast
            will be used.
        :type chromecast: str

        :param title: Optional title
        :type title: str

        :param image_url: URL of the image to use for the thumbnail
        :type image_url: str

        :param autoplay: Set it to false if you don't want the content to start playing immediately (default: true)
        :type autoplay: bool

        :param current_time: Time to start the playback in seconds (default: 0)
        :type current_time: int

        :param stream_type: Type of stream to cast. Can be BUFFERED (default), LIVE or UNKNOWN
        :type stream_type: str

        :param subtitles: URL of the subtitles to be shown
        :type subtitles: str

        :param subtitles_lang: Subtitles language (default: en-US)
        :type subtitles_lang: str

        :param subtitles_mime: Subtitles MIME type (default: text/vtt)
        :type subtitles_mime: str

        :param subtitle_id: ID of the subtitles to be loaded (default: 1)
        :type subtitle_id: int
        
Cast media to a visible Chromecast
Cast media to a visible Chromecast
def play(self, resource, content_type=None, chromecast=None, title=None,
             image_url=None, autoplay=True, current_time=0,
             stream_type=STREAM_TYPE_BUFFERED, subtitles=None,
             subtitles_lang='en-US', subtitles_mime='text/vtt',
             subtitle_id=1):
        from pychromecast.controllers.youtube import YouTubeController
        if not chromecast:
            chromecast = self.chromecast
        post_event(MediaPlayRequestEvent, resource=resource, device=chromecast)
        cast = self.get_chromecast(chromecast)
        mc = cast.media_controller
        yt = self._get_youtube_url(resource)
        if yt:
            self.logger.info('Playing YouTube video {} on {}'.format(
                yt, chromecast))
            hndl = YouTubeController()
            cast.register_handler(hndl)
            hndl.update_screen_id()
            return hndl.play_video(yt)
        resource = self._get_resource(resource)
        if not content_type:
            content_type = get_mime_type(resource)
        if not content_type:
            raise RuntimeError('content_type required to process media {}'.
                               format(resource))
        if not resource.startswith('http://') and \
                not resource.startswith('https://'):
            resource = self.start_streaming(resource).output['url']
            self.logger.info('HTTP media stream started on {}'.format(resource))
        self.logger.info('Playing {} on {}'.format(resource, chromecast))
        mc.play_media(resource, content_type, title=title, thumb=image_url,
                      current_time=current_time, autoplay=autoplay,
                      stream_type=stream_type, subtitles=subtitles,
                      subtitles_lang=subtitles_lang,
                      subtitles_mime=subtitles_mime, subtitle_id=subtitle_id)
        if subtitles:
            mc.register_status_listener(self.SubtitlesAsyncHandler(mc, subtitle_id))
        mc.block_until_active()
        if self.volume:
            self.set_volume(volume=self.volume, chromecast=chromecast)
        return self.status(chromecast=chromecast)
def play ( self , resource , content_type = None , chromecast = None , title = None , image_url = None , autoplay = True , current_time = 0 , stream_type = STREAM_TYPE_BUFFERED , subtitles = None , subtitles_lang = 'en-US' , subtitles_mime = 'text/vtt' , subtitle_id = 1 ) : from pychromecast . controllers . youtube import YouTubeController if not chromecast : chromecast = self . chromecast post_event ( MediaPlayRequestEvent , resource = resource , device = chromecast ) cast = self . get_chromecast ( chromecast ) mc = cast . media_controller yt = self . _get_youtube_url ( resource ) if yt : self . logger . info ( 'Playing YouTube video {} on {}' . format ( yt , chromecast ) ) hndl = YouTubeController ( ) cast . register_handler ( hndl ) hndl . update_screen_id ( ) return hndl . play_video ( yt ) resource = self . _get_resource ( resource ) if not content_type : content_type = get_mime_type ( resource ) if not content_type : raise RuntimeError ( 'content_type required to process media {}' . format ( resource ) ) if not resource . startswith ( 'http://' ) and not resource . startswith ( 'https://' ) : resource = self . start_streaming ( resource ) . output [ 'url' ] self . logger . info ( 'HTTP media stream started on {}' . format ( resource ) ) self . logger . info ( 'Playing {} on {}' . format ( resource , chromecast ) ) mc . play_media ( resource , content_type , title = title , thumb = image_url , current_time = current_time , autoplay = autoplay , stream_type = stream_type , subtitles = subtitles , subtitles_lang = subtitles_lang , subtitles_mime = subtitles_mime , subtitle_id = subtitle_id ) if subtitles : mc . register_status_listener ( self . SubtitlesAsyncHandler ( mc , subtitle_id ) ) mc . block_until_active ( ) if self . volume : self . set_volume ( volume = self . volume , chromecast = chromecast ) return self . status ( chromecast = chromecast )
Cast media to a visible Chromecast
Cast media to a visible Chromecast
"""
        Cast media to a visible Chromecast

        :param resource: Media to cast
        :type resource: str

        :param content_type: Content type as a MIME type string
        :type content_type: str

        :param chromecast: Chromecast to cast to. If none is specified, then the default configured Chromecast
            will be used.
        :type chromecast: str

        :param title: Optional title
        :type title: str

        :param image_url: URL of the image to use for the thumbnail
        :type image_url: str

        :param autoplay: Set it to false if you don't want the content to start playing immediately (default: true)
        :type autoplay: bool

        :param current_time: Time to start the playback in seconds (default: 0)
        :type current_time: int

        :param stream_type: Type of stream to cast. Can be BUFFERED (default), LIVE or UNKNOWN
        :type stream_type: str

        :param subtitles: URL of the subtitles to be shown
        :type subtitles: str

        :param subtitles_lang: Subtitles language (default: en-US)
        :type subtitles_lang: str

        :param subtitles_mime: Subtitles MIME type (default: text/vtt)
        :type subtitles_mime: str

        :param subtitle_id: ID of the subtitles to be loaded (default: 1)
        :type subtitle_id: int
        """
self
resource
Media to cast
Media to cast
content_type
Content type as a MIME type string
Content type as a MIME type string
chromecast
Chromecast to cast to. If none is specified, then the default configured Chromecast
will be used.
Chromecast to cast to . If none is specified then the default configured Chromecast will be used .
title
None
image_url
URL of the image to use for the thumbnail
URL of the image to use for the thumbnail
autoplay
Set it to false if you don't want the content to start playing immediately (default: true)
Set it to false if you don ' t want the content to start playing immediately ( default : true )
current_time
Time to start the playback in seconds (default: 0)
Time to start the playback in seconds ( default : 0 )
stream_type
Type of stream to cast. Can be BUFFERED (default), LIVE or UNKNOWN
Type of stream to cast . Can be BUFFERED ( default ) LIVE or UNKNOWN
subtitles
URL of the subtitles to be shown
URL of the subtitles to be shown
subtitles_lang
Subtitles language (default: en-US)
Subtitles language ( default : en - US )
subtitles_mime
Subtitles MIME type (default: text/vtt)
Subtitles MIME type ( default : text / vtt )
subtitle_id
ID of the subtitles to be loaded (default: 1)
ID of the subtitles to be loaded ( default : 1 )