mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 00:25:15 +00:00 
			
		
		
		
	[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 (
 | 
					from .francetv import (
 | 
				
			||||||
    PluzzIE,
 | 
					    PluzzIE,
 | 
				
			||||||
    FranceTvInfoIE,
 | 
					    FranceTvInfoIE,
 | 
				
			||||||
    France2IE,
 | 
					    FranceTVIE,
 | 
				
			||||||
    GenerationQuoiIE
 | 
					    GenerationQuoiIE
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
from .freesound import FreesoundIE
 | 
					from .freesound import FreesoundIE
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ class FranceTVBaseInfoExtractor(InfoExtractor):
 | 
				
			|||||||
        thumbnail_path = info.find('image').text
 | 
					        thumbnail_path = info.find('image').text
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return {'id': video_id,
 | 
					        return {'id': video_id,
 | 
				
			||||||
                'ext': 'mp4',
 | 
					                'ext': 'flv' if video_url.startswith('rtmp') else 'mp4',
 | 
				
			||||||
                'url': video_url,
 | 
					                'url': video_url,
 | 
				
			||||||
                'title': info.find('titre').text,
 | 
					                'title': info.find('titre').text,
 | 
				
			||||||
                'thumbnail': compat_urlparse.urljoin('http://pluzz.francetv.fr', thumbnail_path),
 | 
					                'thumbnail': compat_urlparse.urljoin('http://pluzz.francetv.fr', thumbnail_path),
 | 
				
			||||||
@@ -66,15 +66,18 @@ class FranceTvInfoIE(FranceTVBaseInfoExtractor):
 | 
				
			|||||||
        return self._extract_video(video_id)
 | 
					        return self._extract_video(video_id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class France2IE(FranceTVBaseInfoExtractor):
 | 
					class FranceTVIE(FranceTVBaseInfoExtractor):
 | 
				
			||||||
    IE_NAME = u'france2.fr'
 | 
					    IE_NAME = u'francetv'
 | 
				
			||||||
    _VALID_URL = r'''(?x)https?://www\.france2\.fr/
 | 
					    IE_DESC = u'France 2, 3, 4, 5 and Ô'
 | 
				
			||||||
 | 
					    _VALID_URL = r'''(?x)https?://www\.france[2345o]\.fr/
 | 
				
			||||||
        (?:
 | 
					        (?:
 | 
				
			||||||
            emissions/.*?/videos/(?P<id>\d+)
 | 
					            emissions/.*?/(videos|emissions)/(?P<id>[^/?]+)
 | 
				
			||||||
        |   emission/(?P<key>[^/?]+)
 | 
					        |   (emission|jt)/(?P<key>[^/?]+)
 | 
				
			||||||
        )'''
 | 
					        )'''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _TEST = {
 | 
					    _TESTS = [
 | 
				
			||||||
 | 
					        # france2
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
            u'url': u'http://www.france2.fr/emissions/13h15-le-samedi-le-dimanche/videos/75540104',
 | 
					            u'url': u'http://www.france2.fr/emissions/13h15-le-samedi-le-dimanche/videos/75540104',
 | 
				
			||||||
            u'file': u'75540104.mp4',
 | 
					            u'file': u'75540104.mp4',
 | 
				
			||||||
            u'info_dict': {
 | 
					            u'info_dict': {
 | 
				
			||||||
@@ -82,19 +85,81 @@ class France2IE(FranceTVBaseInfoExtractor):
 | 
				
			|||||||
                u'description': u'md5:2e5b58ba7a2d3692b35c792be081a03d',
 | 
					                u'description': u'md5:2e5b58ba7a2d3692b35c792be081a03d',
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            u'params': {
 | 
					            u'params': {
 | 
				
			||||||
 | 
					                # m3u8 download
 | 
				
			||||||
                u'skip_download': True,
 | 
					                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):
 | 
					    def _real_extract(self, url):
 | 
				
			||||||
        mobj = re.match(self._VALID_URL, url)
 | 
					        mobj = re.match(self._VALID_URL, url)
 | 
				
			||||||
        if mobj.group('key'):
 | 
					        if mobj.group('key'):
 | 
				
			||||||
            webpage = self._download_webpage(url, mobj.group('key'))
 | 
					            webpage = self._download_webpage(url, mobj.group('key'))
 | 
				
			||||||
            video_id = self._html_search_regex(
 | 
					            id_res = [
 | 
				
			||||||
                r'''(?x)<div\s+class="video-player">\s*
 | 
					                (r'''(?x)<div\s+class="video-player">\s*
 | 
				
			||||||
                    <a\s+href="http://videos.francetv.fr/video/([0-9]+)"\s+
 | 
					                    <a\s+href="http://videos.francetv.fr/video/([0-9]+)"\s+
 | 
				
			||||||
                    class="francetv-video-player">''',
 | 
					                    class="francetv-video-player">'''),
 | 
				
			||||||
                webpage, u'video ID')
 | 
					                (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:
 | 
					        else:
 | 
				
			||||||
            video_id = mobj.group('id')
 | 
					            video_id = mobj.group('id')
 | 
				
			||||||
        return self._extract_video(video_id)
 | 
					        return self._extract_video(video_id)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user