|
|
@@ -0,0 +1,59 @@ |
|
|
# Downloading Widevine content |
|
|
|
|
|
**Specifically from Rakuten TV (live.tv.rakuten.co.jp)** |
|
|
|
|
|
FMI: https://cdm-project.com/How-To/ & https://old.reddit.com/r/Piracy/comments/y30ffr/ |
|
|
|
|
|
## Setup |
|
|
|
|
|
1. Install Tampermonkey: https://www.tampermonkey.net/ |
|
|
2. Install yt-dlp: https://github.com/yt-dlp/yt-dlp#installation |
|
|
3. Install ffmpeg: https://ffmpeg.org/download.html |
|
|
4. Download Bento4: https://www.bento4.com/downloads/ |
|
|
5. Have a proxy/VPN if you're not in Japan since stuff is geolocked |
|
|
|
|
|
## Getting your decryption key |
|
|
|
|
|
### Get PSSH |
|
|
1. Install this userscript: https://greasyfork.org/en/scripts/373903-eme-logger |
|
|
3. Search browser JS Console for `MediaKeySession::generateRequest`, then press play on the video and look under "Init Data" |
|
|
4. Get something like `AAAAMnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAXXXXXXXXFtoyTEzFOZDD4T9lmTiI=` |
|
|
|
|
|
### Get License URL |
|
|
1. After doing the above, go to your browser developer tools' Network tab and search for `Widevine` |
|
|
2. Right click > Copy > Copy link address |
|
|
3. Get something like `https://azcp001.keydelivery.japaneast.media.azure.net/Widevine/?kid=e0c5b68c-9313-314e-6430-f8XXXXXXXX22` |
|
|
|
|
|
### Get headers |
|
|
1. Left click on the Widevine entry from the above steps, under the "Headers tab" scroll down to "Request Headers" |
|
|
2. 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 |
|
|
``` |
|
|
|
|
|
### Getting the key |
|
|
1. Open [https://cdrm-project.com/](https://cdrm-project.com/) |
|
|
2. Input the results from the previous steps and press "Send" |
|
|
3. Hopefully see the "SUCCESS" message along with a key that looks like `e0c5b68c93133XXXXXXXX84fd9664e22:499047f36b770957XXXXXXXX9dfc4033` |
|
|
|
|
|
## Downloading the encrypted files |
|
|
|
|
|
2. In the developer console Network tab, search for `mpd` |
|
|
3. 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)` |
|
|
4. Run the Terminal command: `yt-dlp --allow-unplayable [url]` |
|
|
5. Get two files, an .mp4 and an .m4a |
|
|
|
|
|
## Decrypting & merging the files |
|
|
|
|
|
1. In Bento4's `bin/` folder, find the `mp4decrypt` command line utility |
|
|
3. Navigate to this folder in your Terminal and run `mp4decrypt --key [yourkey] /path/to/corrupted.file /path/to/fixed.file` on both files |
|
|
4. Run `ffmpeg -i fixedvideo.mp4 -i fixedaudio.m4a -c:v copy -c:a copy output.mp4` |
|
|
5. The end |