Example #1
0
 def get_format(formats: pytube.StreamQuery) -> Tuple[str, str, int]:
     """
     Decide on a format from all formats
     :param formats: formats
     :return:
     """
     if formats.get_by_itag(250):
         extracted_format = formats.get_by_itag(250)
         return (
             extracted_format.url,
             extracted_format.audio_codec,
             extracted_format.abr[:-4],
         )
     if formats.get_by_itag(251):
         extracted_format = formats.get_by_itag(251)
         return (
             extracted_format.url,
             extracted_format.audio_codec,
             extracted_format.abr[:-4],
         )
     if formats.get_by_itag(249):
         extracted_format = formats.get_by_itag(249)
         return (
             extracted_format.url,
             extracted_format.audio_codec,
             extracted_format.abr[:-4],
         )
     return (
         formats.filter(only_audio=True).first().url,
         formats.filter(only_audio=True).first().audio_codec,
         formats.filter(only_audio=True).first().abr[:-4],
     )
Example #2
0
    def streams(self) -> StreamQuery:
        """Interface to query both adaptive (DASH) and progressive streams.

        :rtype: :class:`StreamQuery <StreamQuery>`.
        """
        self.check_availability()
        return StreamQuery(self.fmt_streams)
Example #3
0
    def streams(self):
        """Interface to query both adaptive (DASH) and progressive streams.

        :rtype: :class:`StreamQuery <StreamQuery>`.
        """
        for s in self.fmt_streams:
            print s
        return StreamQuery([s for s in self.fmt_streams])
Example #4
0
def test_display_stream(youtube, stream):
    # Given
    stream.itag = 123
    stream.__repr__ = MagicMock(return_value="")
    youtube.streams = StreamQuery([stream])
    # When
    cli.display_streams(youtube)
    # Then
    stream.__repr__.assert_called()
Example #5
0
def test_display_stream(youtube, stream):
    stream.itag = 123
    stream.__repr__ = MagicMock(return_value="")
    youtube.streams = StreamQuery([stream])
    with patch.object(youtube.streams, "all",
                      wraps=youtube.streams.all) as wrapped_all:
        cli.display_streams(youtube)
        wrapped_all.assert_called()
        stream.__repr__.assert_called()
Example #6
0
def test_download_when_itag_is_found(youtube, stream):
    stream.itag = 123
    youtube.streams = StreamQuery([stream])
    with patch.object(youtube.streams,
                      "get_by_itag",
                      wraps=youtube.streams.get_by_itag) as wrapped_itag:
        cli.download(youtube, 123)
        wrapped_itag.assert_called_with(123)
    youtube.register_on_progress_callback.assert_called_with(cli.on_progress)
    stream.download.assert_called()