diff options
author | Philipp Hagemeister <phihag@phihag.de> | 2014-03-11 16:51:36 +0100 |
---|---|---|
committer | Philipp Hagemeister <phihag@phihag.de> | 2014-03-11 16:51:36 +0100 |
commit | 60cc4dc4b49c6ebd4a86a4d7f998133474662eee (patch) | |
tree | b244e93d9f9d2c2d65494361f0f0f1683d9a0e45 /youtube_dl/extractor/funnyordie.py | |
parent | db95dc13a1a8e5951d09d3fd555f7a4be590821f (diff) |
[generic/funnyordie] Add support for funnyordie embeds (Fixes #2546)
Diffstat (limited to 'youtube_dl/extractor/funnyordie.py')
-rw-r--r-- | youtube_dl/extractor/funnyordie.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/youtube_dl/extractor/funnyordie.py b/youtube_dl/extractor/funnyordie.py index 7c40e6753..5522e4954 100644 --- a/youtube_dl/extractor/funnyordie.py +++ b/youtube_dl/extractor/funnyordie.py @@ -1,12 +1,13 @@ from __future__ import unicode_literals +import json import re from .common import InfoExtractor class FunnyOrDieIE(InfoExtractor): - _VALID_URL = r'^(?:https?://)?(?:www\.)?funnyordie\.com/videos/(?P<id>[0-9a-f]+)/.*$' + _VALID_URL = r'https?://(?:www\.)?funnyordie\.com/(?P<type>embed|videos)/(?P<id>[0-9a-f]+)(?:$|[?#/])' _TEST = { 'url': 'http://www.funnyordie.com/videos/0732f586d7/heart-shaped-box-literal-video-version', 'file': '0732f586d7.mp4', @@ -30,10 +31,20 @@ class FunnyOrDieIE(InfoExtractor): [r'type="video/mp4" src="(.*?)"', r'src="([^>]*?)" type=\'video/mp4\''], webpage, 'video URL', flags=re.DOTALL) + if mobj.group('type') == 'embed': + post_json = self._search_regex( + r'fb_post\s*=\s*(\{.*?\});', webpage, 'post details') + post = json.loads(post_json)['attachment'] + title = post['name'] + description = post.get('description') + else: + title = self._og_search_title(webpage) + description = self._og_search_description(webpage) + return { 'id': video_id, 'url': video_url, 'ext': 'mp4', - 'title': self._og_search_title(webpage), - 'description': self._og_search_description(webpage), + 'title': title, + 'description': description, } |