[francetv] Add support for more channels: 3, 4, 5 and Ô (#1898)
Rename the France2IE extractor to FranceTVIE
This commit is contained in:
		@@ -56,7 +56,7 @@ from .flickr import FlickrIE
 | 
			
		||||
from .francetv import (
 | 
			
		||||
    PluzzIE,
 | 
			
		||||
    FranceTvInfoIE,
 | 
			
		||||
    France2IE,
 | 
			
		||||
    FranceTVIE,
 | 
			
		||||
    GenerationQuoiIE
 | 
			
		||||
)
 | 
			
		||||
from .freesound import FreesoundIE
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ class FranceTVBaseInfoExtractor(InfoExtractor):
 | 
			
		||||
        thumbnail_path = info.find('image').text
 | 
			
		||||
 | 
			
		||||
        return {'id': video_id,
 | 
			
		||||
                'ext': 'mp4',
 | 
			
		||||
                'ext': 'flv' if video_url.startswith('rtmp') else 'mp4',
 | 
			
		||||
                'url': video_url,
 | 
			
		||||
                'title': info.find('titre').text,
 | 
			
		||||
                'thumbnail': compat_urlparse.urljoin('http://pluzz.francetv.fr', thumbnail_path),
 | 
			
		||||
@@ -66,15 +66,18 @@ class FranceTvInfoIE(FranceTVBaseInfoExtractor):
 | 
			
		||||
        return self._extract_video(video_id)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class France2IE(FranceTVBaseInfoExtractor):
 | 
			
		||||
    IE_NAME = u'france2.fr'
 | 
			
		||||
    _VALID_URL = r'''(?x)https?://www\.france2\.fr/
 | 
			
		||||
class FranceTVIE(FranceTVBaseInfoExtractor):
 | 
			
		||||
    IE_NAME = u'francetv'
 | 
			
		||||
    IE_DESC = u'France 2, 3, 4, 5 and Ô'
 | 
			
		||||
    _VALID_URL = r'''(?x)https?://www\.france[2345o]\.fr/
 | 
			
		||||
        (?:
 | 
			
		||||
            emissions/.*?/videos/(?P<id>\d+)
 | 
			
		||||
        |   emission/(?P<key>[^/?]+)
 | 
			
		||||
            emissions/.*?/(videos|emissions)/(?P<id>[^/?]+)
 | 
			
		||||
        |   (emission|jt)/(?P<key>[^/?]+)
 | 
			
		||||
        )'''
 | 
			
		||||
 | 
			
		||||
    _TEST = {
 | 
			
		||||
    _TESTS = [
 | 
			
		||||
        # france2
 | 
			
		||||
        {
 | 
			
		||||
            u'url': u'http://www.france2.fr/emissions/13h15-le-samedi-le-dimanche/videos/75540104',
 | 
			
		||||
            u'file': u'75540104.mp4',
 | 
			
		||||
            u'info_dict': {
 | 
			
		||||
@@ -82,19 +85,81 @@ class France2IE(FranceTVBaseInfoExtractor):
 | 
			
		||||
                u'description': u'md5:2e5b58ba7a2d3692b35c792be081a03d',
 | 
			
		||||
            },
 | 
			
		||||
            u'params': {
 | 
			
		||||
                # m3u8 download
 | 
			
		||||
                u'skip_download': True,
 | 
			
		||||
            },
 | 
			
		||||
    }
 | 
			
		||||
        },
 | 
			
		||||
        # france3
 | 
			
		||||
        {
 | 
			
		||||
            u'url': u'http://www.france3.fr/emissions/pieces-a-conviction/videos/rhozet_pac_ba_20131204_1933_03122013164521_F3',
 | 
			
		||||
            u'info_dict': {
 | 
			
		||||
                u'id': u'rhozet_pac_ba_20131204_1933_03122013164521_F3',
 | 
			
		||||
                u'ext': u'flv',
 | 
			
		||||
                u'title': u'Pièces à conviction du 04/12/2013',
 | 
			
		||||
                u'description': u'md5:1cf14ea302ba5f10d992c9eb2bff30dd',
 | 
			
		||||
            },
 | 
			
		||||
            u'params': {
 | 
			
		||||
                # rtmp download
 | 
			
		||||
                u'skip_download': True,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        # france4
 | 
			
		||||
        {
 | 
			
		||||
            u'url': u'http://www.france4.fr/emissions/hero-corp/videos/rhozet_herocorp_bonus_1_20131106_1923_06112013172108_F4',
 | 
			
		||||
            u'info_dict': {
 | 
			
		||||
                u'id': u'rhozet_herocorp_bonus_1_20131106_1923_06112013172108_F4',
 | 
			
		||||
                u'ext': u'flv',
 | 
			
		||||
                u'title': u'Hero Corp Making of - Extrait 1',
 | 
			
		||||
                u'description': u'md5:c87d54871b1790679aec1197e73d650a',
 | 
			
		||||
            },
 | 
			
		||||
            u'params': {
 | 
			
		||||
                # rtmp download
 | 
			
		||||
                u'skip_download': True,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        # france5
 | 
			
		||||
        {
 | 
			
		||||
            u'url': u'http://www.france5.fr/emissions/c-a-dire/videos/92837968',
 | 
			
		||||
            u'info_dict': {
 | 
			
		||||
                u'id': u'92837968',
 | 
			
		||||
                u'ext': u'mp4',
 | 
			
		||||
                u'title': u'C à dire ?!',
 | 
			
		||||
                u'description': u'md5:fb1db1cbad784dcce7c7a7bd177c8e2f',
 | 
			
		||||
            },
 | 
			
		||||
            u'params': {
 | 
			
		||||
                # m3u8 download
 | 
			
		||||
                u'skip_download': True,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        # franceo
 | 
			
		||||
        {
 | 
			
		||||
            u'url': u'http://www.franceo.fr/jt/info-afrique/04-12-2013',
 | 
			
		||||
            u'info_dict': {
 | 
			
		||||
                u'id': u'92327925',
 | 
			
		||||
                u'ext': u'mp4',
 | 
			
		||||
                u'title': u'Infô-Afrique',
 | 
			
		||||
                u'description': u'md5:ebf346da789428841bee0fd2a935ea55',
 | 
			
		||||
            },
 | 
			
		||||
            u'params': {
 | 
			
		||||
                # m3u8 download
 | 
			
		||||
                u'skip_download': True,
 | 
			
		||||
            },
 | 
			
		||||
            u'skip': u'The id changes frequently',
 | 
			
		||||
        },
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
        mobj = re.match(self._VALID_URL, url)
 | 
			
		||||
        if mobj.group('key'):
 | 
			
		||||
            webpage = self._download_webpage(url, mobj.group('key'))
 | 
			
		||||
            video_id = self._html_search_regex(
 | 
			
		||||
                r'''(?x)<div\s+class="video-player">\s*
 | 
			
		||||
            id_res = [
 | 
			
		||||
                (r'''(?x)<div\s+class="video-player">\s*
 | 
			
		||||
                    <a\s+href="http://videos.francetv.fr/video/([0-9]+)"\s+
 | 
			
		||||
                    class="francetv-video-player">''',
 | 
			
		||||
                webpage, u'video ID')
 | 
			
		||||
                    class="francetv-video-player">'''),
 | 
			
		||||
                (r'<a id="player_direct" href="http://info\.francetelevisions'
 | 
			
		||||
                 '\.fr/\?id-video=([^"/&]+)'),
 | 
			
		||||
            ]
 | 
			
		||||
            video_id = self._html_search_regex(id_res, webpage, u'video ID')
 | 
			
		||||
        else:
 | 
			
		||||
            video_id = mobj.group('id')
 | 
			
		||||
        return self._extract_video(video_id)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user