summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorPhilipp Hagemeister <[email protected]>2013-12-16 21:10:06 +0100
committerPhilipp Hagemeister <[email protected]>2013-12-16 21:10:06 +0100
commit8c8e3eec793d04cc4dc884a65c119902d1ec7793 (patch)
tree2694ce92e8d0054ae1695d340fd34a2b362a1502
parent7ebc9dee69ac776aee3cc6d3e589d3100cff9a88 (diff)
downloadyoutube-dl-8c8e3eec793d04cc4dc884a65c119902d1ec7793.tar.gz
youtube-dl-8c8e3eec793d04cc4dc884a65c119902d1ec7793.zip
[facebook] Recognize #! URLs (Fixes #1988)
-rw-r--r--test/test_all_urls.py6
-rw-r--r--youtube_dl/extractor/facebook.py4
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"
}
}