projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[youtube] Add support for invidiou.sh (#20309)
[youtube-dl]
/
youtube_dl
/
extractor
/
hotstar.py
diff --git
a/youtube_dl/extractor/hotstar.py
b/youtube_dl/extractor/hotstar.py
index bf5717f1bf1f8366e45222e716951fb11069e8f6..8de9c4fafb852456ba772090f50ccdef3c5065d2 100644
(file)
--- a/
youtube_dl/extractor/hotstar.py
+++ b/
youtube_dl/extractor/hotstar.py
@@
-43,6
+43,7
@@
class HotStarIE(HotStarBaseIE):
IE_NAME = 'hotstar'
_VALID_URL = r'https?://(?:www\.)?hotstar\.com/(?:.+?[/-])?(?P<id>\d{10})'
_TESTS = [{
IE_NAME = 'hotstar'
_VALID_URL = r'https?://(?:www\.)?hotstar\.com/(?:.+?[/-])?(?P<id>\d{10})'
_TESTS = [{
+ # contentData
'url': 'https://www.hotstar.com/can-you-not-spread-rumours/1000076273',
'info_dict': {
'id': '1000076273',
'url': 'https://www.hotstar.com/can-you-not-spread-rumours/1000076273',
'info_dict': {
'id': '1000076273',
@@
-57,6
+58,10
@@
class HotStarIE(HotStarBaseIE):
# m3u8 download
'skip_download': True,
}
# m3u8 download
'skip_download': True,
}
+ }, {
+ # contentDetail
+ 'url': 'https://www.hotstar.com/movies/radha-gopalam/1000057157',
+ 'only_matching': True,
}, {
'url': 'http://www.hotstar.com/sports/cricket/rajitha-sizzles-on-debut-with-329/2001477583',
'only_matching': True,
}, {
'url': 'http://www.hotstar.com/sports/cricket/rajitha-sizzles-on-debut-with-329/2001477583',
'only_matching': True,
@@
-74,10
+79,15
@@
class HotStarIE(HotStarBaseIE):
r'<script>window\.APP_STATE\s*=\s*({.+?})</script>',
webpage, 'app state'), video_id)
video_data = {}
r'<script>window\.APP_STATE\s*=\s*({.+?})</script>',
webpage, 'app state'), video_id)
video_data = {}
+ getters = list(
+ lambda x, k=k: x['initialState']['content%s' % k]['content']
+ for k in ('Data', 'Detail')
+ )
for v in app_state.values():
for v in app_state.values():
- content = try_get(v,
lambda x: x['initialState']['contentData']['content']
, dict)
+ content = try_get(v,
getters
, dict)
if content and content.get('contentId') == video_id:
video_data = content
if content and content.get('contentId') == video_id:
video_data = content
+ break
title = video_data['title']
title = video_data['title']