mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	Google Video has been shutdown as of 11/15/2012. All videos on Google Video will be migrated to YouTube by the end of 2012.
This commit is contained in:
		| @@ -731,99 +731,6 @@ class DailymotionIE(InfoExtractor): | ||||
|         }] | ||||
|  | ||||
|  | ||||
| class GoogleIE(InfoExtractor): | ||||
|     """Information extractor for video.google.com.""" | ||||
|  | ||||
|     _VALID_URL = r'(?:http://)?video\.google\.(?:com(?:\.au)?|co\.(?:uk|jp|kr|cr)|ca|de|es|fr|it|nl|pl)/videoplay\?docid=([^\&]+).*' | ||||
|     IE_NAME = u'video.google' | ||||
|  | ||||
|     def __init__(self, downloader=None): | ||||
|         InfoExtractor.__init__(self, downloader) | ||||
|  | ||||
|     def report_download_webpage(self, video_id): | ||||
|         """Report webpage download.""" | ||||
|         self._downloader.to_screen(u'[video.google] %s: Downloading webpage' % video_id) | ||||
|  | ||||
|     def report_extraction(self, video_id): | ||||
|         """Report information extraction.""" | ||||
|         self._downloader.to_screen(u'[video.google] %s: Extracting information' % video_id) | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|         # Extract id from URL | ||||
|         mobj = re.match(self._VALID_URL, url) | ||||
|         if mobj is None: | ||||
|             self._downloader.trouble(u'ERROR: Invalid URL: %s' % url) | ||||
|             return | ||||
|  | ||||
|         video_id = mobj.group(1) | ||||
|  | ||||
|         video_extension = 'mp4' | ||||
|  | ||||
|         # Retrieve video webpage to extract further information | ||||
|         request = compat_urllib_request.Request('http://video.google.com/videoplay?docid=%s&hl=en&oe=utf-8' % video_id) | ||||
|         try: | ||||
|             self.report_download_webpage(video_id) | ||||
|             webpage = compat_urllib_request.urlopen(request).read() | ||||
|         except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: | ||||
|             self._downloader.trouble(u'ERROR: Unable to retrieve video webpage: %s' % compat_str(err)) | ||||
|             return | ||||
|  | ||||
|         # Extract URL, uploader, and title from webpage | ||||
|         self.report_extraction(video_id) | ||||
|         mobj = re.search(r"download_url:'([^']+)'", webpage) | ||||
|         if mobj is None: | ||||
|             video_extension = 'flv' | ||||
|             mobj = re.search(r"(?i)videoUrl\\x3d(.+?)\\x26", webpage) | ||||
|         if mobj is None: | ||||
|             self._downloader.trouble(u'ERROR: unable to extract media URL') | ||||
|             return | ||||
|         mediaURL = compat_urllib_parse.unquote(mobj.group(1)) | ||||
|         mediaURL = mediaURL.replace('\\x3d', '\x3d') | ||||
|         mediaURL = mediaURL.replace('\\x26', '\x26') | ||||
|  | ||||
|         video_url = mediaURL | ||||
|  | ||||
|         mobj = re.search(r'<title>(.*)</title>', webpage) | ||||
|         if mobj is None: | ||||
|             self._downloader.trouble(u'ERROR: unable to extract title') | ||||
|             return | ||||
|         video_title = mobj.group(1).decode('utf-8') | ||||
|  | ||||
|         # Extract video description | ||||
|         mobj = re.search(r'<span id=short-desc-content>([^<]*)</span>', webpage) | ||||
|         if mobj is None: | ||||
|             self._downloader.trouble(u'ERROR: unable to extract video description') | ||||
|             return | ||||
|         video_description = mobj.group(1).decode('utf-8') | ||||
|         if not video_description: | ||||
|             video_description = 'No description available.' | ||||
|  | ||||
|         # Extract video thumbnail | ||||
|         if self._downloader.params.get('forcethumbnail', False): | ||||
|             request = compat_urllib_request.Request('http://video.google.com/videosearch?q=%s+site:video.google.com&hl=en' % abs(int(video_id))) | ||||
|             try: | ||||
|                 webpage = compat_urllib_request.urlopen(request).read() | ||||
|             except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: | ||||
|                 self._downloader.trouble(u'ERROR: Unable to retrieve video webpage: %s' % compat_str(err)) | ||||
|                 return | ||||
|             mobj = re.search(r'<img class=thumbnail-img (?:.* )?src=(http.*)>', webpage) | ||||
|             if mobj is None: | ||||
|                 self._downloader.trouble(u'ERROR: unable to extract video thumbnail') | ||||
|                 return | ||||
|             video_thumbnail = mobj.group(1) | ||||
|         else:   # we need something to pass to process_info | ||||
|             video_thumbnail = '' | ||||
|  | ||||
|         return [{ | ||||
|             'id':       video_id.decode('utf-8'), | ||||
|             'url':      video_url.decode('utf-8'), | ||||
|             'uploader': None, | ||||
|             'upload_date':  None, | ||||
|             'title':    video_title, | ||||
|             'ext':      video_extension.decode('utf-8'), | ||||
|         }] | ||||
|  | ||||
|  | ||||
| class PhotobucketIE(InfoExtractor): | ||||
|     """Information extractor for photobucket.com.""" | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Filippo Valsorda
					Filippo Valsorda