diff options
-rwxr-xr-x | youtube_dl/InfoExtractors.py | 156 |
1 files changed, 80 insertions, 76 deletions
diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py index 86a8ca511..d444e21d9 100755 --- a/youtube_dl/InfoExtractors.py +++ b/youtube_dl/InfoExtractors.py @@ -116,7 +116,7 @@ class InfoExtractor(object): if note is None: note = u'Downloading video webpage' if note is not False: - self._downloader.to_screen(u'[%s] %s: %s' % (self.IE_NAME, video_id, note)) + self.to_screen(u'%s: %s' % (video_id, note)) try: return compat_urllib_request.urlopen(url_or_request) except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: @@ -139,11 +139,15 @@ class InfoExtractor(object): url = url_or_request.get_full_url() except AttributeError: url = url_or_request - self._downloader.to_screen(u'Dumping request to ' + url) + self.to_screen(u'Dumping request to ' + url) dump = base64.b64encode(webpage_bytes).decode('ascii') self._downloader.to_screen(dump) return webpage_bytes.decode(encoding, 'replace') - + + def to_screen(self, msg): + """Print msg to screen, prefixing it with '[ie_name]'""" + self._downloader.to_screen(u'[%s] %s' % (self.IE_NAME, msg)) + #Methods for following #608 #They set the correct value of the '_type' key def video_result(self, video_info): @@ -236,48 +240,48 @@ class YoutubeIE(InfoExtractor): def report_lang(self): """Report attempt to set language.""" - self._downloader.to_screen(u'[youtube] Setting language') + self.to_screen(u'Setting language') def report_login(self): """Report attempt to log in.""" - self._downloader.to_screen(u'[youtube] Logging in') + self.to_screen(u'Logging in') def report_age_confirmation(self): """Report attempt to confirm age.""" - self._downloader.to_screen(u'[youtube] Confirming age') + self.to_screen(u'Confirming age') def report_video_webpage_download(self, video_id): """Report attempt to download video webpage.""" - self._downloader.to_screen(u'[youtube] %s: Downloading video webpage' % video_id) + self.to_screen(u'%s: Downloading video webpage' % video_id) def report_video_info_webpage_download(self, video_id): """Report attempt to download video info webpage.""" - self._downloader.to_screen(u'[youtube] %s: Downloading video info webpage' % video_id) + self.to_screen(u'%s: Downloading video info webpage' % video_id) def report_video_subtitles_download(self, video_id): """Report attempt to download video info webpage.""" - self._downloader.to_screen(u'[youtube] %s: Checking available subtitles' % video_id) + self.to_screen(u'%s: Checking available subtitles' % video_id) def report_video_subtitles_request(self, video_id, sub_lang, format): """Report attempt to download video info webpage.""" - self._downloader.to_screen(u'[youtube] %s: Downloading video subtitles for %s.%s' % (video_id, sub_lang, format)) + self.to_screen(u'%s: Downloading video subtitles for %s.%s' % (video_id, sub_lang, format)) def report_video_subtitles_available(self, video_id, sub_lang_list): """Report available subtitles.""" sub_lang = ",".join(list(sub_lang_list.keys())) - self._downloader.to_screen(u'[youtube] %s: Available subtitles for video: %s' % (video_id, sub_lang)) + self.to_screen(u'%s: Available subtitles for video: %s' % (video_id, sub_lang)) def report_information_extraction(self, video_id): """Report attempt to extract video information.""" - self._downloader.to_screen(u'[youtube] %s: Extracting video information' % video_id) + self.to_screen(u'%s: Extracting video information' % video_id) def report_unavailable_format(self, video_id, format): """Report extracted video URL.""" - self._downloader.to_screen(u'[youtube] %s: Format %s not available' % (video_id, format)) + self.to_screen(u'%s: Format %s not available' % (video_id, format)) def report_rtmp_download(self): """Indicate the download will use the RTMP protocol.""" - self._downloader.to_screen(u'[youtube] RTMP download detected') + self.to_screen(u'RTMP download detected') def _get_available_subtitles(self, video_id): self.report_video_subtitles_download(video_id) @@ -680,19 +684,19 @@ class MetacafeIE(InfoExtractor): def report_disclaimer(self): """Report disclaimer retrieval.""" - self._downloader.to_screen(u'[metacafe] Retrieving disclaimer') + self.to_screen(u'Retrieving disclaimer') def report_age_confirmation(self): """Report attempt to confirm age.""" - self._downloader.to_screen(u'[metacafe] Confirming age') + self.to_screen(u'Confirming age') def report_download_webpage(self, video_id): """Report webpage download.""" - self._downloader.to_screen(u'[metacafe] %s: Downloading webpage' % video_id) + self.to_screen(u'%s: Downloading webpage' % video_id) def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[metacafe] %s: Extracting information' % video_id) + self.to_screen(u'%s: Extracting information' % video_id) def _real_initialize(self): # Retrieve disclaimer @@ -799,7 +803,7 @@ class DailymotionIE(InfoExtractor): def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[dailymotion] %s: Extracting information' % video_id) + self.to_screen(u'%s: Extracting information' % video_id) def _real_extract(self, url): # Extract id and simplified title from URL @@ -828,7 +832,7 @@ class DailymotionIE(InfoExtractor): for key in ['hd1080URL', 'hd720URL', 'hqURL', 'sdURL', 'ldURL', 'video_url']: if key in flashvars: max_quality = key - self._downloader.to_screen(u'[dailymotion] Using %s' % key) + self.to_screen(u'Using %s' % key) break else: self._downloader.report_error(u'unable to extract video URL') @@ -887,11 +891,11 @@ class PhotobucketIE(InfoExtractor): def report_download_webpage(self, video_id): """Report webpage download.""" - self._downloader.to_screen(u'[photobucket] %s: Downloading webpage' % video_id) + self.to_screen(u'%s: Downloading webpage' % video_id) def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[photobucket] %s: Extracting information' % video_id) + self.to_screen(u'%s: Extracting information' % video_id) def _real_extract(self, url): # Extract id from URL @@ -956,11 +960,11 @@ class YahooIE(InfoExtractor): def report_download_webpage(self, video_id): """Report webpage download.""" - self._downloader.to_screen(u'[video.yahoo] %s: Downloading webpage' % video_id) + self.to_screen(u'%s: Downloading webpage' % video_id) def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[video.yahoo] %s: Extracting information' % video_id) + self.to_screen(u'%s: Extracting information' % video_id) def _real_extract(self, url, new_video=True): # Extract ID from URL @@ -1096,11 +1100,11 @@ class VimeoIE(InfoExtractor): def report_download_webpage(self, video_id): """Report webpage download.""" - self._downloader.to_screen(u'[vimeo] %s: Downloading webpage' % video_id) + self.to_screen(u'%s: Downloading webpage' % video_id) def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[vimeo] %s: Extracting information' % video_id) + self.to_screen(u'%s: Extracting information' % video_id) def _real_extract(self, url, new_video=True): # Extract ID from URL @@ -1182,7 +1186,7 @@ class VimeoIE(InfoExtractor): video_quality = files[quality][0][2] video_codec = files[quality][0][0] video_extension = files[quality][0][1] - self._downloader.to_screen(u'[vimeo] %s: Downloading %s file at %s quality' % (video_id, video_codec.upper(), video_quality)) + self.to_screen(u'%s: Downloading %s file at %s quality' % (video_id, video_codec.upper(), video_quality)) break else: self._downloader.report_error(u'no known codec found') @@ -1217,11 +1221,11 @@ class ArteTvIE(InfoExtractor): def report_download_webpage(self, video_id): """Report webpage download.""" - self._downloader.to_screen(u'[arte.tv] %s: Downloading webpage' % video_id) + self.to_screen(u'%s: Downloading webpage' % video_id) def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[arte.tv] %s: Extracting information' % video_id) + self.to_screen(u'%s: Extracting information' % video_id) def fetch_webpage(self, url): request = compat_urllib_request.Request(url) @@ -1352,12 +1356,12 @@ class GenericIE(InfoExtractor): def report_download_webpage(self, video_id): """Report webpage download.""" if not self._downloader.params.get('test', False): - self._downloader.to_screen(u'WARNING: Falling back on generic information extractor.') - self._downloader.to_screen(u'[generic] %s: Downloading webpage' % video_id) + self._downloader.report_warning(u'Falling back on generic information extractor.') + self.to_screen(u'%s: Downloading webpage' % video_id) def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[generic] %s: Extracting information' % video_id) + self.to_screen(u'%s: Extracting information' % video_id) def report_following_redirect(self, new_url): """Report information extraction.""" @@ -1575,7 +1579,7 @@ class GoogleSearchIE(InfoExtractor): def report_download_page(self, query, pagenum): """Report attempt to download playlist page with given number.""" query = query.decode(preferredencoding()) - self._downloader.to_screen(u'[video.google] query "%s": Downloading page %s' % (query, pagenum)) + self.to_screen(u'query "%s": Downloading page %s' % (query, pagenum)) def _real_extract(self, query): mobj = re.match(self._VALID_URL, query) @@ -1659,7 +1663,7 @@ class YahooSearchIE(InfoExtractor): def report_download_page(self, query, pagenum): """Report attempt to download playlist page with given number.""" query = query.decode(preferredencoding()) - self._downloader.to_screen(u'[video.yahoo] query "%s": Downloading page %s' % (query, pagenum)) + self.to_screen(u'query "%s": Downloading page %s' % (query, pagenum)) def _real_extract(self, query): mobj = re.match(self._VALID_URL, query) @@ -1970,8 +1974,8 @@ class BlipTVUserIE(InfoExtractor): def report_download_page(self, username, pagenum): """Report attempt to download user page.""" - self._downloader.to_screen(u'[%s] user %s: Downloading video ids from page %d' % - (self.IE_NAME, username, pagenum)) + self.to_screen(u'user %s: Downloading video ids from page %d' % + (username, pagenum)) def _real_extract(self, url): # Extract username @@ -2045,11 +2049,11 @@ class DepositFilesIE(InfoExtractor): def report_download_webpage(self, file_id): """Report webpage download.""" - self._downloader.to_screen(u'[DepositFiles] %s: Downloading webpage' % file_id) + self.to_screen(u'%s: Downloading webpage' % file_id) def report_extraction(self, file_id): """Report information extraction.""" - self._downloader.to_screen(u'[DepositFiles] %s: Extracting information' % file_id) + self.to_screen(u'%s: Extracting information' % file_id) def _real_extract(self, url): file_id = url.split('/')[-1] @@ -2108,7 +2112,7 @@ class FacebookIE(InfoExtractor): def report_login(self): """Report attempt to log in.""" - self._downloader.to_screen(u'[%s] Logging in' % self.IE_NAME) + self.to_screen(u'Logging in') def _real_initialize(self): if self._downloader is None: @@ -2206,11 +2210,11 @@ class BlipTVIE(InfoExtractor): def report_extraction(self, file_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Extracting information' % (self.IE_NAME, file_id)) + self.to_screen(u'%s: Extracting information' % file_id) def report_direct_download(self, title): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Direct download detected' % (self.IE_NAME, title)) + self.to_screen(u'%s: Direct download detected' % title) def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -2310,7 +2314,7 @@ class MyVideoIE(InfoExtractor): def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[myvideo] %s: Extracting information' % video_id) + self.to_screen(u'%s: Extracting information' % video_id) def _real_extract(self,url): mobj = re.match(self._VALID_URL, url) @@ -2390,13 +2394,13 @@ class ComedyCentralIE(InfoExtractor): return re.match(cls._VALID_URL, url, re.VERBOSE) is not None def report_extraction(self, episode_id): - self._downloader.to_screen(u'[comedycentral] %s: Extracting information' % episode_id) + self.to_screen(u'%s: Extracting information' % episode_id) def report_config_download(self, episode_id, media_id): - self._downloader.to_screen(u'[comedycentral] %s: Downloading configuration for %s' % (episode_id, media_id)) + self.to_screen(u'%s: Downloading configuration for %s' % (episode_id, media_id)) def report_index_download(self, episode_id): - self._downloader.to_screen(u'[comedycentral] %s: Downloading show index' % episode_id) + self.to_screen(u'%s: Downloading show index' % episode_id) def _print_formats(self, formats): print('Available formats:') @@ -2551,10 +2555,10 @@ class EscapistIE(InfoExtractor): IE_NAME = u'escapist' def report_extraction(self, showName): - self._downloader.to_screen(u'[escapist] %s: Extracting information' % showName) + self.to_screen(u'%s: Extracting information' % showName) def report_config_download(self, showName): - self._downloader.to_screen(u'[escapist] %s: Downloading configuration' % showName) + self.to_screen(u'%s: Downloading configuration' % showName) def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -2627,11 +2631,11 @@ class CollegeHumorIE(InfoExtractor): def report_manifest(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Downloading XML manifest' % (self.IE_NAME, video_id)) + self.to_screen(u'%s: Downloading XML manifest' % video_id) def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Extracting information' % (self.IE_NAME, video_id)) + self.to_screen(u'%s: Extracting information' % video_id) def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -2698,7 +2702,7 @@ class XVideosIE(InfoExtractor): def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Extracting information' % (self.IE_NAME, video_id)) + self.to_screen(u'%s: Extracting information' % video_id) def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -2766,11 +2770,11 @@ class SoundcloudIE(InfoExtractor): def report_resolve(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Resolving id' % (self.IE_NAME, video_id)) + self.to_screen(u'%s: Resolving id' % video_id) def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Retrieving stream' % (self.IE_NAME, video_id)) + self.to_screen(u'%s: Retrieving stream' % video_id) def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -2839,11 +2843,11 @@ class SoundcloudSetIE(InfoExtractor): def report_resolve(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Resolving id' % (self.IE_NAME, video_id)) + self.to_screen(u'%s: Resolving id' % video_id) def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Retrieving stream' % (self.IE_NAME, video_id)) + self.to_screen(u'%s: Retrieving stream' % video_id) def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -2910,7 +2914,7 @@ class InfoQIE(InfoExtractor): def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Extracting information' % (self.IE_NAME, video_id)) + self.to_screen(u'%s: Extracting information' % video_id) def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -2970,11 +2974,11 @@ class MixcloudIE(InfoExtractor): def report_download_json(self, file_id): """Report JSON download.""" - self._downloader.to_screen(u'[%s] Downloading json' % self.IE_NAME) + self.to_screen(u'Downloading json') def report_extraction(self, file_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Extracting information' % (self.IE_NAME, file_id)) + self.to_screen(u'%s: Extracting information' % file_id) def get_urls(self, jsonData, fmt, bitrate='best'): """Get urls from 'audio_formats' section in json""" @@ -3081,11 +3085,11 @@ class StanfordOpenClassroomIE(InfoExtractor): def report_download_webpage(self, objid): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Downloading webpage' % (self.IE_NAME, objid)) + self.to_screen(u'%s: Downloading webpage' % objid) def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Extracting information' % (self.IE_NAME, video_id)) + self.to_screen(u'%s: Extracting information' % video_id) def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -3193,7 +3197,7 @@ class MTVIE(InfoExtractor): def report_extraction(self, video_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Extracting information' % (self.IE_NAME, video_id)) + self.to_screen(u'%s: Extracting information' % video_id) def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -3271,11 +3275,11 @@ class YoukuIE(InfoExtractor): def report_download_webpage(self, file_id): """Report webpage download.""" - self._downloader.to_screen(u'[%s] %s: Downloading webpage' % (self.IE_NAME, file_id)) + self.to_screen(u'%s: Downloading webpage' % file_id) def report_extraction(self, file_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Extracting information' % (self.IE_NAME, file_id)) + self.to_screen(u'%s: Extracting information' % file_id) def _gen_sid(self): nowTime = int(time.time() * 1000) @@ -3388,11 +3392,11 @@ class XNXXIE(InfoExtractor): def report_webpage(self, video_id): """Report information extraction""" - self._downloader.to_screen(u'[%s] %s: Downloading webpage' % (self.IE_NAME, video_id)) + self.to_screen(u'%s: Downloading webpage' % video_id) def report_extraction(self, video_id): """Report information extraction""" - self._downloader.to_screen(u'[%s] %s: Extracting information' % (self.IE_NAME, video_id)) + self.to_screen(u'%s: Extracting information' % video_id) def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -3452,23 +3456,23 @@ class GooglePlusIE(InfoExtractor): def report_extract_entry(self, url): """Report downloading extry""" - self._downloader.to_screen(u'[plus.google] Downloading entry: %s' % url) + self.to_screen(u'Downloading entry: %s' % url) def report_date(self, upload_date): """Report downloading extry""" - self._downloader.to_screen(u'[plus.google] Entry date: %s' % upload_date) + self.to_screen(u'Entry date: %s' % upload_date) def report_uploader(self, uploader): """Report downloading extry""" - self._downloader.to_screen(u'[plus.google] Uploader: %s' % uploader) + self.to_screen(u'Uploader: %s' % uploader) def report_title(self, video_title): """Report downloading extry""" - self._downloader.to_screen(u'[plus.google] Title: %s' % video_title) + self.to_screen(u'Title: %s' % video_title) def report_extract_vid_page(self, video_page): """Report information extraction.""" - self._downloader.to_screen(u'[plus.google] Extracting video page: %s' % video_page) + self.to_screen(u'Extracting video page: %s' % video_page) def _real_extract(self, url): # Extract id from URL @@ -3614,12 +3618,12 @@ class JustinTVIE(InfoExtractor): def report_extraction(self, file_id): """Report information extraction.""" - self._downloader.to_screen(u'[%s] %s: Extracting information' % (self.IE_NAME, file_id)) + self.to_screen(u'%s: Extracting information' % file_id) def report_download_page(self, channel, offset): """Report attempt to download a single page of videos.""" - self._downloader.to_screen(u'[%s] %s: Downloading video information from %d to %d' % - (self.IE_NAME, channel, offset, offset + self._JUSTIN_PAGE_LIMIT)) + self.to_screen(u'%s: Downloading video information from %d to %d' % + (channel, offset, offset + self._JUSTIN_PAGE_LIMIT)) # Return count of items, list of *valid* items def _parse_page(self, url): @@ -3948,7 +3952,7 @@ class YouPornIE(InfoExtractor): if(len(links) == 0): raise ExtractorError(u'ERROR: no known formats available for video') - self._downloader.to_screen(u'[youporn] Links found: %d' % len(links)) + self.to_screen(u'Links found: %d' % len(links)) formats = [] for link in links: @@ -3984,7 +3988,7 @@ class YouPornIE(InfoExtractor): return req_format = self._downloader.params.get('format', None) - self._downloader.to_screen(u'[youporn] Format: %s' % req_format) + self.to_screen(u'Format: %s' % req_format) if req_format is None or req_format == 'best': return [formats[0]] @@ -4179,7 +4183,7 @@ class TEDIE(InfoExtractor): else : playlist_id=m.group('playlist_id') name=m.group('name') - self._downloader.to_screen(u'[%s] Getting info of playlist %s: "%s"' % (self.IE_NAME,playlist_id,name)) + self.to_screen(u'Getting info of playlist %s: "%s"' % (playlist_id,name)) return [self._playlist_videos_info(url,name,playlist_id)] def _talk_video_link(self,mediaSlug): @@ -4404,7 +4408,7 @@ class ARDIE(InfoExtractor): # there's two possibilities: RTMP stream or HTTP download info = {'id': video_id, 'title': title, 'ext': 'mp4'} if stream['rtmp_url']: - self._downloader.to_screen(u'[%s] RTMP download detected' % self.IE_NAME) + self.to_screen(u'RTMP download detected') assert stream['video_url'].startswith('mp4:') info["url"] = stream["rtmp_url"] info["play_path"] = stream['video_url'] |