[facebook] Modernize

This commit is contained in:
Jaime Marquínez Ferrándiz 2014-03-09 18:42:44 +01:00
parent b4a186b7be
commit 9d9d70c462

View File

@ -18,10 +18,8 @@ from ..utils import (
class FacebookIE(InfoExtractor): class FacebookIE(InfoExtractor):
"""Information Extractor for Facebook"""
_VALID_URL = r'''(?x) _VALID_URL = r'''(?x)
(?:https?://)?(?:\w+\.)?facebook\.com/ https?://(?:\w+\.)?facebook\.com/
(?:[^#?]*\#!/)? (?:[^#?]*\#!/)?
(?:video/video\.php|photo\.php|video/embed)\?(?:.*?) (?:video/video\.php|photo\.php|video/embed)\?(?:.*?)
(?:v|video_id)=(?P<id>[0-9]+) (?:v|video_id)=(?P<id>[0-9]+)
@ -37,14 +35,10 @@ class FacebookIE(InfoExtractor):
'id': '120708114770723', 'id': '120708114770723',
'ext': 'mp4', 'ext': 'mp4',
'duration': 279, 'duration': 279,
'title': 'PEOPLE ARE AWESOME 2013' 'title': 'PEOPLE ARE AWESOME 2013',
} }
} }
def report_login(self):
"""Report attempt to log in."""
self.to_screen('Logging in')
def _login(self): def _login(self):
(useremail, password) = self._get_login_info() (useremail, password) = self._get_login_info()
if useremail is None: if useremail is None:
@ -101,8 +95,6 @@ class FacebookIE(InfoExtractor):
def _real_extract(self, url): def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url) mobj = re.match(self._VALID_URL, url)
if mobj is None:
raise ExtractorError('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
@ -128,18 +120,14 @@ class FacebookIE(InfoExtractor):
video_url = video_data['sd_src'] video_url = video_data['sd_src']
if not video_url: if not video_url:
raise ExtractorError('Cannot find video URL') raise ExtractorError('Cannot find video URL')
video_duration = int(video_data['video_duration'])
thumbnail = video_data['thumbnail_src']
video_title = self._html_search_regex( video_title = self._html_search_regex(
r'<h2 class="uiHeaderTitle">([^<]*)</h2>', webpage, 'title') r'<h2 class="uiHeaderTitle">([^<]*)</h2>', webpage, 'title')
info = { return {
'id': video_id, 'id': video_id,
'title': video_title, 'title': video_title,
'url': video_url, 'url': video_url,
'ext': 'mp4', 'duration': int(video_data['video_duration']),
'duration': video_duration, 'thumbnail': video_data['thumbnail_src'],
'thumbnail': thumbnail,
} }
return [info]