mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 04:27:07 -05: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):
 | 
			
		||||
    """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'
 | 
			
		||||
    _CHECKPOINT_URL = 'https://www.facebook.com/checkpoint/?next=http%3A%2F%2Ffacebook.com%2Fhome.php&_fb_noscript=1'
 | 
			
		||||
    _NETRC_MACHINE = 'facebook'
 | 
			
		||||
@@ -90,7 +95,7 @@ class FacebookIE(InfoExtractor):
 | 
			
		||||
        mobj = re.match(self._VALID_URL, url)
 | 
			
		||||
        if mobj is None:
 | 
			
		||||
            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
 | 
			
		||||
        webpage = self._download_webpage(url, video_id)
 | 
			
		||||
 
 | 
			
		||||
@@ -319,6 +319,12 @@ class GenericIE(InfoExtractor):
 | 
			
		||||
        if mobj is not None:
 | 
			
		||||
            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
 | 
			
		||||
        mobj = re.search(r'flashvars: [\'"](?:.*&)?file=(http[^\'"&]*)', webpage)
 | 
			
		||||
        if mobj is None:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user