VideoHelp Forum




+ Reply to Thread
Results 1 to 12 of 12
  1. Member
    Join Date
    Nov 2023
    Location
    USA
    Search Comp PM
    Hello,

    rakuten.tv: https://www.rakuten.tv/fr/player/movies/stream/under-siege-2

    I have the video: https://prod-kami.wuaki.tv/v1/delivery/dash/avod/112e90df-6811-4a0b-ac67-ef44cf815e9f.mpd

    I have the PSSH: AAAAcHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFAIARIQ/kT3v/feOT962EDbK+F4eRoFd3Vha2kiLWZlNDRmN2JmZjdkZTM5M2Y3 YWQ4NDBkYjJiZTE3ODc5LW1jLTAtMTQ2LTAtMEjj3JWbBg==

    j'ai la license: https://prod-kami.wuaki.tv/v1/licensing/wvm/80c3c88a-77c6-404a-a400-1e8d095ad5e3?uuid=...0-1e8d095ad5e3


    I have filled in the different fields:

    PSSH:
    AAAAcHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFAIARIQ/kT3v/feOT962EDbK+F4eRoFd3Vha2kiLWZlNDRmN2JmZjdkZTM5M2Y3 YWQ4NDBkYjJiZTE3ODc5LW1jLTAtMTQ2LTAtMEjj3JWbBg==
    License:
    https://prod-kami.wuaki.tv/v1/licensing/wvm/80c3c88a-77c6-404a-a400-1e8d095ad5e3?uuid=...0-1e8d095ad5e3
    Headers:
    accept: “*/*”
    content-length: “316”
    Connection: keep-alive
    Build Info:
    google/sdk_gphone_x86/generic_x86:8.1.0/OSM1.180201.037/6739391:userdebug/dev-keys
    Proxy:
    Cache:

    Total key count: 403447
    ERROR
    Error 403: {“errors”:[{“code”:“exception:[kami.exception.http_exception.HttpException]”,“message”:“HttpException: Forbidden”}],“uuid”:“80c3c88a-77c6-404a-a400-1e8d095ad5e3”}


    and I get an error.

    can you help me?
    Quote Quote  
  2. Rakuten requires a script to fetch a fresh license. Using the one you get from browser requests isn't going to work.

    Code:
    --key fe44f7bff7de393f7ad840db2be17879:ae331632329128cb8915cf5e77bab3f0
    Quote Quote  
  3. Feels Good Man 2nHxWW6GkN1l916N3ayz8HQoi's Avatar
    Join Date
    Jan 2024
    Location
    Pepe Island
    Search Comp PM
    Originally Posted by stabbedbybrick View Post
    Rakuten requires a script to fetch a fresh license
    I'm curious, you're using a VPN on top of that script, right? I managed to find the right device id to simulate an android, but the request that gets the license URL still needs additional data about the media content.
    --[----->+<]>.++++++++++++.---.--------.
    [*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*]
    Quote Quote  
  4. Originally Posted by 2nHxWW6GkN1l916N3ayz8HQoi View Post
    Originally Posted by stabbedbybrick View Post
    Rakuten requires a script to fetch a fresh license
    I'm curious, you're using a VPN on top of that script, right? I managed to find the right device id to simulate an android, but the request that gets the license URL still needs additional data about the media content.
    Yes, you need a VPN/proxy to whatever region you're requesting the data from.

    You also need the correct params in the request, like device type, regional data, content id etc. If you check the network requests, you should see what kind of classification and params are needed for each title.
    Quote Quote  
  5. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    Originally Posted by stabbedbybrick View Post
    Originally Posted by 2nHxWW6GkN1l916N3ayz8HQoi View Post
    Originally Posted by stabbedbybrick View Post
    Rakuten requires a script to fetch a fresh license
    I'm curious, you're using a VPN on top of that script, right? I managed to find the right device id to simulate an android, but the request that gets the license URL still needs additional data about the media content.
    Yes, you need a VPN/proxy to whatever region you're requesting the data from.

    You also need the correct params in the request, like device type, regional data, content id etc. If you check the network requests, you should see what kind of classification and params are needed for each title.
    I made this script :
    Code:
    from pywidevine.cdm import Cdm
    from pywidevine.device import Device
    from pywidevine.pssh import PSSH
    import requests
    import xml.etree.ElementTree as ET
    import json
    
    DEVICE_UID = 'DEVICE_UID'
    
    def getpssh(url_mpd):
        response = requests.get(url_mpd, headers={'x-forwarded-for': '27.120.97.133',})
        root = ET.fromstring(response.content)
        return root[1][0][1][0].text
    
    headers = {
        'accept': 'application/json, text/plain, */*',
        'accept-language': 'fr-FR,fr;q=0.9',
        'cache-control': 'no-cache',
        'content-type': 'application/json',
        'origin': 'https://www.rakuten.tv',
        'pragma': 'no-cache',
        'priority': 'u=1, i',
        'referer': 'https://www.rakuten.tv/',
        'sec-ch-ua': '"Brave";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"macOS"',
        'sec-fetch-dest': 'empty',
        'sec-fetch-mode': 'cors',
        'sec-fetch-site': 'same-site',
        'sec-gpc': '1',
        'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
    }
    
    params = (
        ('classification_id', '23'),
        ('device_identifier', 'web'),
        ('device_stream_audio_quality', '2.0'),
        ('device_stream_hdr_type', 'NONE'),
        ('device_stream_video_quality', 'FHD'),
        ('disable_dash_legacy_packages', 'false'),
        ('locale', 'fr'),
        ('market_code', 'fr'),
    )
    
    payload = {'audio_language': 'FRA', 
               'audio_quality': '2.0', 
               'classification_id': '23', 
               'content_id': 'under-siege-2', 
               'content_type': 'movies', 
               'device_make': 'chrome', 
               'device_model': 'GENERIC', 
               'device_serial': 'not implemented', 
               'device_stream_video_quality': 'HD', 
               'device_uid': DEVICE_UID, 
               'device_year': 1970, 
               'gam_correlator': 1360514360499255, 
               'gdpr_consent_opt_out': '0', 
               'gdpr_consent': '', 
               'hdr_type': 'NONE', 
               'ifa_subscriber_id': None, 
               'ifa_type': 'ppid', 
               'player_height': 1080, 
               'player_width': 1920, 
               'player': 'web:DASH-CENC:WVM', 
               'publisher_provided_id': '6807a015-792c-4541-977e-65a58a99be3c', 
               'strict_video_quality': False, 
               'subtitle_formats': ['vtt'], 
               'subtitle_language': 'MIS', 
               'support_closed_captions': True, 
               'video_type': 'stream', 
               'support_thumbnails': True, 
               'app_bundle': 'com.rakutentv.web', 
               'app_name': 'RakutenTV', 
               'url': 'rakuten.tv', 
               'requestedContent': {'live': False, 'duration': 6000, 'genres': ['Action', 'Thriller'], 'id': 163193, 'rating': '12', 'title': 'Under Siege 2', 'adOptions': {'channelID': 3273, 'gdprAccepted': False, 'gdprConsentString': '', 'limitTargetedAds': 1, 'playerOrigin': 'playerpage', 'gdprConsentOptOut': '0', 'publisherProvidedId': '6807a015-792c-4541-977e-65a58a99be3c'}}}
    
    data = requests.post('https://gizmo.rakuten.tv/v3/avod/streamings', headers=headers, params=params, json=payload).json()
    lic_url = data['data']['stream_infos'][0]['license_url']
    mpd_url = data['data']['stream_infos'][0]['url']
    print('lic_url: ', lic_url)
    
    pssh = getpssh(mpd_url)
    print('pssh: ', pssh)
    pssh = PSSH(pssh)
    
    device = Device.load(r"/Users/noham/Documents/GitHub/DRM-remover/TOOLS/WVD/xiaomi_redmi_5_plus_v5.1.0-android_701ec55d_4445_l3.wvd")
    cdm = Cdm.from_device(device)
    session_id = cdm.open()
    challenge = cdm.get_license_challenge(session_id, pssh)
    licence = requests.post(lic_url, headers = headers, data=challenge)
    print('licence: ', licence.text)
    licence.raise_for_status()
    cdm.parse_license(session_id, licence.content)
    for key in cdm.get_keys(session_id):
        if key.type=='CONTENT':
            print(f"\n--key {key.kid.hex}:{key.key.hex()}")
    cdm.close(session_id)
    But I'm still getting :
    HTML Code:
    lic_url:  https://prod-kami.wuaki.tv/v1/licensing/wvm/18d9cab8-65c6-4e57-94c0-bb945398d72e?uuid=18d9cab8-65c6-4e57-94c0-bb945398d72e
    pssh:  AAAAcHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFAIARIQ/kT3v/feOT962EDbK+F4eRoFd3Vha2kiLWZlNDRmN2JmZjdkZTM5M2Y3YWQ4NDBkYjJiZTE3ODc5LW1jLTAtMTQ2LTAtMEjj3JWbBg==
    licence:  {"errors":[{"code":"exception:[kami.exception.http_exception.HttpException]","message":"HttpException: Forbidden"}],"uuid":"18d9cab8-65c6-4e57-94c0-bb945398d72e"}
    
    Traceback (most recent call last):
      File "/Users/noham/Documents/GitHub/DRM-remover/experiments/rakuten/key_script.py", line 90, in <module>
        licence.raise_for_status()
      File "/Users/noham/miniconda3/envs/310/lib/python3.10/site-packages/requests/models.py", line 1024, in raise_for_status
        raise HTTPError(http_error_msg, response=self)
    requests.exceptions.HTTPError: 403 Client Error: FORBIDDEN for url: https://prod-kami.wuaki.tv/v1/licensing/wvm/18d9cab8-65c6-4e57-94c0-bb945398d72e?uuid=18d9cab8-65c6-4e57-94c0-bb945398d72e
    Quote Quote  
  6. you can request from android device, but if stable have better method to bypass web request, that is great.
    Quote Quote  
  7. Originally Posted by ludo View Post
    Hello,

    rakuten.tv: https://www.rakuten.tv/fr/player/movies/stream/under-siege-2

    I have the video: https://prod-kami.wuaki.tv/v1/delivery/dash/avod/112e90df-6811-4a0b-ac67-ef44cf815e9f.mpd

    I have the PSSH: AAAAcHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFAIARIQ/kT3v/feOT962EDbK+F4eRoFd3Vha2kiLWZlNDRmN2JmZjdkZTM5M2Y3 YWQ4NDBkYjJiZTE3ODc5LW1jLTAtMTQ2LTAtMEjj3JWbBg==

    j'ai la license: https://prod-kami.wuaki.tv/v1/licensing/wvm/80c3c88a-77c6-404a-a400-1e8d095ad5e3?uuid=...0-1e8d095ad5e3


    I have filled in the different fields:

    PSSH:
    AAAAcHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFAIARIQ/kT3v/feOT962EDbK+F4eRoFd3Vha2kiLWZlNDRmN2JmZjdkZTM5M2Y3 YWQ4NDBkYjJiZTE3ODc5LW1jLTAtMTQ2LTAtMEjj3JWbBg==
    License:
    https://prod-kami.wuaki.tv/v1/licensing/wvm/80c3c88a-77c6-404a-a400-1e8d095ad5e3?uuid=...0-1e8d095ad5e3
    Headers:
    accept: “*/*”
    content-length: “316”
    Connection: keep-alive
    Build Info:
    google/sdk_gphone_x86/generic_x86:8.1.0/OSM1.180201.037/6739391:userdebug/dev-keys
    Proxy:
    Cache:

    Total key count: 403447
    ERROR
    Error 403: {“errors”:[{“code”:“exception:[kami.exception.http_exception.HttpException]”,“message”:“HttpException: Forbidden”}],“uuid”:“80c3c88a-77c6-404a-a400-1e8d095ad5e3”}


    and I get an error.

    can you help me?
    You won't be able to use data from the browser, you have to capture traffic from the Android device
    Quote Quote  
  8. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    Originally Posted by Kadio View Post
    You won't be able to use data from the browser, you have to capture traffic from the Android device
    Got it ! Thanks for the answer !
    Quote Quote  
  9. Member
    Join Date
    Nov 2023
    Location
    USA
    Search Comp PM
    I would like to know what tools are used to recover the rakuten.tv keys. And the procedure to get them.

    thank you
    Quote Quote  
  10. Member
    Join Date
    Oct 2023
    Location
    France
    Search PM
    Hi,
    Does anyone know if it is possible to download rakuten at 1080? Any tricks?
    Quote Quote  
  11. Feels Good Man 2nHxWW6GkN1l916N3ayz8HQoi's Avatar
    Join Date
    Jan 2024
    Location
    Pepe Island
    Search Comp PM
    Originally Posted by rominhos View Post
    Hi,
    Does anyone know if it is possible to download rakuten at 1080? Any tricks?
    I experimented once with modifying some headers and I even got 4k content for some videos. However, the problem I encountered for that high quality content is that it's blocked behind L1 or fairplay/playready
    --[----->+<]>.++++++++++++.---.--------.
    [*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*]
    Quote Quote  
  12. is there any solution yet? how to download 1080p
    Quote Quote  



Similar Threads

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