VideoHelp Forum
+ Reply to Thread
Results 1 to 15 of 15
Thread
  1. Psychology student CrymanChen's Avatar
    Join Date
    Apr 2022
    Location
    Mainland China
    Search Comp PM
    Hi y'all. The purpose of posting this thread is that several days ago when I was surfing on a forum, some people say that they can't download videos from Apple TV+, in that there might be some changes, and they are requesting the software developers to update it ASAP.

    So I wonder, why not creating a new script for it?

    I tried for a little while, after thousands of failures, finally it worked.

    Image
    [Attachment 71418 - Click to enlarge]


    This thread is not intended to ask help for downloading protected Intellectual Properties, I just wanna share the happiness with y'all.

    I've posted it on my own WKS-KEYS project on GitHub, and I think that if you don't want to figure it out by yourself, at least there is something you could use right now. And always, I wish this would help some people if possible.
    Last edited by CrymanChen; 1st Jun 2023 at 12:29.
    twitter @Cryman_Chen
    email crymanchen@gmail.com
    Quote Quote  
  2. Thanks for the github link. What resolution do you get in a browser for that site?
    Quote Quote  
  3. @CrymanChen
    thanks, scripts like this are always helpful!
    Quote Quote  
  4. Psychology student CrymanChen's Avatar
    Join Date
    Apr 2022
    Location
    Mainland China
    Search Comp PM
    As for the resolution, I think it is the same as that you watch on the Chrome browser (I remember it's 432p?), not a high resolution, but at least we could download some videos.
    twitter @Cryman_Chen
    email crymanchen@gmail.com
    Quote Quote  
  5. Thank you for this script, I was able to obtain the keys. However, it seems as if mp4decrypt is unable to decrypt the file. The command executes without error, but the resulting file is still unplayable.

    The video I am trying to download is https://tv.apple.com/us/sporting-event/mls-all-stars-vs-arsenal-fc/umc.cse.1d37hlsq4vq7bid8x9kwlo3dh (free with Apple ID), and the key I got is 00000000240468b66336202020202020:6c9e0ac1ddd5963a6 0a0e20eb11eb5fd.

    The command I am running is mp4decrypt --key 00000000240468b66336202020202020:6c9e0ac1ddd5963a6 0a0e20eb11eb5fd mlsaud.mp4 mlsaud2.mp4

    I think it has something to do with the SAMPLE-AES encryption Apple uses (even though it is still Widevine DRM). [This thread](https://github.com/nilaoda/N_m3u8DL-RE/issues/196) suggests that other tools are having trouble with it as well. Have you been able to actually use these keys to decrypt Apple TV+ content?
    Quote Quote  
  6. Psychology student CrymanChen's Avatar
    Join Date
    Apr 2022
    Location
    Mainland China
    Search Comp PM
    Haven't tested such live contents. But maybe CBCS isn't the type that we could decrypt, with these keys we got?
    twitter @Cryman_Chen
    email crymanchen@gmail.com
    Quote Quote  
  7. That very well could be. I am trying to find other threads where people have the same issue but in those threads, the OP just gets gaslit into believing he has the wrong keys.

    Another approach I was thinking is to see if there is a way to force the platform to deliver DASH instead of HLS. But I don't think that is possible (I tried different browsers and Windows vs Mac and it is always HLS, I don't have an android though so maybe that could work).

    It is just annoying because usually the hard part is getting the keys and decrypting is trivial. But we can get the keys thanks to you, but we can't decrypt...

    Please let me know if you find any solution!
    Quote Quote  
  8. Psychology student CrymanChen's Avatar
    Join Date
    Apr 2022
    Location
    Mainland China
    Search Comp PM
    I don't think Apple TV+ uses DASH to stream. They already have their self-developed HLS.

    As for their problem of not being able to decrypt with the keys, I'm at a loss too. It's not like I just made up these keys arbitrarily. These were decrypted through a program.
    twitter @Cryman_Chen
    email crymanchen@gmail.com
    Quote Quote  
  9. Psychology student CrymanChen's Avatar
    Join Date
    Apr 2022
    Location
    Mainland China
    Search Comp PM
    And one more thing.
    Why so many people got confused about this thing.
    When I asked them which one is the license request, they gave me this one:
    Image
    [Attachment 72617 - Click to enlarge]


    What...? This is a GET request.
    You should at least look at my screenshot and at least make a comparison. And you will find out that they are not the same at all.

    I have to say that I'm a bit angry, since you guys didn't even look at mine. This license-finding process is not THAT difficult, right?
    twitter @Cryman_Chen
    email crymanchen@gmail.com
    Quote Quote  
  10. Haha I can see how that would be annoying, it is obviously the "fpsRequest" one. For some videos it is actually something else entirely, but still not a GET request lol

    For some platforms I will say that it is hard to find the license. For example, I had a lot of trouble with Peacock, not sure if someone has cracked that one yet or not...
    Quote Quote  
  11. OK I think I figured it out! You just need the right software. Download and install gpac: https://github.com/gpac/gpac/

    Then build an xml file like so. Note the KID should be 0 even if something else is returned by your program:

    <?xml version="1.0" encoding="UTF-8" ?>
    <GPACDRM type="cbcs">
    <CrypTrack trackID="1" IsEncrypted="1" IV_size="16" first_IV="0x00000000000000000000000000000000" saiSavedBox="senc">
    <key KID="0x00000000000000000000000000000000" value="0xf8cd7cb33d25ef3804f48f9e3dbf7b25"/>
    </CrypTrack>
    </GPACDRM>


    Then run mp4box -decrypt crypt.xml input.mp4 -out output.mp4
    Last edited by fhpro; 25th Jul 2023 at 21:00.
    Quote Quote  
  12. Originally Posted by fhpro View Post
    OK I think I figured it out! You just need the right software. Download and install gpac: https://github.com/gpac/gpac/

    Then build an xml file like so. Note the KID should be 0 even if something else is returned by your program:

    <?xml version="1.0" encoding="UTF-8" ?>
    <GPACDRM type="cbcs">
    <CrypTrack trackID="1" IsEncrypted="1" IV_size="16" first_IV="0x00000000000000000000000000000000" saiSavedBox="senc">
    <key KID="0x00000000000000000000000000000000" value="0xf8cd7cb33d25ef3804f48f9e3dbf7b25"/>
    </CrypTrack>
    </GPACDRM>


    Then run mp4box -decrypt crypt.xml input.mp4 -out output.mp4

    Thanks for this info.. I will try to figure out the same..
    Last edited by Bellower; 26th Jul 2023 at 10:42.
    Quote Quote  
  13. I have had different situations with the decryption by using mp4box method once I get the keys, because mp4decrypt doesn't work for me too (for some reason)

    The previous method, somehow, works (for me) only for the Audio stream extracted and its KEY.. but the Video stream with its Key ( obviously, the video stream extracted from the same m3u8 as the audio stream) doesn't give me a playable video when I try to decrypt it by mp4box method .. so I can't mux them later because this current issue..

    Any idea??
    Thanks!
    Quote Quote  
  14. Member
    Join Date
    Feb 2022
    Location
    United Kingdom
    Search Comp PM
    Originally Posted by Bellower View Post
    I have had different situations with the decryption by using mp4box method once I get the keys, because mp4decrypt doesn't work for me too (for some reason)

    The previous method, somehow, works (for me) only for the Audio stream extracted and its KEY.. but the Video stream with its Key ( obviously, the video stream extracted from the same m3u8 as the audio stream) doesn't give me a playable video when I try to decrypt it by mp4box method .. so I can't mux them later because this current issue..

    Any idea??
    Thanks!
    Yes The Keys from @CrymanChen Script are only decrypting audio. Anybody had success in decrypting video with same keys??
    Quote Quote  
  15. Originally Posted by CrymanChen View Post
    Hi y'all. The purpose of posting this thread is that several days ago when I was surfing on a forum, some people say that they can't download videos from Apple TV+, in that there might be some changes, and they are requesting the software developers to update it ASAP.

    So I wonder, why not creating a new script for it?

    I tried for a little while, after thousands of failures, finally it worked.

    Image
    [Attachment 71418 - Click to enlarge]


    This thread is not intended to ask help for downloading protected Intellectual Properties, I just wanna share the happiness with y'all.

    I've posted it on my own WKS-KEYS project on GitHub, and I think that if you don't want to figure it out by yourself, at least there is something you could use right now. And always, I wish this would help some people if possible.

    very nice, but can you tell me where i have to put i3_apply.py?

    json_data = headers.json_data
    ^^^^^^^^^^^^^^^^^
    AttributeError: module 'headers' has no attribute 'json_data'

    where can i put the json?where is the json? can you send a tutto please?
    Last edited by marioeivissa; 5th Oct 2023 at 03:35.
    Quote Quote  



Similar Threads

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