mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[facebook] Add support for embeds
Example URL: http://www.hostblogger.de/blog/archives/6181-Auto-jagt-Betonmischer.html
This commit is contained in:
		| @@ -17,7 +17,12 @@ from ..utils import ( | |||||||
| class FacebookIE(InfoExtractor): | class FacebookIE(InfoExtractor): | ||||||
|     """Information Extractor for Facebook""" |     """Information Extractor for Facebook""" | ||||||
|  |  | ||||||
|     _VALID_URL = r'^(?:https?://)?(?:\w+\.)?facebook\.com/(?:[^#?]*#!/)?(?:video/video|photo)\.php\?(?:.*?)v=(?P<ID>\d+)(?:.*)' |     _VALID_URL = r'''(?x) | ||||||
|  |         (?:https?://)?(?:\w+\.)?facebook\.com/ | ||||||
|  |         (?:[^#?]*\#!/)? | ||||||
|  |         (?:video/video\.php|photo\.php|video/embed)\?(?:.*?) | ||||||
|  |         (?:v|video_id)=(?P<id>[0-9]+) | ||||||
|  |         (?:.*)''' | ||||||
|     _LOGIN_URL = 'https://www.facebook.com/login.php?next=http%3A%2F%2Ffacebook.com%2Fhome.php&login_attempt=1' |     _LOGIN_URL = 'https://www.facebook.com/login.php?next=http%3A%2F%2Ffacebook.com%2Fhome.php&login_attempt=1' | ||||||
|     _CHECKPOINT_URL = 'https://www.facebook.com/checkpoint/?next=http%3A%2F%2Ffacebook.com%2Fhome.php&_fb_noscript=1' |     _CHECKPOINT_URL = 'https://www.facebook.com/checkpoint/?next=http%3A%2F%2Ffacebook.com%2Fhome.php&_fb_noscript=1' | ||||||
|     _NETRC_MACHINE = 'facebook' |     _NETRC_MACHINE = 'facebook' | ||||||
| @@ -90,7 +95,7 @@ class FacebookIE(InfoExtractor): | |||||||
|         mobj = re.match(self._VALID_URL, url) |         mobj = re.match(self._VALID_URL, url) | ||||||
|         if mobj is None: |         if mobj is None: | ||||||
|             raise ExtractorError(u'Invalid URL: %s' % url) |             raise ExtractorError(u'Invalid URL: %s' % url) | ||||||
|         video_id = mobj.group('ID') |         video_id = mobj.group('id') | ||||||
|  |  | ||||||
|         url = 'https://www.facebook.com/video/video.php?v=%s' % video_id |         url = 'https://www.facebook.com/video/video.php?v=%s' % video_id | ||||||
|         webpage = self._download_webpage(url, video_id) |         webpage = self._download_webpage(url, video_id) | ||||||
|   | |||||||
| @@ -319,6 +319,12 @@ class GenericIE(InfoExtractor): | |||||||
|         if mobj is not None: |         if mobj is not None: | ||||||
|             return self.url_result(mobj.group('url'), 'Novamov') |             return self.url_result(mobj.group('url'), 'Novamov') | ||||||
|  |  | ||||||
|  |         # Look for embedded Facebook player | ||||||
|  |         mobj = re.search( | ||||||
|  |             r'<iframe[^>]+?src=(["\'])(?P<url>https://www.facebook.com/video/embed.+?)\1', webpage) | ||||||
|  |         if mobj is not None: | ||||||
|  |             return self.url_result(mobj.group('url'), 'Facebook') | ||||||
|  |  | ||||||
|         # Start with something easy: JW Player in SWFObject |         # Start with something easy: JW Player in SWFObject | ||||||
|         mobj = re.search(r'flashvars: [\'"](?:.*&)?file=(http[^\'"&]*)', webpage) |         mobj = re.search(r'flashvars: [\'"](?:.*&)?file=(http[^\'"&]*)', webpage) | ||||||
|         if mobj is None: |         if mobj is None: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister