mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-11-25 03:32:05 +00:00
[picarto] Extract more metadata (closes #16518)
This commit is contained in:
parent
f17a24a6df
commit
730c0d12a0
1 changed files with 10 additions and 4 deletions
|
@ -1,6 +1,7 @@
|
||||||
# coding: utf-8
|
# coding: utf-8
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import re
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from .common import InfoExtractor
|
from .common import InfoExtractor
|
||||||
|
@ -8,6 +9,7 @@ from ..compat import compat_str
|
||||||
from ..utils import (
|
from ..utils import (
|
||||||
ExtractorError,
|
ExtractorError,
|
||||||
js_to_json,
|
js_to_json,
|
||||||
|
try_get,
|
||||||
update_url_query,
|
update_url_query,
|
||||||
urlencode_postdata,
|
urlencode_postdata,
|
||||||
)
|
)
|
||||||
|
@ -32,7 +34,9 @@ class PicartoIE(InfoExtractor):
|
||||||
return False if PicartoVodIE.suitable(url) else super(PicartoIE, cls).suitable(url)
|
return False if PicartoVodIE.suitable(url) else super(PicartoIE, cls).suitable(url)
|
||||||
|
|
||||||
def _real_extract(self, 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(
|
metadata = self._download_json(
|
||||||
'https://api.picarto.tv/v1/channel/name/' + channel_id,
|
'https://api.picarto.tv/v1/channel/name/' + channel_id,
|
||||||
channel_id)
|
channel_id)
|
||||||
|
@ -45,7 +49,7 @@ class PicartoIE(InfoExtractor):
|
||||||
data=urlencode_postdata({'loadbalancinginfo': channel_id}),
|
data=urlencode_postdata({'loadbalancinginfo': channel_id}),
|
||||||
note='Downloading load balancing info')
|
note='Downloading load balancing info')
|
||||||
|
|
||||||
token = self._VALID_URL_RE.match(url).group('token') or 'public'
|
token = mobj.group('token') or 'public'
|
||||||
params = {
|
params = {
|
||||||
'con': int(time.time() * 1000),
|
'con': int(time.time() * 1000),
|
||||||
'token': token,
|
'token': token,
|
||||||
|
@ -99,9 +103,11 @@ class PicartoIE(InfoExtractor):
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'id': channel_id,
|
'id': channel_id,
|
||||||
'title': self._live_title(channel_id),
|
'title': self._live_title(metadata.get('title') or channel_id),
|
||||||
'is_live': True,
|
'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,
|
'age_limit': age_limit,
|
||||||
'formats': formats,
|
'formats': formats,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue