diff options
| author | Sergey M․ <dstftw@gmail.com> | 2018-11-11 16:08:54 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2018-11-11 16:17:59 +0700 | 
| commit | 730c0d12a06f349907481570f1f2890251f7a181 (patch) | |
| tree | 7f7d4c77f9e4e719f9233afbb77ececb1ba1224f /youtube_dl/extractor/picarto.py | |
| parent | f17a24a6df293370b94082c7feb6c447a3e7d8d9 (diff) | |
[picarto] Extract more metadata (closes #16518)
Diffstat (limited to 'youtube_dl/extractor/picarto.py')
| -rw-r--r-- | youtube_dl/extractor/picarto.py | 14 | 
1 files changed, 10 insertions, 4 deletions
| diff --git a/youtube_dl/extractor/picarto.py b/youtube_dl/extractor/picarto.py index 27ee9643b..8099ef1d6 100644 --- a/youtube_dl/extractor/picarto.py +++ b/youtube_dl/extractor/picarto.py @@ -1,6 +1,7 @@  # coding: utf-8  from __future__ import unicode_literals +import re  import time  from .common import InfoExtractor @@ -8,6 +9,7 @@ from ..compat import compat_str  from ..utils import (      ExtractorError,      js_to_json, +    try_get,      update_url_query,      urlencode_postdata,  ) @@ -32,7 +34,9 @@ class PicartoIE(InfoExtractor):          return False if PicartoVodIE.suitable(url) else super(PicartoIE, cls).suitable(url)      def _real_extract(self, url): -        channel_id = self._match_id(url) +        mobj = re.match(self._VALID_URL, url) +        channel_id = mobj.group('id') +          metadata = self._download_json(              'https://api.picarto.tv/v1/channel/name/' + channel_id,              channel_id) @@ -45,7 +49,7 @@ class PicartoIE(InfoExtractor):              data=urlencode_postdata({'loadbalancinginfo': channel_id}),              note='Downloading load balancing info') -        token = self._VALID_URL_RE.match(url).group('token') or 'public' +        token = mobj.group('token') or 'public'          params = {              'con': int(time.time() * 1000),              'token': token, @@ -99,9 +103,11 @@ class PicartoIE(InfoExtractor):          return {              'id': channel_id, -            'title': self._live_title(channel_id), +            'title': self._live_title(metadata.get('title') or channel_id),              'is_live': True, -            'thumbnail': metadata.get('thumbnails', {}).get('web'), +            'thumbnail': try_get(metadata, lambda x: x['thumbnails']['web']), +            'channel': channel_id, +            'channel_url': 'https://picarto.tv/%s' % channel_id,              'age_limit': age_limit,              'formats': formats,          } | 
