forked from tpd94/CDRM-Extension
Added DRM override
This commit is contained in:
parent
033bf72151
commit
96c850c878
@ -67,6 +67,14 @@ chrome.runtime.onInstalled.addListener((details) => {
|
||||
}
|
||||
});
|
||||
|
||||
chrome.storage.local.set({ drm_override: "DISABLED" }, () => {
|
||||
if (chrome.runtime.lastError) {
|
||||
console.error("Error setting DRM Override type:", chrome.runtime.lastError);
|
||||
} else {
|
||||
console.log("DRM Override type set to DISABLED on first install.");
|
||||
}
|
||||
});
|
||||
|
||||
chrome.storage.local.set({ cdrm_instance: null }, () => {
|
||||
if (chrome.runtime.lastError) {
|
||||
console.error("Error setting CDRM instance:", chrome.runtime.lastError);
|
||||
|
15
content.js
15
content.js
@ -58,4 +58,19 @@ window.addEventListener("message", function(event) {
|
||||
);
|
||||
});
|
||||
}
|
||||
if (event.data.type === "__GET_DRM_OVERRIDE__") {
|
||||
console.log("Received request for DRM override");
|
||||
|
||||
chrome.storage.local.get("drm_override", (result) => {
|
||||
const drmOverride = result.drm_override || "DISABLED";
|
||||
|
||||
window.postMessage(
|
||||
{
|
||||
type: "__DRM_OVERRIDE__",
|
||||
drmOverride
|
||||
},
|
||||
"*"
|
||||
);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -3,12 +3,16 @@ import hamburgerIcon from "../assets/hamburger.svg";
|
||||
|
||||
function TopNav({ onMenuClick }) {
|
||||
const [injectionType, setInjectionType] = useState("LICENSE");
|
||||
const [drmOverride, setDrmOverride] = useState("LICENSE");
|
||||
|
||||
useEffect(() => {
|
||||
chrome.storage.local.get("injection_type", (result) => {
|
||||
chrome.storage.local.get(["injection_type", "drm_override"], (result) => {
|
||||
if (result.injection_type) {
|
||||
setInjectionType(result.injection_type);
|
||||
}
|
||||
if (result.drm_override) {
|
||||
setDrmOverride(result.drm_override);
|
||||
}
|
||||
});
|
||||
}, []);
|
||||
|
||||
@ -26,6 +30,17 @@ function TopNav({ onMenuClick }) {
|
||||
});
|
||||
};
|
||||
|
||||
const handleDrmOverrideChange = (type) => {
|
||||
chrome.storage.local.set({ drm_override: type }, () => {
|
||||
if (chrome.runtime.lastError) {
|
||||
console.error("Error updating drm_override:", chrome.runtime.lastError);
|
||||
} else {
|
||||
setDrmOverride(type);
|
||||
console.log(`DRM Override updated to ${type}`);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="w-full h-full flex flex-row">
|
||||
<img
|
||||
@ -34,6 +49,35 @@ function TopNav({ onMenuClick }) {
|
||||
className="h-full w-16 p-2 flex items-center cursor-pointer"
|
||||
onClick={onMenuClick}
|
||||
/>
|
||||
<div className="flex flex-row h-full justify-center items-center ml-auto mr-2">
|
||||
<p className="text-white text-lg p-2 mr-2 border-r-2 border-r-white text-nowrap">
|
||||
DRM Override:
|
||||
</p>
|
||||
<button
|
||||
onClick={() => handleDrmOverrideChange("WIDEVINE")}
|
||||
className={`text-white text-lg p-2 rounded-md m-1 cursor-pointer ${
|
||||
drmOverride === "WIDEVINE" ? "bg-green-500/70" : "bg-black"
|
||||
}`}
|
||||
>
|
||||
Widevine
|
||||
</button>
|
||||
<button
|
||||
onClick={() => handleDrmOverrideChange("PLAYREADY")}
|
||||
className={`text-white text-lg p-2 rounded-md m-1 cursor-pointer ${
|
||||
drmOverride === "PLAYREADY" ? "bg-sky-500/70" : "bg-black"
|
||||
}`}
|
||||
>
|
||||
PlayReady
|
||||
</button>
|
||||
<button
|
||||
onClick={() => handleDrmOverrideChange("DISABLED")}
|
||||
className={`text-white text-lg p-2 rounded-md m-1 cursor-pointer ${
|
||||
drmOverride === "DISABLED" ? "bg-red-500/70" : "bg-black"
|
||||
}`}
|
||||
>
|
||||
Disabled
|
||||
</button>
|
||||
</div>
|
||||
<div className="flex flex-row h-full justify-center items-center ml-auto mr-2">
|
||||
<p className="text-white text-lg p-2 mr-2 border-r-2 border-r-white text-nowrap">
|
||||
Injection Type:
|
||||
|
15
inject.js
15
inject.js
@ -10,6 +10,17 @@ let interceptType = "DISABLED"; // Default to LICENSE, can be changed to 'EME' f
|
||||
let originalChallenge = null;
|
||||
let widevineDeviceInfo = null;
|
||||
let playreadyDeviceInfo = null;
|
||||
let drmOveride = "DISABLED"
|
||||
|
||||
window.postMessage({ type: "__GET_DRM_OVERRIDE__" }, "*");
|
||||
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.source !== window) return;
|
||||
if (event.data.type === "__DRM_OVERRIDE__") {
|
||||
drmOveride = event.data.drmOverride || "DISABLED";
|
||||
console.log("DRM Override set to:", drmOveride);
|
||||
}
|
||||
});
|
||||
|
||||
window.postMessage({ type: "__GET_INJECTION_TYPE__" }, "*");
|
||||
|
||||
@ -542,7 +553,7 @@ MediaKeySession.prototype.generateRequest = async function(initDataType, initDat
|
||||
playReadyPssh = getPlayReadyPssh(initData);
|
||||
playReadyAttempted = !!playReadyPssh;
|
||||
|
||||
if (playReadyPssh) {
|
||||
if (playReadyPssh && drmOveride !== "WIDEVINE") {
|
||||
console.log("[PlayReady PSSH] Found:", playReadyPssh);
|
||||
const drmType = {
|
||||
type: "__DRM_TYPE__",
|
||||
@ -579,7 +590,7 @@ MediaKeySession.prototype.generateRequest = async function(initDataType, initDat
|
||||
// === Fallback to Widevine ===
|
||||
if (!playReadySucceeded) {
|
||||
widevinePssh = getWidevinePssh(initData);
|
||||
if (widevinePssh) {
|
||||
if (widevinePssh && drmOveride !== "PLAYREADY") {
|
||||
console.log("[Widevine PSSH] Found:", widevinePssh);
|
||||
const drmType = {
|
||||
type: "__DRM_TYPE__",
|
||||
|
52
react/assets/index-BnIE4uKp.js
Normal file
52
react/assets/index-BnIE4uKp.js
Normal file
File diff suppressed because one or more lines are too long
52
react/assets/index-D8O9Lfc-.js
Normal file
52
react/assets/index-D8O9Lfc-.js
Normal file
File diff suppressed because one or more lines are too long
@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>CDRM Decryption Extension</title>
|
||||
<script type="module" crossorigin src="./assets/index-DwE1Hrng.js"></script>
|
||||
<script type="module" crossorigin src="./assets/index-BnIE4uKp.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="./assets/index-DyrP80vq.css">
|
||||
</head>
|
||||
<body class="min-w-full min-h-full w-full h-full">
|
||||
|
Loading…
x
Reference in New Issue
Block a user