VideoHelp Forum




+ Reply to Thread
Results 1 to 16 of 16
  1. I've looked all over, tried many different ways, but I'm having trouble with actually getting the files from this mpd using yt-dlp.

    When I use -F to check the list of files, it shows me all the different video files and the one audio file.

    The streamed file is available in two different codecs: VP9 and H264. The H264 is standard, easy to grab, but the VP9 is behind DRM.

    MPD:
    HTML Code:
    https://stc018.dmm.com/digital/st3.0:KED8kFSGaNTtVVI-FeD7a-UDPJ1KPBKbUIePaIzGgUujcww75ZGocySGC4ccyTRgYKy5GBRrChsfWF55WvXFW2KJu7VvQv-49jJ2tHf-WUWp1yX9ZUTOANe40Yy7wuFSm0ukG-GInf0H49speVDG4BqFllgPGgTpJjjIisUdqREFXgsX+Q5884IcXRFDxbHW803Z0opDxkzg7EvfqsM22SBuu31l5NgmK1FIBcBjkrcT2IoE608a0KiCWn-ryDnSKQPhRniD695DuZx5wDgcPfEuSWu9sYFPFw1y74DmIeyKbaDVC+d6USOC2kYeWU95pROlp9qTMqBJs1Zr0yOz9Q==/hVMGVQi1K9E0572ZMgkbn9TBYHGh/-/manifest.mpd
    I've tried adding headers (user-agent, referer, cookies) to see if that's the problem, but no luck.

    The errors I get, for example:

    HTML Code:
     [ERROR] CUID#7 - Download aborted.
      -> [HttpSkipResponseCommand.cc:218] errorCode=3 Resource not found
    
    aria2 will resume download if the transfer is restarted.
    If there are any errors, then see the log file. See '-l' option in help/man page for details.
    
    ERROR: aria2c exited with code 3
    Thank you for your help and input.
    Quote Quote  
  2. Are you sure the video being streamed in your browser is actually VP9 and not the H264 one? Can you see the actual webm chunks showing up in the network tab?
    You say the H264 is easily grabbed. Both MPDs show up in network tab?
    What is the site?
    click click2
    If I/my posts ever helped you, and you want to give back, send me a private message!
    Quote Quote  
  3. The site is dmm.co.jp. The purchase itself is a 4K video.

    There are two different links when the video page is opened up. One link is the VP9 stream, and they also include a link to the H264 one. I can get the H264 one because it works the same as any other video that has that codec on that site. But VP9 is behind DRM and it's making me rip my hair out to try to get the video and audio files.
    Quote Quote  
  4. You also need L1 CDM for 4K so even if you download...
    click click2
    If I/my posts ever helped you, and you want to give back, send me a private message!
    Quote Quote  
  5. I've also been trying to get this to work with no luck, but I can maybe shed a little light and hopefully someone else more versed can chime in.

    The url you want to use to download the video file is the one that has .webm extension in the network browser. If you use curl and specify a --range you can download the video in chunks. That's about as far as I've gotten because I still can't figure out a way to get the decryption keys. I think they're not using widevine for this but clearkey which from what I've read here is supposed to be easy and stored in plain text. You can even see the decryption key if you look at the encrypted video with ffprobe and you can also see the key in the license request, however the k is seemingly encrypted and NOT in plain text and that's where I'm stuck.

    I think I've seen a previous post on this forum talking about this but it never really got off the ground and someone had said they encrypt the k with javascript somehow but I'm not sure.

    I'd love if someone else could take a look and see if we can get this figured out. This has been bugging me for ages and I'd love to get it solved.

    Also in regards to the L1 cdm, I don't believe that to be the case here.
    Quote Quote  
  6. Have you tried also using
    Code:
    --cookies-from-browser firefox
    Btw, I would focus on getting the key first. If you determine it's an L1 protected streams, there's no point even trying to download the encrypted video.
    Quote Quote  
  7. so I was able to download the entire video by using a stream downloader, so that part seems to be a non issue now. However the decryption keys still prove a problem. it appears the response is sending an encrypted/obfuscated k and I assume gets deobfuscated/decrypted in the javascript or player somehow.

    the request is sent to a https://mlic.dmm.co.jp/drm/clearkey/license license url which seems to imply it's clearkey
    Here is what the request looks like
    Code:
    {
        "kids": [
            "BaOgqXi8PPGCwhHNfMzu9A",
            "BaOgqXi8PPGCwhHNfMzu9Q",
            "BaOgqXi8PPGCwhHNfMzu9g",
            "BaOgqXi8PPGCwhHNfMzu9w",
            "AAAAAAAAAAAAAAAAAAAAAA",
            "eyJ2IjoiMiIsImZpZCI6Ig",
            "aF8xMTAwaHpnZDAwMTQ2YQ",
            "IiwicGwiOiJleUp3YVdRaQ",
            "T2lKb1h6RXhNREJvZW1kaw",
            "TURBeE5EWmhJaXdpWkdWcw",
            "YVhabGNubGZkSGx3WlNJNg",
            "SW5OMEluMCIsInN2aWQiOg",
            "ImRpZ2l0YWwiLCJjcyI6Ig",
            "ZGQxMTQzMjcyOTU4ODZmNg",
            "NjFiZjFkMGI1YTFmMTdiNA",
            "In0AAAAAAAAAAAAAAAAAAA"
        ],
        "type": "temporary",
        "spki": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAprC51O-w6ML6UqxHT17dDe4dt3gbGNzSnddR7nX8hnuuXLjGSyzCmvTwLM7jSHmbSqwsAnCgqof8A8366o679Y5YKI9jzY4-0Av1p-XEvm_7lslgh5NG5lAscjfIQfid-YyvIldxLE7-ZPXlmMFxRV2hYmIKaapvjAsFShfxuknouuclNXdLV4adCT0FOkaSkYlA7XCNMTgkKC9kioAp2FrHEfRJ13y9ld-oqv5Z463gElaafVEQKqjs8uE1UGIr2q1YxFzYQVOqpvXNd4w7x2QSowGDwvqqLowCykXFzQrT8OcKlo4WVs0Yd47-JEHXe_G9rmmqfP7Z5eB_fRnmmwIDAQAB"
    }
    and here is the response
    Code:
    {
        "keys": [
            {
                "kty": "oct",
                "k": "XAV10iVrdoaNJjx8lAjd1LSZkqYdbGtimlkYBDme820q1JbHO01nR-MMchFmZvPvZM577Of6fa63i0mdXdBw_XX72KluX4V-WaYCxU0u_JPSPFnyY25UphRv2L6U3f_34xUsIvAYsMa0XnICu2VpAzZi6WJ-UQzJWwsHAHgV409PYgIWjtM-cwNcWc9eF5E5dUmXVSRP4278lALruX5cM8KIm64nJ4x-LVlVyZL7asZlp8kuq2ne4TnXyEf06NFSPa-feWrJQ3bmlHzRnPi--OyWYlHyRSK0_cxkE8rgPf6shezoJvRtPQ9wXHUJha9GKsv5LJT835tSL0hAFlakYg",
                "kid": "BaOgqXi8PPGCwhHNfMzu9A"
            },
            {
                "kty": "oct",
                "k": "VH8COgRsPTgjwyCzutxU-c2x0tf_Ozixgr8F0-VdFKykNMCwZseraDx-eiQLdrMDSV9aFXHBeh2CHWbXzmuL7X-RqVTIAwvvQw47mNlitY6aZMn1k6GKY6-H9oZVchrDfiOCoxR9gXR_6FZban858AxjOdJlzIbT1HKZIkRsWvGeO4RLORjbgdXKMJgde2y4I9PhWYaPn65BazX_c_vtLsm8HBVaR_obTJ4k3Wf5wMm_aF2QvMuBefJBPnnitFq0ayi8DNC4vmBhH-rSY9YJF8PwKFz1WShItbSsSS_g-MLXGU1tQS1t5Une1uhpWWipKW9Lu9A1vFEXUWIAuQZAYA",
                "kid": "BaOgqXi8PPGCwhHNfMzu9Q"
            },
            {
                "kty": "oct",
                "k": "M_OhslF0xxFqc8Hyu613X2kjqxMNuM8BsPErAcx6LzFgKaUV0vISZXH4vdgK97pk4G0L5cp0GG84ccyfz6o5ot8YQGMGlfW8lW4SyxNkYwvzr6pferwjUULoo3h-wu6QA84YqwTwepxPE4Ucq2fA-NSbV3OweImBgpKRZoYM2Bg4aqtWuvsvLVYXp0ZiC5m0gdGPcnnWRDE9JoN2yZfBUg5dFr2kOgR5wpnSHsquudQ_6M9Dyqg4VcWixUbdU_XS8IbuberrxN122bfvue0_XI7oAf3KjZAwSf-dNAkh8Sj9MJdaGUr5oHtmYj0SM8e3eb8RQxgVeLdgQE1UotMhJw",
                "kid": "BaOgqXi8PPGCwhHNfMzu9g"
            },
            {
                "kty": "oct",
                "k": "aBNXFJidV1yVg72N1la--M-YxdbM0ew136XFV_tFLZB3pS1pBYQJe2Z3tdnXvbFwsBt4TtbGl1vd5NSJcE2xCmQW6ojYqxisrIw2PmHtex-gnIB-dvl-NTj26DcY0zDSxK3LZGjArPbVRpmo0Ikbxqs_Y97Pt_cS6PNXEQW3rxHb2n0fW790CUZwHgD-e4X4YGW5nLpalAuJyhT7sZvr5h7Pz5FGZhT4O81pitoHh-kwMd6XPyHJqpi24XaUzw9Z0kcFJ1VLcjN7zl1XIFX25ewEpdVZX0a871pYG-3BQA8fFaN5td5XLcCc8UswwZ_4vj-pwVkhMJAKXoqySuQhmw",
                "kid": "BaOgqXi8PPGCwhHNfMzu9w"
            }
        ],
        "type": "temporary"
    }
    looking at the video file itself with a hex editor you can see references to shaka packager, but no PSSH or anything related to widevine.

    Below is what the manifest.mpd contains
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" minBufferTime="PT2S" type="static" mediaPresentationDuration="PT6683.52099609375S">
      <Period id="0">
        <AdaptationSet id="0" contentType="audio" subsegmentAlignment="true">
          <ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="05a3a0a9-78bc-3cf1-82c2-11cd7ccceef4" />
          <ContentProtection schemeIdUri="urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b">
            <cenc:pssh>AAABJHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAABAFo6CpeLw88YLCEc18zO70BaOgqXi8PPGCwhHNfMzu9QWjoKl4vDzxgsIRzXzM7vYFo6CpeLw88YLCEc18zO73AAAAAAAAAAAAAAAAAAAAAHsidiI6IjIiLCJmaWQiOiJoXzExMDBoemdkMDAxNDZhIiwicGwiOiJleUp3YVdRaU9pSm9YekV4TURCb2VtZGtNREF4TkRaaElpd2laR1ZzYVhabGNubGZkSGx3WlNJNkluTjBJbjAiLCJzdmlkIjoiZGlnaXRhbCIsImNzIjoiZGQxMTQzMjcyOTU4ODZmNjYxYmYxZDBiNWExZjE3YjQifQAAAAAAAAAAAAAAAAAAAAAAAA==</cenc:pssh>
          </ContentProtection>
          <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
            <cenc:pssh>AAAFtnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABZaWBQAAAQABAIwFPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMgAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAUwA+ADwASwBJAEQAIABBAEwARwBJAEQAPQAiAEEARQBTAEMAVABSACIAIABDAEgARQBDAEsAUwBVAE0APQAiADQAVgB6ADIAbgBrAFYAaQB6AEwAMAA9ACIAIABWAEEATABVAEUAPQAiAHEAYQBDAGoAQgBiAHgANAA4AFQAeQBDAHcAaABIAE4AZgBNAHoAdQA5AEEAPQA9ACIAPgA8AC8ASwBJAEQAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAQwBIAEUAQwBLAFMAVQBNAD0AIgA3AEEATwA3AHUATQA0ADQASABkAE0APQAiACAAVgBBAEwAVQBFAD0AIgBxAGEAQwBqAEIAYgB4ADQAOABUAHkAQwB3AGgASABOAGYATQB6AHUAOQBRAD0APQAiAD4APAAvAEsASQBEAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAEMASABFAEMASwBTAFUATQA9ACIAaQByAHQAVgA2AHQARQBnAG0ANQBNAD0AIgAgAFYAQQBMAFUARQA9ACIAcQBhAEMAagBCAGIAeAA0ADgAVAB5AEMAdwBoAEgATgBmAE0AegB1ADkAZwA9AD0AIgA+ADwALwBLAEkARAA+ADwASwBJAEQAIABBAEwARwBJAEQAPQAiAEEARQBTAEMAVABSACIAIABDAEgARQBDAEsAUwBVAE0APQAiAG0AZwBjADkAagBGAE4AQwA4AEwANAA9ACIAIABWAEEATABVAEUAPQAiAHEAYQBDAGoAQgBiAHgANAA4AFQAeQBDAHcAaABIAE4AZgBNAHoAdQA5AHcAPQA9ACIAPgA8AC8ASwBJAEQAPgA8AC8ASwBJAEQAUwA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMASQBEAD4AewAiAHYAIgA6ACIAMgAiACwAIgBmAGkAZAAiADoAIgBoAF8AMQAxADAAMABoAHoAZwBkADAAMAAxADQANgBhACIALAAiAHAAbAAiADoAIgBlAHkASgB3AGEAVwBRAGkATwBpAEoAbwBYAHoARQB4AE0ARABCAG8AZQBtAGQAawBNAEQAQQB4AE4ARABaAGgASQBpAHcAaQBaAEcAVgBzAGEAWABaAGwAYwBuAGwAZgBkAEgAbAB3AFoAUwBJADYASQBuAE4AMABJAG4AMAAiACwAIgBzAHYAaQBkACIAOgAiAGQAaQBnAGkAdABhAGwAIgAsACIAYwBzACIAOgAiAGQAZAAxADEANAAzADIANwAyADkANQA4ADgANgBmADYANgAxAGIAZgAxAGQAMABiADUAYQAxAGYAMQA3AGIANAAiAH0APAAvAEMASQBEAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
          </ContentProtection>
          <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
            <cenc:pssh>AAABDXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAO0SEAWjoKl4vDzxgsIRzXzM7vQSEAWjoKl4vDzxgsIRzXzM7vUSEAWjoKl4vDzxgsIRzXzM7vYSEAWjoKl4vDzxgsIRzXzM7vciogF7InYiOiIyIiwiZmlkIjoiaF8xMTAwaHpnZDAwMTQ2YSIsInBsIjoiZXlKd2FXUWlPaUpvWHpFeE1EQm9lbWRrTURBeE5EWmhJaXdpWkdWc2FYWmxjbmxmZEhsd1pTSTZJbk4wSW4wIiwic3ZpZCI6ImRpZ2l0YWwiLCJjcyI6ImRkMTE0MzI3Mjk1ODg2ZjY2MWJmMWQwYjVhMWYxN2I0In0=</cenc:pssh>
          </ContentProtection>
          <Representation id="1" bandwidth="263278" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="48000">
            <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
            <BaseURL>audio.256.1-1.aac.mp4</BaseURL>
            <SegmentBase indexRange="863-40998" timescale="48000">
              <Initialization range="0-862" />
            </SegmentBase>
          </Representation>
        </AdaptationSet>
        <AdaptationSet id="3" contentType="video" width="3840" height="2160" frameRate="11988/400" subsegmentAlignment="true" par="16:9">
          <ContentProtection schemeIdUri="urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b" cenc:default_KID="05a3a0a9-78bc-3cf1-82c2-11cd7ccceef7">
            <cenc:pssh>AAABJHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAABAFo6CpeLw88YLCEc18zO70BaOgqXi8PPGCwhHNfMzu9QWjoKl4vDzxgsIRzXzM7vYFo6CpeLw88YLCEc18zO73AAAAAAAAAAAAAAAAAAAAAHsidiI6IjIiLCJmaWQiOiJoXzExMDBoemdkMDAxNDZhIiwicGwiOiJleUp3YVdRaU9pSm9YekV4TURCb2VtZGtNREF4TkRaaElpd2laR1ZzYVhabGNubGZkSGx3WlNJNkluTjBJbjAiLCJzdmlkIjoiZGlnaXRhbCIsImNzIjoiZGQxMTQzMjcyOTU4ODZmNjYxYmYxZDBiNWExZjE3YjQifQAAAAAAAAAAAAAAAAAAAAAAAA==</cenc:pssh>
          </ContentProtection>
          <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" cenc:default_KID="05a3a0a9-78bc-3cf1-82c2-11cd7ccceef7">
            <cenc:pssh>AAAFtnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABZaWBQAAAQABAIwFPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMgAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAUwA+ADwASwBJAEQAIABBAEwARwBJAEQAPQAiAEEARQBTAEMAVABSACIAIABDAEgARQBDAEsAUwBVAE0APQAiADQAVgB6ADIAbgBrAFYAaQB6AEwAMAA9ACIAIABWAEEATABVAEUAPQAiAHEAYQBDAGoAQgBiAHgANAA4AFQAeQBDAHcAaABIAE4AZgBNAHoAdQA5AEEAPQA9ACIAPgA8AC8ASwBJAEQAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAQwBIAEUAQwBLAFMAVQBNAD0AIgA3AEEATwA3AHUATQA0ADQASABkAE0APQAiACAAVgBBAEwAVQBFAD0AIgBxAGEAQwBqAEIAYgB4ADQAOABUAHkAQwB3AGgASABOAGYATQB6AHUAOQBRAD0APQAiAD4APAAvAEsASQBEAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAEMASABFAEMASwBTAFUATQA9ACIAaQByAHQAVgA2AHQARQBnAG0ANQBNAD0AIgAgAFYAQQBMAFUARQA9ACIAcQBhAEMAagBCAGIAeAA0ADgAVAB5AEMAdwBoAEgATgBmAE0AegB1ADkAZwA9AD0AIgA+ADwALwBLAEkARAA+ADwASwBJAEQAIABBAEwARwBJAEQAPQAiAEEARQBTAEMAVABSACIAIABDAEgARQBDAEsAUwBVAE0APQAiAG0AZwBjADkAagBGAE4AQwA4AEwANAA9ACIAIABWAEEATABVAEUAPQAiAHEAYQBDAGoAQgBiAHgANAA4AFQAeQBDAHcAaABIAE4AZgBNAHoAdQA5AHcAPQA9ACIAPgA8AC8ASwBJAEQAPgA8AC8ASwBJAEQAUwA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMASQBEAD4AewAiAHYAIgA6ACIAMgAiACwAIgBmAGkAZAAiADoAIgBoAF8AMQAxADAAMABoAHoAZwBkADAAMAAxADQANgBhACIALAAiAHAAbAAiADoAIgBlAHkASgB3AGEAVwBRAGkATwBpAEoAbwBYAHoARQB4AE0ARABCAG8AZQBtAGQAawBNAEQAQQB4AE4ARABaAGgASQBpAHcAaQBaAEcAVgBzAGEAWABaAGwAYwBuAGwAZgBkAEgAbAB3AFoAUwBJADYASQBuAE4AMABJAG4AMAAiACwAIgBzAHYAaQBkACIAOgAiAGQAaQBnAGkAdABhAGwAIgAsACIAYwBzACIAOgAiAGQAZAAxADEANAAzADIANwAyADkANQA4ADgANgBmADYANgAxAGIAZgAxAGQAMABiADUAYQAxAGYAMQA3AGIANAAiAH0APAAvAEMASQBEAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
          </ContentProtection>
          <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" cenc:default_KID="05a3a0a9-78bc-3cf1-82c2-11cd7ccceef7">
            <cenc:pssh>AAABDXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAO0SEAWjoKl4vDzxgsIRzXzM7vQSEAWjoKl4vDzxgsIRzXzM7vUSEAWjoKl4vDzxgsIRzXzM7vYSEAWjoKl4vDzxgsIRzXzM7vciogF7InYiOiIyIiwiZmlkIjoiaF8xMTAwaHpnZDAwMTQ2YSIsInBsIjoiZXlKd2FXUWlPaUpvWHpFeE1EQm9lbWRrTURBeE5EWmhJaXdpWkdWc2FYWmxjbmxmZEhsd1pTSTZJbk4wSW4wIiwic3ZpZCI6ImRpZ2l0YWwiLCJjcyI6ImRkMTE0MzI3Mjk1ODg2ZjY2MWJmMWQwYjVhMWYxN2I0In0=</cenc:pssh>
          </ContentProtection>
          <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
          <Representation id="8" bandwidth="25644119" codecs="vp09.00.50.08" mimeType="video/webm" sar="1:1">
            <BaseURL>h_1100hzgd00146a.2d_v1_drm_a_4k.1-1.vp9.webm</BaseURL>
            <SegmentBase indexRange="381-62757" timescale="11988">
              <Initialization range="0-380" />
            </SegmentBase>
          </Representation>
        </AdaptationSet>
      </Period>
    </MPD>
    Hopefully someone else might be able to give some hints or other tips on where to go about trying to get around this.
    Quote Quote  
  8. widevine pssh in mpd file, so can't just obtain keys as usually and use the pssh+widevine license?
    Quote Quote  
  9. Probably not but try these
    Code:
    05a3a0a978bc3cf182c211cd7ccceef4:dd114327295886f661bf1d0b5a1f17b4
    05a3a0a978bc3cf182c211cd7ccceef5:dd114327295886f661bf1d0b5a1f17b4
    05a3a0a978bc3cf182c211cd7ccceef6:dd114327295886f661bf1d0b5a1f17b4
    05a3a0a978bc3cf182c211cd7ccceef7:dd114327295886f661bf1d0b5a1f17b4
    click click2
    If I/my posts ever helped you, and you want to give back, send me a private message!
    Quote Quote  
  10. They don't seem to work.

    Although when I did that, the error that comes out, I think, tells me the correct KID

    [0129/071008:ERROR:decryptor_source.cc(55)] Error retrieving decryption key: 14 (INTERNAL_ERROR): Key for key_id=6D49B21D18BB34ADB73238B00F923348 was not found.
    [0129/071008:ERROR:webm_cluster_parser.cc(400)] Cannot decrypt samples
    [0129/071008:ERRORackager_main.cc(554)] Packaging Error: 8 (PARSER_FAILURE): Cannot parse media file dmm.webm
    I believe the KID 6D49B21D18BB34ADB73238B00F923348 is the hex value of one of the "keys" noted in the Preview tab of the license response:
    Image Attached Thumbnails Click image for larger version

Name:	license.png
Views:	282
Size:	106.0 KB
ID:	76598  

    Quote Quote  
  11. The 'k' value changes regularly for each KID

    This is also in the payload as Javguy noted before. The spki appears to be the same throughout.

    Code:
    {kids: ["bUmyHRi7NK23MjiwD5IzRQ", "bUmyHRi7NK23MjiwD5IzRg", "bUmyHRi7NK23MjiwD5IzRw",…],…}
    kids
    : 
    ["bUmyHRi7NK23MjiwD5IzRQ", "bUmyHRi7NK23MjiwD5IzRg", "bUmyHRi7NK23MjiwD5IzRw",…]
    0
    : 
    "bUmyHRi7NK23MjiwD5IzRQ"
    1
    : 
    "bUmyHRi7NK23MjiwD5IzRg"
    2
    : 
    "bUmyHRi7NK23MjiwD5IzRw"
    3
    : 
    "bUmyHRi7NK23MjiwD5IzSA"
    4
    : 
    "AAAAAAAAAAAAAAAAAAAAAA"
    5
    : 
    "eyJ2IjoiMiIsImZpZCI6Ig"
    6
    : 
    "aF8xNTU4Y3NkeDAwMDA0Ig"
    7
    : 
    "LCJwbCI6ImV5SndhV1FpTw"
    8
    : 
    "aUpvWHpFMU5UaGpjMlI0TQ"
    9
    : 
    "REF3TURRaUxDSmtaV3hwZA"
    10
    : 
    "bVZ5ZVY5MGVYQmxJam9pYw"
    11
    : 
    "M1FpZlEiLCJzdmlkIjoiZA"
    12
    : 
    "aWdpdGFsIiwiY3MiOiJmMw"
    13
    : 
    "ZjE2ZTY4MzAzYTM1OGU3ZA"
    14
    : 
    "MGZlN2M4ZTU4MDEwMDgifQ"
    spki
    : 
    "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr9K1i5hBJSGi_m-wtfOKNZ4OY8BEzFYr16UA5VHAXpIHV_NB_n-UutvooNLsZOjKHMoJHvfnFYWDA5SZDxUHma9MUpR6ZSwsQg4h8reaHVTVWQXMynYFv6wW0LbHSVIvfH_r8BNCFlozX_sk9fN-YjPxLJ6Eb-bAX65n75tCkbEWCT9L0_k3ULZpzFvUSeXZyxAOEJQiaoAvEnCI9nKZp1ZlKt9G_AC7hIBXY6qAx_1SW5waGUbrNWNlRj2-xKZGqWmAZX9Em4AbwDtUouByUvG5SUc_QmEP1RVXaRrugEvzonW_7SkcqTsK5tiCcqbxOA3iSo9fEMjKbjUknsvk3wIDAQAB"
    type
    : 
    "temporary"
    Quote Quote  
  12. carrion is correct in that shaka seems to at least tell you the correct KID because when I tried to use the first three keys it gave me the error
    Code:
    [0130/044509:ERROR:decryptor_source.cc(55)] Error retrieving decryption key: 14 (INTERNAL_ERROR): Key for key_id=05A3A0A978BC3CF182C211CD7CCCEEF7 was not found.
    it wasn't until I did the last key that it at least attempted to decrypt the video but alas, the final product was still garbage.
    Quote Quote  
  13. It seems like the long k values have to be decrypted in order to get the correct one to convert from base64 to hex - which would yield the correct key
    Quote Quote  
  14. Hey all, signed up to this forum just to provide some advice here. Couldn't find anything on this topic elsewhere.
    There's quite a lot of steps to get the decryption key and ive managed to solve it by a js script. Took me a while to reverse engineer how the clearkey service does it.

    Basically what you need to do is:
    1. Generate a client side key via javascript's `crypto.subtle.generateKey` of the type `RSA-OAEP` and with the hash type SHA-256.
    2. Export that key, and base64 encode it.
    3. Make a call to `https://mlic.dmm.co.jp/drm/clearkey/license` with the payload of { kids, type: 'temporary', spki } where the spki is the base64 public key in step 2 above.
    4. From the response you get back, grab the first key, and based64 decode the "k" property of it. From there, use `crypto.subtle.decrypt` using the keys you created in step 1.
    5. Base64 encode the value from step 4, then write to a hex string. Then you've got a key that works to decrypt with shaka packager.

    Somewhat in a short summary, the clearkey/license server is ensuring that the machine that created the request for they keys (usually the browser) is the one whom will be decrypting it. From what I understand there would be no way to just inspect the payload like you're trying above, and decrypting those keys.

    The problem I have now is whenever i make requests to the mpd files via nodejs, i get a timeout error
    Does anyone know how to get past this?
    Quote Quote  
  15. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    Originally Posted by tenpx1 View Post
    Took me a while to reverse engineer how the clearkey service does it.
    For dmm.co.jp the easiest way it to retrieve key through widevine. You can edit the js code to force the player to use widevine instead of clearkey.
    Quote Quote  
  16. Originally Posted by aqzs View Post
    Originally Posted by tenpx1 View Post
    Took me a while to reverse engineer how the clearkey service does it.
    For dmm.co.jp the easiest way it to retrieve key through widevine. You can edit the js code to force the player to use widevine instead of clearkey.
    How do you do this? From the frontend somehow?
    Quote Quote  



Similar Threads

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