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

Site support request for NPOPlus #6029

Open
notDavid opened this issue Jun 19, 2015 · 2 comments
Open

Site support request for NPOPlus #6029

notDavid opened this issue Jun 19, 2015 · 2 comments

Comments

@notDavid
Copy link

@notDavid notDavid commented Jun 19, 2015

Hi, http://npoplus.nl/ is the payed version of http://www.npo.nl/ which is already supported by youtube-dl.
A free account (for 1 month) can be registered here (without having to provide any payment information): https://www.nlziet.nl/account/register

$ youtube-dl -v http://npoplus.nl/play/first_dates/2015-04-28/BNN_101373754/180019
[debug] System config: []
[debug] User config: [u'--no-part']
[debug] Command-line args: [u'-v', u'http://npoplus.nl/play/first_dates/2015-04-28/BNN_101373754/180019']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2015.06.15
[debug] Python version 2.7.6 - Darwin-14.4.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 2.6.3, ffprobe 2.6.3
[debug] Proxy map: {}
[generic] 180019: Requesting header
WARNING: Falling back on generic information extractor.
[generic] 180019: Downloading webpage
[generic] 180019: Extracting information
[redirect] Following redirect to http://npoplus.nl/unsupported
[generic] unsupported: Requesting header
[redirect] Following redirect to http://npoplus.nl/unsupported/
[generic] unsupported: Requesting header
WARNING: Falling back on generic information extractor.
[generic] unsupported: Downloading webpage
[generic] unsupported: Extracting information
ERROR: Unsupported URL: http://npoplus.nl/unsupported/
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/generic.py", line 1020, in _real_extract
    doc = parse_xml(webpage)
  File "/usr/local/bin/youtube-dl/youtube_dl/utils.py", line 1558, in parse_xml
    tree = xml.etree.ElementTree.XML(s.encode('utf-8'), **kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1300, in XML
    parser.feed(text)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1642, in feed
    self._raiseerror(v)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1506, in _raiseerror
    raise err
ParseError: mismatched tag: line 119, column 3
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 650, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 273, in extract
    return self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/generic.py", line 1571, in _real_extract
    raise UnsupportedError(url)
UnsupportedError: Unsupported URL: http://npoplus.nl/unsupported/
@rrooij
Copy link
Contributor

@rrooij rrooij commented Jun 26, 2015

Is this useful?

http://npoplus.nl/api/infi/titles/189676/all

I can't find where it gets the ID (in this case 189676).

Edit: I think this is a very hard one. All the content is DRM'd Silverlight. Switching user agents to iOS doesn't work too, because it recommends playing the videos with their "app" instead of playing the video with HTML5.

Edit 2: Just tried to reverse engineer the Android app, but I couldn't find an hidden key or anything. I know now however, that they use this DRM service in combination with Microsoft PlayReady.

@martysmartySE
Copy link

@martysmartySE martysmartySE commented Mar 23, 2017

Should this issue perhaps be renamed to support NLZiet?

I've been doing some checking on this. Using this video as example: http://app.nlziet.nl/video/rtl/116955

The website seems to make a connection to:
http://api.nlziet.nl/v1/Customer?oauth_token=###&oauth_consumer_key=key&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_timestamp=###&oauth_nonce=XO63XX&oauth_signature=####

Next step is getting the actual video details:
http://api.nlziet.nl/v1/video?oauth_token=###&oauth_consumer_key=key&oauth_signature_method=HMAC-SHA1&expand=true&extra=comscore&id=116955&oauth_version=1.0&oauth_timestamp=###&oauth_nonce=Nlnr44&oauth_signature=###

Here the "id" matches the ID of the video. It returns some data, including a "ContentIdDeelnemer" ID

This is then used in getting:
http://tm-videourlfeed.rtl.nl/api/url/?device=pc&format=dash&drm=widevine

This then returns a to a URL to a Manifest.mpd file, which I have attached (renamed to .txt)
Manifest.txt

Not sure this helps, but I hope so. I can do more debugging if anyone has any specifics.

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

Successfully merging a pull request may close this issue.

None yet
4 participants
You can’t perform that action at this time.