projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6cf261d
)
[vk] Extract from playerParams (closes #11555)
author
Sergey M․
<dstftw@gmail.com>
Thu, 29 Dec 2016 21:21:49 +0000
(
04:21
+0700)
committer
Sergey M․
<dstftw@gmail.com>
Thu, 29 Dec 2016 21:21:49 +0000
(
04:21
+0700)
youtube_dl/extractor/vk.py
patch
|
blob
|
history
diff --git
a/youtube_dl/extractor/vk.py
b/youtube_dl/extractor/vk.py
index 1990e7093acabb2dce11faebfddd220e8d88392b..1639cd73acd39067e78298a6ab229d384a58d0d9 100644
(file)
--- a/
youtube_dl/extractor/vk.py
+++ b/
youtube_dl/extractor/vk.py
@@
-378,12
+378,22
@@
class VKIE(VKBaseIE):
if not data:
data = self._parse_json(
self._search_regex(
if not data:
data = self._parse_json(
self._search_regex(
- r'<!json>\s*({.+?})\s*<!>', info_page, 'json'),
- video_id)['player']['params'][0]
+ r'<!json>\s*({.+?})\s*<!>', info_page, 'json', default='{}'),
+ video_id)
+ if data:
+ data = data['player']['params'][0]
+
+ if not data:
+ data = self._parse_json(
+ self._search_regex(
+ r'var\s+playerParams\s*=\s*({.+?})\s*;\s*\n', info_page,
+ 'player params'),
+ video_id)['params'][0]
title = unescapeHTML(data['md_title'])
title = unescapeHTML(data['md_title'])
- if data.get('live') == 2:
+ is_live = data.get('live') == 2
+ if is_live:
title = self._live_title(title)
timestamp = unified_timestamp(self._html_search_regex(
title = self._live_title(title)
timestamp = unified_timestamp(self._html_search_regex(
@@
-408,8
+418,9
@@
class VKIE(VKBaseIE):
})
elif format_id == 'hls':
formats.extend(self._extract_m3u8_formats(
})
elif format_id == 'hls':
formats.extend(self._extract_m3u8_formats(
- format_url, video_id, 'mp4', m3u8_id=format_id,
- fatal=False, live=True))
+ format_url, video_id, 'mp4',
+ entry_protocol='m3u8' if is_live else 'm3u8_native',
+ m3u8_id=format_id, fatal=False, live=is_live))
elif format_id == 'rtmp':
formats.append({
'format_id': format_id,
elif format_id == 'rtmp':
formats.append({
'format_id': format_id,
@@
-427,6
+438,7
@@
class VKIE(VKBaseIE):
'duration': data.get('duration'),
'timestamp': timestamp,
'view_count': view_count,
'duration': data.get('duration'),
'timestamp': timestamp,
'view_count': view_count,
+ 'is_live': is_live,
}
}