From db3bfd94a56e7afb36d0a43e689d38394d876ad5 Mon Sep 17 00:00:00 2001 From: BitMaster Admin Date: Wed, 26 Mar 2025 07:44:14 +0000 Subject: [PATCH] Update README.md --- README.md | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/README.md b/README.md index 50e8acc..42cb765 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,61 @@ for key in cdm.get_keys(session_id): cdm.close(session_id) ``` +## Remote Usage + +Security level is either 2000 or 3000 depending on your device level. +Host is the ip address and port that pyplayready is running on. When you start serving it will display these details. +Secret and device name are whatever you set them as in your config.yml file. + +An example code snippet: + +```python +from pyplayready.cdm import Cdm +from pyplayready.device import Device +from pyplayready.system.pssh import PSSH + +import requests + +cdm = RemoteCdm( + security_level = , + host = "http://:", + secret = "", + device_name = "" +) +session_id = cdm.open() + +pssh = PSSH( + "AAADfHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAA1xcAwAAAQABAFIDPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AH" + "QAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABh" + "AHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUg" + "BPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQA" + "UgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgA0AFIAcABsAGIAKwBUAGIATgBFAFMAOAB0AE" + "cAawBOAEYAVwBUAEUASABBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AEsATABqADMAUQB6AFEAUAAvAE4AQQA9ADwALwBD" + "AEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAHAAcgBvAGYAZgBpAGMAaQBhAGwAcwBpAHQAZQAuAGsAZQ" + "B5AGQAZQBsAGkAdgBlAHIAeQAuAG0AZQBkAGkAYQBzAGUAcgB2AGkAYwBlAHMALgB3AGkAbgBkAG8AdwBzAC4AbgBlAHQALwBQAGwAYQB5AFIA" + "ZQBhAGQAeQAvADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwASQBJAFMAXwBEAFIATQBfAF" + "YARQBSAFMASQBPAE4APgA4AC4AMQAuADIAMwAwADQALgAzADEAPAAvAEkASQBTAF8ARABSAE0AXwBWAEUAUgBTAEkATwBOAD4APAAvAEMAVQBT" + "AFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==" +) + +request = cdm.get_license_challenge(session_id, pssh.wrm_headers[0]) + +response = requests.post( + url="https://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(persist:false,sl:2000)", + headers={ + 'Content-Type': 'text/xml; charset=UTF-8', + }, + data=request, +) + +cdm.parse_license(session_id, response.text) + +for key in cdm.get_keys(session_id): + print(f"{key.key_id.hex}:{key.key.hex()}") + +cdm.close(session_id) +``` + ## Disclaimer 1. This project requires a valid Microsoft Certificate and Group Key, which are not provided by this project.