X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Ffacebook.py;h=afb34ce511f1bf2f526a03acc9083df2eba2a77c;hb=cc7fec5818254f4679896823c7de9d17f50201ca;hp=f7cf700b5df8ecbcd714fd23db3dc7ff477adb73;hpb=11f75cac3db14681b306633a496e9aaae2cfc0a7;p=youtube-dl diff --git a/youtube_dl/extractor/facebook.py b/youtube_dl/extractor/facebook.py index f7cf700b5..afb34ce51 100644 --- a/youtube_dl/extractor/facebook.py +++ b/youtube_dl/extractor/facebook.py @@ -21,14 +21,14 @@ class FacebookIE(InfoExtractor): _VALID_URL = r'''(?x) https?://(?:\w+\.)?facebook\.com/ (?:[^#]*?\#!/)? - (?:video/video\.php|photo\.php|video/embed)\?(?:.*?) + (?:video/video\.php|photo\.php|video\.php|video/embed)\?(?:.*?) (?:v|video_id)=(?P[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' IE_NAME = 'facebook' - _TEST = { + _TESTS = [{ 'url': 'https://www.facebook.com/photo.php?v=120708114770723', 'md5': '48975a41ccc4b7a581abd68651c1a5a8', 'info_dict': { @@ -37,7 +37,10 @@ class FacebookIE(InfoExtractor): 'duration': 279, 'title': 'PEOPLE ARE AWESOME 2013', } - } + }, { + 'url': 'https://www.facebook.com/video.php?v=10204634152394104', + 'only_matching': True, + }] def _login(self): (useremail, password) = self._get_login_info() @@ -76,7 +79,8 @@ class FacebookIE(InfoExtractor): check_form = { 'fb_dtsg': self._search_regex(r'name="fb_dtsg" value="(.+?)"', login_results, 'fb_dtsg'), - 'h': self._search_regex(r'name="h" value="(\w*?)"', login_results, 'h'), + 'h': self._search_regex( + r'name="h"\s+(?:\w+="[^"]+"\s+)*?value="([^"]+)"', login_results, 'h'), 'name_action_selected': 'dont_save', } check_req = compat_urllib_request.Request(self._CHECKPOINT_URL, urlencode_postdata(check_form))