diff options
Diffstat (limited to 'youtube_dl/extractor/lrt.py')
| -rw-r--r-- | youtube_dl/extractor/lrt.py | 43 | 
1 files changed, 19 insertions, 24 deletions
diff --git a/youtube_dl/extractor/lrt.py b/youtube_dl/extractor/lrt.py index e3236f7b5..863efd896 100644 --- a/youtube_dl/extractor/lrt.py +++ b/youtube_dl/extractor/lrt.py @@ -1,12 +1,9 @@  # coding: utf-8  from __future__ import unicode_literals -import re -  from .common import InfoExtractor  from ..utils import ( -    determine_ext, -    js_to_json, +    int_or_none,      parse_duration,      remove_end,  ) @@ -23,9 +20,11 @@ class LRTIE(InfoExtractor):              'title': 'Septynios Kauno dienos',              'description': 'md5:24d84534c7dc76581e59f5689462411a',              'duration': 1783, +            'view_count': int, +            'like_count': int,          },          'params': { -            'skip_download': True,  # HLS download +            'skip_download': True,  # m3u8 download          },      } @@ -34,29 +33,23 @@ class LRTIE(InfoExtractor):          webpage = self._download_webpage(url, video_id)          title = remove_end(self._og_search_title(webpage), ' - LRT') +        m3u8_url = self._search_regex( +            r'file\s*:\s*(["\'])(?P<url>.+?)\1\s*\+\s*location\.hash\.substring\(1\)', +            webpage, 'm3u8 url', group='url') +        formats = self._extract_m3u8_formats(m3u8_url, video_id, 'mp4') +          thumbnail = self._og_search_thumbnail(webpage)          description = self._og_search_description(webpage)          duration = parse_duration(self._search_regex( -            r"'duration':\s*'([^']+)',", webpage, -            'duration', fatal=False, default=None)) +            r'var\s+record_len\s*=\s*(["\'])(?P<duration>[0-9]+:[0-9]+:[0-9]+)\1', +            webpage, 'duration', default=None, group='duration')) -        formats = [] -        for js in re.findall(r'(?s)config:\s*(\{.*?\})', webpage): -            data = self._parse_json(js, video_id, transform_source=js_to_json) -            if 'provider' not in data: -                continue -            if data['provider'] == 'rtmp': -                formats.append({ -                    'format_id': 'rtmp', -                    'ext': determine_ext(data['file']), -                    'url': data['streamer'], -                    'play_path': 'mp4:%s' % data['file'], -                    'preference': -1, -                    'rtmp_real_time': True, -                }) -            else: -                formats.extend( -                    self._extract_m3u8_formats(data['file'], video_id, 'mp4')) +        view_count = int_or_none(self._html_search_regex( +            r'<div[^>]+class=(["\']).*?record-desc-seen.*?\1[^>]*>(?P<count>.+?)</div>', +            webpage, 'view count', fatal=False, group='count')) +        like_count = int_or_none(self._search_regex( +            r'<span[^>]+id=(["\'])flikesCount.*?\1>(?P<count>\d+)<', +            webpage, 'like count', fatal=False, group='count'))          return {              'id': video_id, @@ -65,4 +58,6 @@ class LRTIE(InfoExtractor):              'thumbnail': thumbnail,              'description': description,              'duration': duration, +            'view_count': view_count, +            'like_count': like_count,          }  | 
