aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbashonly <88596187+bashonly@users.noreply.github.com>2023-06-04 09:19:16 -0500
committerGitHub <noreply@github.com>2023-06-04 14:19:16 +0000
commit7f8ddebbb51c9fd4a347306332a718ba41b371b8 (patch)
tree76228ee172798dcf176136b70205346bcb5472c8
parent7bc92517463f5766e9d9b92c3823b5cf403c0e3d (diff)
downloadhypervideo-pre-7f8ddebbb51c9fd4a347306332a718ba41b371b8.tar.lz
hypervideo-pre-7f8ddebbb51c9fd4a347306332a718ba41b371b8.tar.xz
hypervideo-pre-7f8ddebbb51c9fd4a347306332a718ba41b371b8.zip
[extractor/hotstar] Support `/shows/` URLs (#7225)
Closes #6463 Authored by: bashonly
-rw-r--r--yt_dlp/extractor/hotstar.py40
1 files changed, 36 insertions, 4 deletions
diff --git a/yt_dlp/extractor/hotstar.py b/yt_dlp/extractor/hotstar.py
index cea1812f1..591e23b8a 100644
--- a/yt_dlp/extractor/hotstar.py
+++ b/yt_dlp/extractor/hotstar.py
@@ -83,7 +83,7 @@ class HotStarIE(HotStarBaseIE):
_VALID_URL = r'''(?x)
https?://(?:www\.)?hotstar\.com(?:/in)?/(?!in/)
(?:
- (?P<type>movies|sports|episode|(?P<tv>tv))/
+ (?P<type>movies|sports|episode|(?P<tv>tv|shows))/
(?(tv)(?:[^/?#]+/){2}|[^?#]*)
)?
[^/?#]+/
@@ -123,6 +123,25 @@ class HotStarIE(HotStarBaseIE):
'episode_number': 8,
}
}, {
+ 'url': 'https://www.hotstar.com/in/shows/anupama/1260022017/anupama-anuj-share-a-moment/1000282843',
+ 'info_dict': {
+ 'id': '1000282843',
+ 'ext': 'mp4',
+ 'title': 'Anupama, Anuj Share a Moment',
+ 'season': 'Chapter 1',
+ 'description': 'md5:8d74ed2248423b8b06d5c8add4d7a0c0',
+ 'timestamp': 1678149000,
+ 'channel': 'StarPlus',
+ 'series': 'Anupama',
+ 'season_number': 1,
+ 'season_id': 7399,
+ 'upload_date': '20230307',
+ 'episode': 'Anupama, Anuj Share a Moment',
+ 'episode_number': 853,
+ 'duration': 1272,
+ 'channel_id': 3,
+ },
+ }, {
'url': 'https://www.hotstar.com/movies/radha-gopalam/1000057157',
'only_matching': True,
}, {
@@ -139,6 +158,7 @@ class HotStarIE(HotStarBaseIE):
'sports': 'match',
'episode': 'episode',
'tv': 'episode',
+ 'shows': 'episode',
None: 'content',
}
@@ -304,7 +324,7 @@ class HotStarPrefixIE(InfoExtractor):
class HotStarPlaylistIE(HotStarBaseIE):
IE_NAME = 'hotstar:playlist'
- _VALID_URL = r'https?://(?:www\.)?hotstar\.com(?:/in)?/tv(?:/[^/]+){2}/list/[^/]+/t-(?P<id>\w+)'
+ _VALID_URL = r'https?://(?:www\.)?hotstar\.com(?:/in)?/(?:tv|shows)(?:/[^/]+){2}/list/[^/]+/t-(?P<id>\w+)'
_TESTS = [{
'url': 'https://www.hotstar.com/tv/savdhaan-india/s-26/list/popular-clips/t-3_2_26',
'info_dict': {
@@ -312,6 +332,9 @@ class HotStarPlaylistIE(HotStarBaseIE):
},
'playlist_mincount': 20,
}, {
+ 'url': 'https://www.hotstar.com/shows/savdhaan-india/s-26/list/popular-clips/t-3_2_26',
+ 'only_matching': True,
+ }, {
'url': 'https://www.hotstar.com/tv/savdhaan-india/s-26/list/extras/t-2480',
'only_matching': True,
}, {
@@ -327,7 +350,7 @@ class HotStarPlaylistIE(HotStarBaseIE):
class HotStarSeasonIE(HotStarBaseIE):
IE_NAME = 'hotstar:season'
- _VALID_URL = r'(?P<url>https?://(?:www\.)?hotstar\.com(?:/in)?/tv/[^/]+/\w+)/seasons/[^/]+/ss-(?P<id>\w+)'
+ _VALID_URL = r'(?P<url>https?://(?:www\.)?hotstar\.com(?:/in)?/(?:tv|shows)/[^/]+/\w+)/seasons/[^/]+/ss-(?P<id>\w+)'
_TESTS = [{
'url': 'https://www.hotstar.com/tv/radhakrishn/1260000646/seasons/season-2/ss-8028',
'info_dict': {
@@ -346,6 +369,9 @@ class HotStarSeasonIE(HotStarBaseIE):
'id': '8208',
},
'playlist_mincount': 19,
+ }, {
+ 'url': 'https://www.hotstar.com/in/shows/bigg-boss/14714/seasons/season-4/ss-8208/',
+ 'only_matching': True,
}]
def _real_extract(self, url):
@@ -356,7 +382,7 @@ class HotStarSeasonIE(HotStarBaseIE):
class HotStarSeriesIE(HotStarBaseIE):
IE_NAME = 'hotstar:series'
- _VALID_URL = r'(?P<url>https?://(?:www\.)?hotstar\.com(?:/in)?/tv/[^/]+/(?P<id>\d+))/?(?:[#?]|$)'
+ _VALID_URL = r'(?P<url>https?://(?:www\.)?hotstar\.com(?:/in)?/(?:tv|shows)/[^/]+/(?P<id>\d+))/?(?:[#?]|$)'
_TESTS = [{
'url': 'https://www.hotstar.com/in/tv/radhakrishn/1260000646',
'info_dict': {
@@ -375,6 +401,12 @@ class HotStarSeriesIE(HotStarBaseIE):
'id': '435',
},
'playlist_mincount': 267,
+ }, {
+ 'url': 'https://www.hotstar.com/in/shows/anupama/1260022017/',
+ 'info_dict': {
+ 'id': '1260022017',
+ },
+ 'playlist_mincount': 940,
}]
def _real_extract(self, url):