Exemplo n.º 1
0
    def download(self):
        self._init_download()

        # Select appropriate stream for required bitrate
        stream = self._get_video_stream()

        # Get video playlist
        r = self._do_proxies_requests(stream.uri, cookies=self._cookies)
        m3u8_file = r.text
        self._video_playlist = m3u8.parse(m3u8_file,
                                          os.path.dirname(stream.uri))
        self._segments = self._video_playlist.segments
        self._total_segments = len(self._segments)

        # Get decryption key
        uri = self._segments[0].key.uri
        r = self._do_proxies_requests(uri, cookies=self._cookies)
        self._key = r.content

        # Download segments
        with open(self._output_path, 'wb') as self._of:
            self._notify_dl_start()
            self._notify_progress_update()
            for segindex in range(len(self._segments)):
                self._download_segment(segindex)
                self._done_segments += 1
                self._done_segments_bytes = self._done_bytes
                self._notify_progress_update()
Exemplo n.º 2
0
Arquivo: dl.py Projeto: k3c/pytoutv
    def download(self):
        self._init_download()

        # Select appropriate stream for required bitrate
        stream = self._get_video_stream()

        # Get video playlist
        r = requests.get(stream.uri, headers=toutv.config.HEADERS,
                         cookies=self._cookies)
        m3u8_file = r.text
        self._video_playlist = m3u8.parse(m3u8_file,
                                          os.path.dirname(stream.uri))
        self._segments = self._video_playlist.segments
        self._segments_count = len(self._segments)

        # Get decryption key
        uri = self._segments[0].key.uri
        r = requests.get(uri, headers=toutv.config.HEADERS,
                         cookies=self._cookies)
        self._key = r.content

        # Download segments
        with open(self._output_path, 'wb') as self._of:
            self._notify_dl_start()
            self._notify_progress_update()
            for segindex in range(len(self._segments)):
                if self._do_cancel:
                    raise CancelledException()
                self._download_segment(segindex)
                self._total_segments += 1
                self._notify_progress_update()
Exemplo n.º 3
0
    def get_episode_playlist_cookies(episode, proxies=None):
        url = Downloader.get_episode_playlist_url(episode)

        r = Downloader._do_request(url, proxies=proxies, timeout=15)

        # Parse M3U8 file
        m3u8_file = r.text
        playlist = m3u8.parse(m3u8_file, os.path.dirname(url))

        return playlist, r.cookies
Exemplo n.º 4
0
Arquivo: dl.py Projeto: k3c/pytoutv
    def get_episode_playlist_cookies(episode):
        url = Downloader.get_episode_playlist_url(episode)

        # Do requests
        r = requests.get(url, headers=toutv.config.HEADERS)

        # Parse M3U8 file
        m3u8_file = r.text
        playlist = m3u8.parse(m3u8_file, os.path.dirname(url))

        return playlist, r.cookies