Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hotstar(Disney+Hotstar) is Broken #84

Closed
5 tasks done
Ashish0804 opened this issue Sep 12, 2020 · 9 comments
Closed
5 tasks done

Hotstar(Disney+Hotstar) is Broken #84

Ashish0804 opened this issue Sep 12, 2020 · 9 comments

Comments

@Ashish0804
Copy link

Ashish0804 commented Sep 12, 2020

Checklist

  • I'm reporting a broken site support
  • I've verified that I'm running youtube-dl version 2020.09.06
  • I've checked that all provided URLs are alive and playable in a browser
  • I've checked that all URLs and arguments with special characters are properly quoted or escaped
  • I've searched the bugtracker for similar issues including closed ones

Verbose log

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-F', '-v', 'https://www.hotstar.com/in/tv/ramayan/1260028501/birth-of-the-four-princes/1000249535']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dlc version 2020.09.12
[debug] Python version 3.7.7 (CPython) - Linux-5.4.0-7642-generic-x86_64-with-debian-bullseye-sid
[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4, rtmpdump 2.4
[debug] Proxy map: {}
[hotstar] 1260028501: Downloading webpage
ERROR: An extractor error has occurred. (caused by KeyError('title')); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dlc -U  to update. Be sure to call youtube-dlc with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dlc/youtube_dlc/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dlc/youtube_dlc/extractor/hotstar.py", line 124, in _real_extract
    title = video_data['title']
KeyError: 'title'
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dlc/youtube_dlc/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dlc/youtube_dlc/extractor/hotstar.py", line 124, in _real_extract
    title = video_data['title']
KeyError: 'title'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/youtube-dlc/youtube_dlc/YoutubeDL.py", line 797, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dlc/youtube_dlc/extractor/common.py", line 543, in extract
    raise ExtractorError('An extractor error has occurred.', cause=e)
youtube_dlc.utils.ExtractorError: An extractor error has occurred. (caused by KeyError('title')); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dlc -U  to update. Be sure to call youtube-dlc with the --verbose flag and include its complete output.

Description

https://www.hotstar.com/in/tv/ramayan/1260028501/birth-of-the-four-princes/1000249535
This should work fine (and has in past) as this is a free video

@Ashish0804
Copy link
Author

@blackjack4494 can u try to fix this pls? I can provide VPN if u need it

@blackjack4494
Copy link
Owner

blackjack4494 commented Sep 16, 2020

@Ashish0804 will need some time. Got at least 2 other things on my list. Sure VPN would be great to debug the problem - you can send me details per mail (have a look at my github profile). But you may be lucky and I can have a look on it earlier. Especially since the extractor and its logic seems quite simple. Some extractors can be fixed within few minutes, others may need hours or even days.

@Ashish0804
Copy link
Author

@Ashish0804 will need some time. Got at least 2 other things on my list. Sure VPN would be great to debug the problem - you can send me details per mail (have a look at my github profile). But you may be lucky and I can have a look on it earlier. Especially since the extractor and its logic seems quite simple. Some extractors can be fixed within few minutes, others may need hours or even days.

thanks a lot. sent u the vpn logins. :)

@blackjack4494
Copy link
Owner

blackjack4494 commented Sep 17, 2020

@Ashish0804 thanks. I could find the problem here. It was the regex.
https://www.hotstar.com/can-you-not-spread-rumours/1000076273 this link just got one ID
But yours had multiple https://www.hotstar.com/in/tv/ramayan/1260028501/birth-of-the-four-princes/1000249535
So it wasn't matching the right one (very last) but the first one 1260028501 which is wrong.

However the output was a bit shocking

[hotstar] 1000249535: Downloading m3u8 information
[hotstar] 1000249535: Downloading MPD manifest
[hotstar] 1000249535: Downloading m3u8 information
[hotstar] 1000249535: Downloading m3u8 information
[hotstar] 1000249535: Downloading m3u8 information
[hotstar] 1000249535: Downloading m3u8 information
[hotstar] 1000249535: Downloading m3u8 information
[hotstar] 1000249535: Downloading MPD manifest
[hotstar] 1000249535: Downloading MPD manifest
[hotstar] 1000249535: Downloading m3u8 information
[hotstar] 1000249535: Downloading MPD manifest
[hotstar] 1000249535: Downloading MPD manifest
[info] Available formats for 1000249535:
format code extension resolution note
hls-audio_mp4a50-Unknown-0 mp4 audio only [und]
hls-audio_mp4a50-Unknown-1 mp4 audio only [und]
hls-audio_mp4a50-Unknown-2 mp4 audio only [und]
hls-audio_mp4a50-Unknown-3 mp4 audio only [und]
hls-audio_mp4a66-Unknown-0 mp4 audio only [und]
hls-audio_mp4a66-Unknown-1 mp4 audio only [und]
hls-audio_mp4a66-Unknown-2 mp4 audio only [und]
hls-audio_mp4a66-Unknown-3 mp4 audio only [und]
dash-audio_und_mp4a_1-0 m4a audio only DASH audio 49k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio_und_mp4a_1-1 m4a audio only DASH audio 49k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio_und_mp4a_1-2 m4a audio only DASH audio 49k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio-und-mp4a-1-0 m4a audio only DASH audio 49k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio-und-mp4a-1-1 m4a audio only DASH audio 49k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio_und_mp4a_2-0 m4a audio only DASH audio 65k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio_und_mp4a_2-1 m4a audio only DASH audio 65k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio_und_mp4a_2-2 m4a audio only DASH audio 65k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio-und-mp4a-2-0 m4a audio only DASH audio 65k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio-und-mp4a-2-1 m4a audio only DASH audio 65k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-video_avc1_1-0 mp4 320x180 DASH video 117k , mp4_dash container, avc1.42C00C, 25fps, video only
dash-video_avc1_1-1 mp4 320x180 DASH video 117k , mp4_dash container, avc1.42C00C, 25fps, video only
dash-video-avc1-1 mp4 320x180 DASH video 117k , mp4_dash container, avc1.42C00C, 25fps, video only
hls-130-0 mp4 320x180 130k , avc1.42C00C, video only
hls-130-1 mp4 320x180 130k , avc1.42C00C, video only
hls-185-0 mp4 426x240 185k , avc1.42C015, video only
hls-185-1 mp4 426x240 185k , avc1.42C015, video only
hls-185-2 mp4 426x240 185k , avc1.42C015, video only
hls-185-3 mp4 426x240 185k , avc1.42C015, video only
dash-video_avc1_2-0 mp4 426x240 DASH video 196k , mp4_dash container, avc1.42C015, 25fps, video only
dash-video_avc1_2-1 mp4 426x240 DASH video 196k , mp4_dash container, avc1.42C015, 25fps, video only
dash-video_avc1_2-2 mp4 426x240 DASH video 196k , mp4_dash container, avc1.42C015, 25fps, video only
dash-video-avc1-2-0 mp4 426x240 DASH video 196k , mp4_dash container, avc1.42C015, 25fps, video only
dash-video-avc1-2-1 mp4 426x240 DASH video 196k , mp4_dash container, avc1.42C015, 25fps, video only
hls-254-0 mp4 640x360 254k , avc1.4D401E, video only
hls-254-1 mp4 640x360 254k , avc1.4D401E, video only
hls-254-2 mp4 640x360 254k , avc1.4D401E, video only
hls-254-3 mp4 640x360 254k , avc1.4D401E, video only
dash-video_avc1_3-0 mp4 640x360 DASH video 296k , mp4_dash container, avc1.4D401E, 25fps, video only
dash-video_avc1_3-1 mp4 640x360 DASH video 296k , mp4_dash container, avc1.4D401E, 25fps, video only
dash-video_avc1_3-2 mp4 640x360 DASH video 296k , mp4_dash container, avc1.4D401E, 25fps, video only
dash-video-avc1-3-0 mp4 640x360 DASH video 296k , mp4_dash container, avc1.4D401E, 25fps, video only
dash-video-avc1-3-1 mp4 640x360 DASH video 296k , mp4_dash container, avc1.4D401E, 25fps, video only
hls-503-0 mp4 854x480 503k , avc1.4D401F, video only
hls-503-1 mp4 854x480 503k , avc1.4D401F, video only
hls-503-2 mp4 854x480 503k , avc1.4D401F, video only
hls-503-3 mp4 854x480 503k , avc1.4D401F, video only
dash-video_avc1_4-0 mp4 854x480 DASH video 603k , mp4_dash container, avc1.4D401F, 25fps, video only
dash-video_avc1_4-1 mp4 854x480 DASH video 603k , mp4_dash container, avc1.4D401F, 25fps, video only
dash-video_avc1_4-2 mp4 854x480 DASH video 603k , mp4_dash container, avc1.4D401F, 25fps, video only
dash-video-avc1-4-0 mp4 854x480 DASH video 603k , mp4_dash container, avc1.4D401F, 25fps, video only
dash-video-avc1-4-1 mp4 854x480 DASH video 603k , mp4_dash container, avc1.4D401F, 25fps, video only
hls-993-0 mp4 1280x720 993k , avc1.640028, video only
hls-993-1 mp4 1280x720 993k , avc1.640028, video only
hls-1132-0 mp4 1280x720 1132k , avc1.640028, video only
hls-1132-1 mp4 1280x720 1132k , avc1.640028, video only
dash-video_avc1_5-0 mp4 1280x720 DASH video 1236k , mp4_dash container, avc1.640028, 25fps, video only
dash-video_avc1_5-1 mp4 1280x720 DASH video 1236k , mp4_dash container, avc1.640028, 25fps, video only
dash-video-avc1-5 mp4 1280x720 DASH video 1236k , mp4_dash container, avc1.640028, 25fps, video only
dash-video_avc1_6 mp4 1280x720 DASH video 1380k , mp4_dash container, avc1.640028, 25fps, video only
dash-video-avc1-6 mp4 1280x720 DASH video 1380k , mp4_dash container, avc1.640028, 25fps, video only
hls-1452-0 mp4 1920x1080 1452k , avc1.640028, video only
hls-1452-1 mp4 1920x1080 1452k , avc1.640028, video only
hls-1452-2 mp4 1920x1080 1452k , avc1.640028, video only
hls-1452-3 mp4 1920x1080 1452k , avc1.640028, video only
dash-video_avc1_7-0 mp4 1920x1080 DASH video 1483k , mp4_dash container, avc1.640028, 25fps, video only
dash-video_avc1_7-1 mp4 1920x1080 DASH video 1483k , mp4_dash container, avc1.640028, 25fps, video only
dash-video_avc1_7-2 mp4 1920x1080 DASH video 1483k , mp4_dash container, avc1.640028, 25fps, video only
dash-video-avc1-7-0 mp4 1920x1080 DASH video 1483k , mp4_dash container, avc1.640028, 25fps, video only
dash-video-avc1-7-1 mp4 1920x1080 DASH video 1483k , mp4_dash container, avc1.640028, 25fps, video only
hls-2622-0 mp4 1920x1080 2622k , avc1.640028, video only
hls-2622-1 mp4 1920x1080 2622k , avc1.640028, video only
dash-video_avc1_8 mp4 1920x1080 DASH video 3366k , mp4_dash container, avc1.640028, 25fps, video only
dash-video-avc1-8 mp4 1920x1080 DASH video 3366k , mp4_dash container, avc1.640028, 25fps, video only
hls-176-0 mp4 320x180 176k , avc1.42C00C, mp4a.40.2
hls-176-1 mp4 320x180 176k , avc1.42C00C, mp4a.40.2
hls-232-0 mp4 426x240 232k , avc1.42C015, mp4a.40.2
hls-232-1 mp4 426x240 232k , avc1.42C015, mp4a.40.2
hls-232-2 mp4 426x240 232k , avc1.42C015, mp4a.40.2
hls-303-0 mp4 640x360 303k , avc1.4D401E, mp4a.40.2
hls-303-1 mp4 640x360 303k , avc1.4D401E, mp4a.40.2
hls-303-2 mp4 640x360 303k , avc1.4D401E, mp4a.40.2
hls-596-0 mp4 854x480 596k , avc1.4D401F, mp4a.40.2
hls-596-1 mp4 854x480 596k , avc1.4D401F, mp4a.40.2
hls-596-2 mp4 854x480 596k , avc1.4D401F, mp4a.40.2
hls-1096-0 mp4 1280x720 1096k , avc1.640028, mp4a.40.2
hls-1096-1 mp4 1280x720 1096k , avc1.640028, mp4a.40.2
hls-1238 mp4 1280x720 1238k , avc1.640028, mp4a.40.2
hls-1565-0 mp4 1920x1080 1565k , avc1.640028, mp4a.40.2
hls-1565-1 mp4 1920x1080 1565k , avc1.640028, mp4a.40.2
hls-1565-2 mp4 1920x1080 1565k , avc1.640028, mp4a.40.2
hls-2761 mp4 1920x1080 2761k , avc1.640028, mp4a.40.2 (best)

I do not really know if they seriously have that many formats (???) or whether there are some mixed ones (different episodes?).
But it appears to me that there are indeed so many different options.

Further digging into extractor and returned api results showed. The extractor is requesting all possible configs encryption:plain;ladder:phone,tv;package:hls,dash. So all those different manifests are actually for different devices or better to say different types of devices. What confuses me the most. There is even a drm version (why would you have one drm version and so many non protected ones??).

I will likely just quick fix the regex and may add some more format information. There are even different containers.

As for a new release date. I cannot promise you whether there will be a new release today or tomorrow. But at least a fix will come. In the meantime you can use the master branch if you are familiar with git/python.

@Ashish0804
Copy link
Author

Thanks a lot for the fix. Glad i switched to yt-dlc. :)

@blackjack4494
Copy link
Owner

This should be fixed. Let me know if you still have problems @Ashish0804

@Ashish0804
Copy link
Author

This should be fixed. Let me know if you still have problems @Ashish0804

It was working fine few days but sadly it's again broken

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-F', '--verbose', '--force-ipv4', '--sleep-interval', '1', '--max-sleep-interval', '2', '--ignore-errors', '--no-continue', '--no-overwrites', '--output', '%(series)s-S%(season_number)sE%(episode_number)s-%(title)s.%(ext)s', 'https://www.hotstar.com/in/tv/namah-laxmi-narayan/1260010974/mahishasurs-ambush-of-swargalok/1000244356']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2020.05.08
[debug] Git HEAD: d7c2b43
[debug] Python version 3.7.7 (CPython) - Linux-5.4.0-7642-generic-x86_64-with-debian-bullseye-sid
[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4, rtmpdump 2.4
[debug] Proxy map: {}
[hotstar] 1000244356: Downloading webpage
[hotstar] 1000244356: Downloading token
ERROR: Unable to download JSON metadata: HTTP Error 403: Forbidden (caused by <HTTPError 403: 'Forbidden'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
File "/home/ashish/HDD/code/youtube-dl/youtube_dl/extractor/common.py", line 627, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/home/ashish/HDD/code/youtube-dl/youtube_dl/YoutubeDL.py", line 2238, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/home/ashish/miniconda3/lib/python3.7/urllib/request.py", line 531, in open
response = meth(req, response)
File "/home/ashish/miniconda3/lib/python3.7/urllib/request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
File "/home/ashish/miniconda3/lib/python3.7/urllib/request.py", line 569, in error
return self._call_chain(*args)
File "/home/ashish/miniconda3/lib/python3.7/urllib/request.py", line 503, in _call_chain
result = func(*args)
File "/home/ashish/miniconda3/lib/python3.7/urllib/request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)

@sumit-1988
Copy link

same here.

@blackjack4494
Copy link
Owner

blackjack4494 commented Sep 30, 2020

new fix is in progress :)
#145

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants