diff options
| author | Philipp Hagemeister <phihag@phihag.de> | 2013-12-16 21:10:06 +0100 | 
|---|---|---|
| committer | Philipp Hagemeister <phihag@phihag.de> | 2013-12-16 21:10:06 +0100 | 
| commit | 8c8e3eec793d04cc4dc884a65c119902d1ec7793 (patch) | |
| tree | 2694ce92e8d0054ae1695d340fd34a2b362a1502 | |
| parent | 7ebc9dee69ac776aee3cc6d3e589d3100cff9a88 (diff) | |
[facebook] Recognize #! URLs (Fixes #1988)
| -rw-r--r-- | test/test_all_urls.py | 6 | ||||
| -rw-r--r-- | youtube_dl/extractor/facebook.py | 4 | 
2 files changed, 7 insertions, 3 deletions
diff --git a/test/test_all_urls.py b/test/test_all_urls.py index e9458b2e3..bd77b7c30 100644 --- a/test/test_all_urls.py +++ b/test/test_all_urls.py @@ -10,6 +10,7 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))  from test.helper import get_testcases  from youtube_dl.extractor import ( +    FacebookIE,      gen_extractors,      JustinTVIE,      YoutubeIE, @@ -87,12 +88,15 @@ class TestAllURLsMatching(unittest.TestCase):          assertExtractId('http://www.youtube.com/watch?v=BaW_jenozKcsharePLED17F32AD9753930', 'BaW_jenozKc')          assertExtractId('BaW_jenozKc', 'BaW_jenozKc') +    def test_facebook_matching(self): +        self.assertTrue(FacebookIE.suitable(u'https://www.facebook.com/Shiniknoh#!/photo.php?v=10153317450565268')) +      def test_no_duplicates(self):          ies = gen_extractors()          for tc in get_testcases():              url = tc['url']              for ie in ies: -                if type(ie).__name__ in ['GenericIE', tc['name'] + 'IE']: +                if type(ie).__name__ in ('GenericIE', tc['name'] + 'IE'):                      self.assertTrue(ie.suitable(url), '%s should match URL %r' % (type(ie).__name__, url))                  else:                      self.assertFalse(ie.suitable(url), '%s should not match URL %r' % (type(ie).__name__, url)) diff --git a/youtube_dl/extractor/facebook.py b/youtube_dl/extractor/facebook.py index 3b210710e..4556079c8 100644 --- a/youtube_dl/extractor/facebook.py +++ b/youtube_dl/extractor/facebook.py @@ -17,7 +17,7 @@ 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'^(?:https?://)?(?:\w+\.)?facebook\.com/(?:[^#?]*#!/)?(?:video/video|photo)\.php\?(?:.*?)v=(?P<ID>\d+)(?:.*)'      _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' @@ -27,7 +27,7 @@ class FacebookIE(InfoExtractor):          u'file': u'120708114770723.mp4',          u'md5': u'48975a41ccc4b7a581abd68651c1a5a8',          u'info_dict': { -            u"duration": 279,  +            u"duration": 279,              u"title": u"PEOPLE ARE AWESOME 2013"          }      }  | 
