VideoHelp Forum
+ Reply to Thread
Page 2 of 2
FirstFirst 1 2
Results 31 to 42 of 42
Thread
  1. then any big boss can point how to calculate the sha256hash in their graphql's payload to get meta data? i tried hash that client secrect, not work. just learning something new. thanks in advnce.
    Quote Quote  
  2. The existing Kodi plugins should have all information needed - the Kodinerds repo has one at https://github.com/Collabsvito/REpo-AiO/tree/master/MATRIX/plugin.video.rtlgroup.de

    Edit - hmm; does this plugin even use graphql endpoints? The joyn plugin does though, and it has the information needed to calculate the sha256hash values. They do something along

    Code:
    'sha256Hash': sha256(params['query'].encode('utf-8')).hexdigest() if 'query' in params else CONST['GRAPHQL'][operation].get('HASH')
    Last edited by Obo; 24th Mar 2024 at 02:18.
    Quote Quote  
  3. Originally Posted by Obo View Post
    The existing Kodi plugins should have all information needed - the Kodinerds repo has one at https://github.com/Collabsvito/REpo-AiO/tree/master/MATRIX/plugin.video.rtlgroup.de

    Edit - hmm; does this plugin even use graphql endpoints? The joyn plugin does though, and it has the information needed to calculate the sha256hash values. They do something along

    Code:
    'sha256Hash': sha256(params['query'].encode('utf-8')).hexdigest() if 'query' in params else CONST['GRAPHQL'][operation].get('HASH')
    thank you @Obo, let me see how the sha256 works.
    Quote Quote  
  4. Seems at least similar; many operations seem to have a constant hash value, independent of the variables you use in the graphql query. That's at least true for operations "MovieDetail", "Recommendations", "SeoUrlData", "ExploreHighlightWatch".
    Quote Quote  
  5. ok,I got 401 unauthorized error, I thought that sha256hash maybe control something, since it change every time. maybe I'm wrong.
    Quote Quote  
  6. Originally Posted by Obo View Post
    You should really read the stickies by A_n_g_e_l_a then
    The x-auth-token is in the headers shown in your browsers' dev console for the license request, and as for the CDM: there's a thread by Karoolus with plenty of "Ready to use CDMs" (last updated on friday).
    Thank you Obo.
    Thank you for the tipp concerning "Ready to use CDMs" by Karoolus . I have read the thread and downloded a CRM.

    Yesterday, I already read the stickies by A_n_g_e_l_a several times, but unfortunately don't understand the part concerning "finding the x-auth-token in the dev console"
    When I watch the video and press F12 to open the dev. console, I don't find any information concerning "x-auth" in any of the tabs?!? I have tried firefox and chrome. Is there a thread with screenshots or a video so I can see and learn the exact steps?
    Quote Quote  
  7. Member
    Join Date
    Dec 2021
    Location
    england
    Search Comp PM
    Originally Posted by Zwergd84B View Post
    Originally Posted by Obo View Post
    You should really read the stickies by A_n_g_e_l_a then
    The x-auth-token is in the headers shown in your browsers' dev console for the license request, and as for the CDM: there's a thread by Karoolus with plenty of "Ready to use CDMs" (last updated on friday).
    Thank you Obo.
    Thank you for the tipp concerning "Ready to use CDMs" by Karoolus . I have read the thread and downloded a CRM.

    Yesterday, I already read the stickies by A_n_g_e_l_a several times, but unfortunately don't understand the part concerning "finding the x-auth-token in the dev console"
    When I watch the video and press F12 to open the dev. console, I don't find any information concerning "x-auth" in any of the tabs?!? I have tried firefox and chrome. Is there a thread with screenshots or a video so I can see and learn the exact steps?
    its in license url, use header tab so you can find x-auth there
    Quote Quote  
  8. I have some doubt that you really read through the stickies, but anyway

    - press F12 to open the dev console in your browser, e.g. Chrome (I use Brave Browser, but it's Chromium based as well)
    - open the video, e.g. https://plus.rtl.de/video-tv/shows/genial-daneben-1000003657/staffel-2-989856/episode-...arg-1000193738, so that it actually begins to play.
    - make sure the "Network" tab of the dev console is opened
    - type "license" in the search field
    - select the (usually) last request with that name - in it's "payload" tab it should display some binary data (which is the browser's License Challenge data that you can't use, but that's where your CDM comes into play).
    - right click (or Mac: Ctrl+Click) on the request and choose Copy->Copy as cURL
    - paste that copied content into some text editor
    - find the line that starts with "-H 'x-auth-token: eyJh...'"

    That's your x-auth-token, that has to be part of your headers dict in l3.py

    If everything else is set up correctly at your side, it should spit out the key for the "Sparsarg" video:

    Code:
    b476f934c437f7c031f302e27050981c:b8854629b9d45b303dc8152106eb6c2e
    And no, I won't create screenshots.
    Quote Quote  
  9. Originally Posted by Obo View Post
    I have some doubt that you really read through the stickies, but anyway
    ...
    That's your x-auth-token, that has to be part of your headers dict in l3.py
    If everything else is set up correctly at your side, it should spit out the key for the "Sparsarg" video:
    I am really grateful for your help and patience and I can assure you, that I have read lots of threads during the last 2 days.
    With your guidance, I found the x-auth-token and copied it to the headers.py.


    When I execute the l3.py and enter the mpd and license-URL, I get the following error-message.
    * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
    D:\Downloads\widevine_keys-main>python l3.py

    Input MPD URL: https://vodnowusoawsdash-a.akamaihd.net/p112/cves/sd/rtlplus/1000193736/2-1-1-3-2.ism/v1.mpd
    License URL: https://widevine.tvnow.de/index/license

    PSSH obtained.
    AAAAVHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADQIARIgZT YzMDQ3ZTQyMTkyN2Q2ZTI5MmRhZDFjMWRjYmU0ZGMiCjEwMDAx OTM3MzYqAlNE
    Traceback (most recent call last):
    File "D:\Downloads\widevine_keys-main\l3.py", line 130, in <module>
    correct, keys = WV_Function(pssh, lic_url)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "D:\Downloads\widevine_keys-main\l3.py", line 44, in WV_Function
    responses.append(requests.post(url=lic_url, headers=headers.headers, data=raw_request, params=params))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxx\AppData\Local\Programs\Python\Pyth on312\Lib\site-packages\requests\api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^
    File "C:\Users\xxxxx\AppData\Local\Programs\Python\Pyth on312\Lib\site-packages\requests\api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxx\AppData\Local\Programs\Python\Pyth on312\Lib\site-packages\requests\sessions.py", line 575, in request
    prep = self.prepare_request(req)
    ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxx\AppData\Local\Programs\Python\Pyth on312\Lib\site-packages\requests\sessions.py", line 486, in prepare_request
    p.prepare(
    File "C:\Users\xxxxx\AppData\Local\Programs\Python\Pyth on312\Lib\site-packages\requests\models.py", line 369, in prepare
    self.prepare_headers(headers)
    File "C:\Users\xxxxx\AppData\Local\Programs\Python\Pyth on312\Lib\site-packages\requests\models.py", line 489, in prepare_headers
    for header in headers.items():
    ^^^^^^^^^^^^^
    AttributeError: 'set' object has no attribute 'items'
    * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    I did my best to google these error-messages, but didn't find a sollution?

    I'm really sorry to ask so many (stupid) questions, but I really want to do it myself in the future
    Quote Quote  
  10. I solved my problem by following A_n_g_e_l_a's perfect step-by-step-tutorial
    https://forum.videohelp.com/threads/411862-Beyond-WKS-KEYS
    The problem of the errors must have been, that first I used the outdated WKS-Keys instead.

    So again: thank you very much for helping me succeed, especially Obo
    Quote Quote  
  11. I have one more question:
    the resolution of the donwloaded video is 960x540 (URL of mpd: https://vodnowusoawsdash-a.akamaihd.net/p112/cves/sd/rtlplus/1000193736/2-1-1-3-2.ism/v1.mpd). When watching the video on the internet (https://plus.rtl.de/video-tv/shows/genial-daneben-1000003657/staffel-2-989856/episode-...irl-1000193736), there are different types of video-quality. How can I download for example a video in low or high quality?
    Quote Quote  
  12. The mpd URL only has these formats:

    Code:
    yt-dlp --allow-u -F https://vodnowusoawsdash-a.akamaihd.net/p112/cves/sd/rtlplus/1000193736/2-1-1-3-2.ism/v1.mpd
    ...
    Available formats for v1:
    ID             EXT RESOLUTION │   TBR PROTO │ VCODEC        VBR ACODEC      ABR ASR MORE INFO
    ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    audio_1=130000 m4a audio only │  130k dash  │ audio only        mp4a.40.2  130k 48k [de] DRM, DASH audio, m4a_dash
    video=389000   mp4 640x360    │  389k dash  │ avc1.4D401E  389k video only          DRM, DASH video, mp4_dash
    video=770000   mp4 768x432    │  770k dash  │ avc1.4D401E  770k video only          DRM, DASH video, mp4_dash
    video=1489000  mp4 960x540    │ 1489k dash  │ avc1.4D401F 1489k video only          DRM, DASH video, mp4_dash
    One way to tell yt-dlp to download the 768x432 video is to use arg '-f "bv*[height<=432]+ba/b[height<=432]"' or to explicitly choose "-f video=770000" - see the github page of yt-dlp.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!