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], )
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)
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])
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()
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()
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()