aboutsummaryrefslogtreecommitdiffstats
path: root/hypervideo_dl/extractor/pearvideo.py
diff options
context:
space:
mode:
Diffstat (limited to 'hypervideo_dl/extractor/pearvideo.py')
-rw-r--r--hypervideo_dl/extractor/pearvideo.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/hypervideo_dl/extractor/pearvideo.py b/hypervideo_dl/extractor/pearvideo.py
index 1d77722..e27e5a7 100644
--- a/hypervideo_dl/extractor/pearvideo.py
+++ b/hypervideo_dl/extractor/pearvideo.py
@@ -1,12 +1,10 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
from ..utils import (
qualities,
unified_timestamp,
+ traverse_obj,
)
@@ -39,7 +37,14 @@ class PearVideoIE(InfoExtractor):
} for mobj in re.finditer(
r'(?P<id>[a-zA-Z]+)Url\s*=\s*(["\'])(?P<url>(?:https?:)?//.+?)\2',
webpage)]
- self._sort_formats(formats)
+ if not formats:
+ info = self._download_json(
+ 'https://www.pearvideo.com/videoStatus.jsp', video_id=video_id,
+ query={'contId': video_id}, headers={'Referer': url})
+ formats = [{
+ 'format_id': k,
+ 'url': v.replace(info['systemTime'], f'cont-{video_id}') if k == 'srcUrl' else v
+ } for k, v in traverse_obj(info, ('videoInfo', 'videos'), default={}).items() if v]
title = self._search_regex(
(r'<h1[^>]+\bclass=(["\'])video-tt\1[^>]*>(?P<value>[^<]+)',