Specifically from Rakuten TV (live.tv.rakuten.co.jp)
FMI: https://cdm-project.com/How-To/ & https://old.reddit.com/r/Piracy/comments/y30ffr/
- Install Tampermonkey: https://www.tampermonkey.net/
- Install yt-dlp: https://github.com/yt-dlp/yt-dlp#installation
- Install ffmpeg: https://ffmpeg.org/download.html
- Download Bento4: https://www.bento4.com/downloads/
- Have a proxy/VPN if you're not in Japan since stuff is geolocked
- Install this userscript: https://greasyfork.org/en/scripts/373903-eme-logger
- Search browser JS Console for
MediaKeySession::generateRequest
, then press play on the video and look under "Init Data" - Get something like
AAAAMnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAXXXXXXXXFtoyTEzFOZDD4T9lmTiI=
- After doing the above, go to your browser developer tools' Network tab and search for
Widevine
- Right click > Copy > Copy link address
- Get something like
https://azcp001.keydelivery.japaneast.media.azure.net/Widevine/?kid=e0c5b68c-9313-314e-6430-f8XXXXXXXX22
- Left click on the Widevine entry from the above steps, under the "Headers tab" scroll down to "Request Headers"
- Copy the following lines & do some manual formatting, get something like:
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,ja-JP;q=0.8,ja;q=0.7
Authorization: blahblah
Cache-Control: no-cache
Content-Length: "blahblah"
Origin: https://live.tv.rakuten.co.jp
Pragma: no-cache
Referer: https://live.tv.rakuten.co.jp/
User-Agent: blahblah
- Open https://cdrm-project.com/
- Input the results from the previous steps and press "Send"
- Hopefully see the "SUCCESS" message along with a key that looks like
e0c5b68c93133XXXXXXXX84fd9664e22:499047f36b770957XXXXXXXX9dfc4033
- In the developer console Network tab, search for
mpd
- Find something that starts with
Manifest
, right click and copy the URL, e.g.https://azclwds01.akamaized.net/9dc3547a-ede5-4aed-841f-5cXXXXXXXX0f/tXyKyP_tab_hd.ism/Manifest(format=mpd-time-csf,encryption=cenc,filter=pc_hd_001)
- Run the Terminal command:
yt-dlp --allow-unplayable [url]
- Get two files, an .mp4 and an .m4a
- In Bento4's
bin/
folder, find themp4decrypt
command line utility - Navigate to this folder in your Terminal and run
mp4decrypt --key [yourkey] /path/to/corrupted.file /path/to/fixed.file
on both files - Run
ffmpeg -i fixedvideo.mp4 -i fixedaudio.m4a -c:v copy -c:a copy output.mp4
- The end
@frozenpandaman I was able to do so. Just change the “Headers” and search for “m3u8” (instead of mpd).
...::: PSSH (Init Data Type) :::...
Search (console): MediaKeySession::generateRequest
Example: AAAAP3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAB8SEKfYZ9e5qkL1sIwuzT3T54UaBWV6ZHJtSOPclZsG
...::: License URL :::...
Search (Network tab): Widevine
Example: https://widevine-dash.ezdrm.com/proxy?pX=97B7F0&token=b5c4e79ce6e5401386376d0260b2a62d
...::: Headers :::...
Only this (Python formatt): {'x-dt-auth-token': 'token',}
Token (from "license url"): b5c4e79ce6e5401386376d0260b2a62d
Example: {'x-dt-auth-token': 'b5c4e79ce6e5401386376d0260b2a62d',}
...::: Key :::...
Example: a7d867d7b9aa42f5b08c2ecd3dd3e785:83ddcbfbae399debe2114884b4ac5b08
...::: Encrypted files :::...
Search (Network tab): m3u8
Example: https://d3lz3061imcwu3.cloudfront.net/avod/Rakuten-TV-Japan-ANIM2-rakutenJP-all-avod/as_153831/as_153831.m3u8?ads.device_make=rchweb&ads.url=channel.rakuten.co.jp&ads.uuid=bfeee50f-0eca-52ee-86f8-8e0bd5cfbe2b&ads.uid_rch=bfeee50f-0eca-52ee-86f8-8e0bd5cfbe2b&ads.episode_id=200973&ads.refid=0