diff options
| author | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2013-09-23 21:41:54 +0200 | 
|---|---|---|
| committer | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2013-09-23 21:41:54 +0200 | 
| commit | 5b333c1ce6287badd89dacdd280a3876a09dcbcb (patch) | |
| tree | 9dd028f2d0bf3f11d41beb94de85fe8c76bd834c | |
| parent | a825f33030f189a37b1c3517ed1770a8b9e274fe (diff) | |
[francetv] Add an extractor for Generation Quoi (closes #1475)
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/francetv.py | 28 | 
2 files changed, 29 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 65aacebb3..d1b7e5f99 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -43,6 +43,7 @@ from .francetv import (      PluzzIE,      FranceTvInfoIE,      France2IE, +    GenerationQuoiIE  )  from .freesound import FreesoundIE  from .funnyordie import FunnyOrDieIE diff --git a/youtube_dl/extractor/francetv.py b/youtube_dl/extractor/francetv.py index 5e915bc03..b1530e549 100644 --- a/youtube_dl/extractor/francetv.py +++ b/youtube_dl/extractor/francetv.py @@ -1,6 +1,7 @@  # encoding: utf-8  import re  import xml.etree.ElementTree +import json  from .common import InfoExtractor  from ..utils import ( @@ -87,3 +88,30 @@ class France2IE(FranceTVBaseInfoExtractor):          mobj = re.match(self._VALID_URL, url)          video_id = mobj.group('id')          return self._extract_video(video_id) + + +class GenerationQuoiIE(InfoExtractor): +    IE_NAME = u'http://generation-quoi.france2.fr' +    _VALID_URL = r'https?://generation-quoi\.france2\.fr/portrait/(?P<name>.*)(\?|$)' + +    _TEST = { +        u'url': u'http://generation-quoi.france2.fr/portrait/garde-a-vous', +        u'file': u'k7FJX8VBcvvLmX4wA5Q.mp4', +        u'info_dict': { +            u'title': u'Génération Quoi - Garde à Vous', +            u'uploader': u'Génération Quoi', +        }, +        u'params': { +            # It uses Dailymotion +            u'skip_download': True, +        }, +    } + +    def _real_extract(self, url): +        mobj = re.match(self._VALID_URL, url) +        name = mobj.group('name') +        info_url = compat_urlparse.urljoin(url, '/medias/video/%s.json' % name) +        info_json = self._download_webpage(info_url, name) +        info = json.loads(info_json) +        return self.url_result('http://www.dailymotion.com/video/%s' % info['id'], +            ie='Dailymotion') | 
