[pornhub] Extract formats from get_media end point (#28395)
parent
c6a14755bb
commit
7dc513487f
|
@ -394,6 +394,21 @@ class PornHubIE(PornHubBaseIE):
|
||||||
|
|
||||||
upload_date = None
|
upload_date = None
|
||||||
formats = []
|
formats = []
|
||||||
|
|
||||||
|
def add_format(format_url, height=None):
|
||||||
|
tbr = None
|
||||||
|
mobj = re.search(r'(?P<height>\d+)[pP]?_(?P<tbr>\d+)[kK]', format_url)
|
||||||
|
if mobj:
|
||||||
|
if not height:
|
||||||
|
height = int(mobj.group('height'))
|
||||||
|
tbr = int(mobj.group('tbr'))
|
||||||
|
formats.append({
|
||||||
|
'url': format_url,
|
||||||
|
'format_id': '%dp' % height if height else None,
|
||||||
|
'height': height,
|
||||||
|
'tbr': tbr,
|
||||||
|
})
|
||||||
|
|
||||||
for video_url, height in video_urls:
|
for video_url, height in video_urls:
|
||||||
if not upload_date:
|
if not upload_date:
|
||||||
upload_date = self._search_regex(
|
upload_date = self._search_regex(
|
||||||
|
@ -410,18 +425,19 @@ class PornHubIE(PornHubBaseIE):
|
||||||
video_url, video_id, 'mp4', entry_protocol='m3u8_native',
|
video_url, video_id, 'mp4', entry_protocol='m3u8_native',
|
||||||
m3u8_id='hls', fatal=False))
|
m3u8_id='hls', fatal=False))
|
||||||
continue
|
continue
|
||||||
tbr = None
|
if '/video/get_media' in video_url:
|
||||||
mobj = re.search(r'(?P<height>\d+)[pP]?_(?P<tbr>\d+)[kK]', video_url)
|
medias = self._download_json(video_url, video_id, fatal=False)
|
||||||
if mobj:
|
if isinstance(medias, list):
|
||||||
if not height:
|
for media in medias:
|
||||||
height = int(mobj.group('height'))
|
if not isinstance(media, dict):
|
||||||
tbr = int(mobj.group('tbr'))
|
continue
|
||||||
formats.append({
|
video_url = url_or_none(media.get('videoUrl'))
|
||||||
'url': video_url,
|
if not video_url:
|
||||||
'format_id': '%dp' % height if height else None,
|
continue
|
||||||
'height': height,
|
height = int_or_none(media.get('quality'))
|
||||||
'tbr': tbr,
|
add_format(video_url, height)
|
||||||
})
|
continue
|
||||||
|
add_format(video_url)
|
||||||
self._sort_formats(formats)
|
self._sort_formats(formats)
|
||||||
|
|
||||||
video_uploader = self._html_search_regex(
|
video_uploader = self._html_search_regex(
|
||||||
|
|
Loading…
Reference in New Issue