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

Discovery changed URL, correct extractor is not being recognized #21808

Closed
5 tasks done
selfstro opened this issue Jul 16, 2019 · 18 comments
Closed
5 tasks done

Discovery changed URL, correct extractor is not being recognized #21808

selfstro opened this issue Jul 16, 2019 · 18 comments

Comments

@selfstro
Copy link

Checklist

  • I'm reporting a broken site support
  • I've verified that I'm running youtube-dl version 2019.07.16
  • 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

youtube-dl -v https://go.discovery.com/tv-shows/savage-builds/full-episodes/forging-excalibur
[debug] System config: []
[debug] User config: ['--ap-mso', 'Charter_Direct', '--ap-username', 'PRIVATE', '--ap-password', 'PRIVATE', '--external-downloader-args', '-loglevel panic', '-o%(series)s-S%(season_number)02dE%(episode_number)02d-%(title)s.%(ext)s']
[debug] Custom config: []
[debug] Command-line args: ['-v', 'https://go.discovery.com/tv-shows/savage-builds/full-episodes/forging-excalibur']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.07.16
[debug] Python version 3.7.3 (CPython) - Darwin-17.7.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 4.1.4, ffprobe 4.1.4, rtmpdump 2.4
[debug] Proxy map: {}
[generic] forging-excalibur: Requesting header
WARNING: Falling back on generic information extractor.
[generic] forging-excalibur: Downloading webpage
[generic] forging-excalibur: Extracting information
ERROR: Unsupported URL: https://go.discovery.com/tv-shows/savage-builds/full-episodes/forging-excalibur
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 796, in extract_info
ie_result = ie.extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 530, in extract
ie_result = self._real_extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/generic.py", line 3333, in _real_extract
raise UnsupportedError(url)
youtube_dl.utils.UnsupportedError: Unsupported URL: https://go.discovery.com/tv-shows/savage-builds/full-episodes/forging-excalibur

Description

Discovery has changed (added?) a new URL format of "https://go.discovery.com/tv-shows/SHOWNAME/full-episodes/EPISODENAME" so the correct extractor is not being recognized. I have tested this with several shows and get the same "Unsupported URL" error.

@dstftw
Copy link
Collaborator

dstftw commented Jul 17, 2019

You must provide credentials for any work on this.

@selfstro
Copy link
Author

selfstro commented Jul 18, 2019

I sent an account creation request to the email address listed on your GitHub profile.

@xxtensazenxx
Copy link

Also having this issue

@deadman36g
Copy link

I would also like to confirm this issue.

@Diegus83
Copy link

This was working a week ago without the need to login, I was able to get the first four shorts of "Inside the episode" without issues.
The only difference I can see if that last week URL was "discovery.com" and this week is "go.discovery.com
I can also confirm that as of today (July 20th) you don't need any credentials to play the video in this URL. I tried both an incognito window and a different browser and I was able to play it.
https://go.discovery.com/tv-shows/savage-builds/full-episodes/inside-the-episode-hollywoods-deadliest-weapon

@edm00se
Copy link

edm00se commented Jul 20, 2019

@dstftw no provider account was previously required for the "inside the episode" content, nor is it to view in browser.

@dstftw
Copy link
Collaborator

dstftw commented Jul 21, 2019

Wrong.
image

@Diegus83
Copy link

Diegus83 commented Jul 21, 2019

UPDATE
This commit fixed the issue, at least with the free short videos, I don't have a TV provider login to try the others.
3b446ab

python -m youtube_dl https://go.discovery.com/tv-shows/savage-builds/full-episodes/inside-the-episode-hollywoods-deadliest-weapon [Discovery] inside-the-episode-hollywoods-deadliest-weapon: Downloading webpage [Discovery] inside-the-episode-hollywoods-deadliest-weapon: Downloading JSON metadata [Discovery] inside-the-episode-hollywoods-deadliest-weapon: Downloading m3u8 information [hlsnative] Downloading m3u8 manifest WARNING: hlsnative has detected features it does not support, extraction will be delegated to ffmpeg [download] Destination: Inside the Episode - Hollywood's Deadliest Weapon-5d32171d85aeee0ab80c0b0b.mp4

ORIGINAL MESSAGE
I think I see where the confusion could be coming from. At least in my case I was referring to the short "Inside the episode" videos, and those don't require a login, at least on my case.
Screen Shot 2019-07-21 at 11 19 05 AM

@selfstro
Copy link
Author

I can confirm that all videos on this page now work with the latest commit (608b8a4). I always pass in my credentials from .netrc and use --cookies to pass in a current login token.

What is the usual process for supplying a tv-provider account to the devs?

@RoyBoy83
Copy link

I'd be will to provide the Devs with credentials to get full episodes working again.

@Diegus83
Copy link

Diegus83 commented Aug 1, 2019

Is anyone having problems with this again? URLs that worked fine 2 days ago are not working. Tried two different versions of Python as well

Output with Python 3

python3 /usr/local/bin/youtube-dl --verbose https://go.discovery.com/tv-shows/savage-builds/full-episodes/inside-the-episode-mega-food-fight
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://go.discovery.com/tv-shows/savage-builds/full-episodes/inside-the-episode-mega-food-fight']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.07.30
[debug] Python version 3.7.4 (CPython) - Darwin-18.7.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 4.1.4, ffprobe 4.1.4, rtmpdump 2.4
[debug] Proxy map: {}
[Discovery] inside-the-episode-mega-food-fight: Downloading webpage
ERROR: An extractor error has occurred. (caused by KeyError('/tv-shows/savage-builds/full-episodes/inside-the-episode-mega-food-fight')); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/discovery.py", line 73, in _real_extract
    content_blocks = react_data['layout'][path]['contentBlocks']
KeyError: '/tv-shows/savage-builds/full-episodes/inside-the-episode-mega-food-fight'
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/discovery.py", line 73, in _real_extract
    content_blocks = react_data['layout'][path]['contentBlocks']
KeyError: '/tv-shows/savage-builds/full-episodes/inside-the-episode-mega-food-fight'

During handling of the above exception, another exception occurred:

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

Output with Python 2

/usr/local/bin/youtube-dl --verbose https://go.discovery.com/tv-shows/savage-builds/full-episodes/inside-the-episode-mega-food-fight
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'--verbose', u'https://go.discovery.com/tv-shows/savage-builds/full-episodes/inside-the-episode-mega-food-fight']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.07.30
[debug] Python version 2.7.10 (CPython) - Darwin-18.7.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 4.1.4, ffprobe 4.1.4, rtmpdump 2.4
[debug] Proxy map: {}
[Discovery] inside-the-episode-mega-food-fight: Downloading webpage
ERROR: An extractor error has occurred. (caused by KeyError(u'/tv-shows/savage-builds/full-episodes/inside-the-episode-mega-food-fight',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/discovery.py", line 73, in _real_extract
    content_blocks = react_data['layout'][path]['contentBlocks']
KeyError: u'/tv-shows/savage-builds/full-episodes/inside-the-episode-mega-food-fight'
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 796, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 543, in extract
    raise ExtractorError('An extractor error has occurred.', cause=e)
ExtractorError: An extractor error has occurred. (caused by KeyError(u'/tv-shows/savage-builds/full-episodes/inside-the-episode-mega-food-fight',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

@ghost
Copy link

ghost commented Aug 8, 2019

This seems to have broken the naming for Food Network and Cooking Channel Shows, the series name is now "NA" prior to this the correct series name was given

@RoyBoy83
Copy link

RoyBoy83 commented Aug 8, 2019 via email

@ghost
Copy link

ghost commented Aug 8, 2019

I have traced it a bit further and the video JSON that it gets and passes to the Info Extractor does not contain the Series Name any more, but there is an ID, wonder if there is a way to lookup the ID to get the series name?

@ghost
Copy link

ghost commented Aug 9, 2019

@remitamine Thanks for that fix, have tested here and can confirm it works.

@deadman36g
Copy link

deadman36g commented Aug 9, 2019

I am trying to get an episode from Discovery GO using my Cable provider login but am unable to get it working

deadman36g@openmediavault:~$ youtube-dl -v --cookies cookies.txt https://go.discovery.com/tv-shows/naked-and-afraid/full-episodes/stalked-on-the-savannah [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: [u'-v', u'--cookies', u'cookies.txt', u'https://go.discovery.com/tv-shows/naked-and-afraid/full-episodes/stalked-on-the-savannah'] [debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8 [debug] youtube-dl version 2019.08.02 [debug] Python version 2.7.13 (CPython) - Linux-4.19.0-0.bpo.5-amd64-x86_64-with-debian-9.9 [debug] exe versions: none [debug] Proxy map: {} Traceback (most recent call last): File "/usr/local/bin/youtube-dl", line 11, in <module> sys.exit(main()) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/__init__.py", line 474, in main _real_main(argv) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/__init__.py", line 464, in _real_main retcode = ydl.download(all_urls) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 2008, in download url, force_generic_extractor=self.params.get('force_generic_extractor', False)) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 796, in extract_info ie_result = ie.extract(url) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 530, in extract ie_result = self._real_extract(url) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/discovery.py", line 65, in _real_extract cookies = self._get_cookies(url) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 2819, in _get_cookies return compat_cookies.SimpleCookie(req.get_header('Cookie')) File "/usr/lib/python2.7/Cookie.py", line 583, in __init__ if input: self.load(input) File "/usr/lib/python2.7/Cookie.py", line 643, in load for k, v in rawdata.items(): AttributeError: 'unicode' object has no attribute 'items'

I also have my credentials saved to .netrc as
machine discovery login password
machine discoverygo login password

but that also is not working for me.

Any help?

The url in question is
https://go.discovery.com/tv-shows/naked-and-afraid/full-episodes/stalked-on-the-savannah

@ghost
Copy link

ghost commented Aug 9, 2019

I am trying to get an episode from Discovery GO using my Cable provider login but am unable to get it working

deadman36g@openmediavault:~$ youtube-dl -v --cookies cookies.txt https://go.discovery.com/tv-shows/naked-and-afraid/full-episodes/stalked-on-the-savannah [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: [u'-v', u'--cookies', u'cookies.txt', u'https://go.discovery.com/tv-shows/naked-and-afraid/full-episodes/stalked-on-the-savannah'] [debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8 [debug] youtube-dl version 2019.08.02 [debug] Python version 2.7.13 (CPython) - Linux-4.19.0-0.bpo.5-amd64-x86_64-with-debian-9.9 [debug] exe versions: none [debug] Proxy map: {} Traceback (most recent call last): File "/usr/local/bin/youtube-dl", line 11, in <module> sys.exit(main()) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/__init__.py", line 474, in main _real_main(argv) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/__init__.py", line 464, in _real_main retcode = ydl.download(all_urls) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 2008, in download url, force_generic_extractor=self.params.get('force_generic_extractor', False)) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 796, in extract_info ie_result = ie.extract(url) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 530, in extract ie_result = self._real_extract(url) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/discovery.py", line 65, in _real_extract cookies = self._get_cookies(url) File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 2819, in _get_cookies return compat_cookies.SimpleCookie(req.get_header('Cookie')) File "/usr/lib/python2.7/Cookie.py", line 583, in __init__ if input: self.load(input) File "/usr/lib/python2.7/Cookie.py", line 643, in load for k, v in rawdata.items(): AttributeError: 'unicode' object has no attribute 'items'

I also have my credentials saved to .netrc as
machine discovery login password
machine discoverygo login password

but that also is not working for me.

Any help?

The url in question is
https://go.discovery.com/tv-shows/naked-and-afraid/full-episodes/stalked-on-the-savannah

Try using Python 3 that should "fix" the issue you are seeing there.

@deadman36g
Copy link

@timethrow Thank you, that fixed it.

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

No branches or pull requests

7 participants