diff options
| -rw-r--r-- | youtube_dl/extractor/francetv.py | 20 | 
1 files changed, 18 insertions, 2 deletions
| diff --git a/youtube_dl/extractor/francetv.py b/youtube_dl/extractor/francetv.py index 491545e1c..6d768a89a 100644 --- a/youtube_dl/extractor/francetv.py +++ b/youtube_dl/extractor/francetv.py @@ -11,10 +11,11 @@ from ..compat import (  )  from ..utils import (      clean_html, +    determine_ext,      ExtractorError,      int_or_none,      parse_duration, -    determine_ext, +    try_get,  )  from .dailymotion import DailymotionIE @@ -77,6 +78,14 @@ class FranceTVIE(InfoExtractor):      }, {          'url': 'francetv:NI_657393@Regions',          'only_matching': True, +    }, { +        # france-3 live +        'url': 'https://www.france.tv/france-3/direct.html', +        'only_matching': True, +    }, { +        # france-3 live +        'url': 'francetv:SIM_France3', +        'only_matching': True,      }]      def _extract_video(self, video_id, catalogue=None): @@ -121,6 +130,8 @@ class FranceTVIE(InfoExtractor):                      return signed_url              return manifest_url +        is_live = None +          formats = []          for video in info['videos']:              if video['statut'] != 'ONLINE': @@ -128,6 +139,10 @@ class FranceTVIE(InfoExtractor):              video_url = video['url']              if not video_url:                  continue +            if is_live is None: +                is_live = (try_get( +                    video, lambda x: x['plages_ouverture'][0]['direct'], +                    bool) is True) or '/live.francetv.fr/' in video_url              format_id = video['format']              ext = determine_ext(video_url)              if ext == 'f4m': @@ -173,11 +188,12 @@ class FranceTVIE(InfoExtractor):          return {              'id': video_id, -            'title': title, +            'title': self._live_title(title) if is_live else title,              'description': clean_html(info['synopsis']),              'thumbnail': compat_urlparse.urljoin('http://pluzz.francetv.fr', info['image']),              'duration': int_or_none(info.get('real_duration')) or parse_duration(info['duree']),              'timestamp': int_or_none(info['diffusion']['timestamp']), +            'is_live': is_live,              'formats': formats,              'subtitles': subtitles,          } | 
