Last active
July 22, 2025 21:24
-
-
Save Ap0dexMe0/47c40615c224d860da5671f684a0685a to your computer and use it in GitHub Desktop.
Simulates a fault(Fake) page cast to bypass Google's Digital Rights Management Block, allowing you to Record or Screenshot a website no matters its Security Policy/DRM.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // ==UserScript== | |
| // @name DRM Bypass Helper | |
| // @author Pari Malam | |
| // @version 2.5 | |
| // @description Simulates a fault(Fake) page cast to bypass Google's Digital Rights Management Block, allowing you to Record or Screenshot a website no matters its Security Policy/DRM. | |
| // @match https://www.netflix.com/* | |
| // @match https://www.hulu.com/* | |
| // @match https://www.crunchyroll.com/* | |
| // @match https://www.youtube.com/* | |
| // @match https://www.hbomax.com/* | |
| // @match https://www.showtime.com/* | |
| // @match https://www.vudu.com/* | |
| // @match https://syfqsamvpn.github.io/* | |
| // @match https://primevideo.com/* | |
| // @match https://astrogo.astro.com.my/* | |
| // @match https://unifi.com.my/* | |
| // @match https://sooka.my/* | |
| // @match https://watch.tonton.com.my/* | |
| // @icon https://i.pinimg.com/originals/9e/d8/61/9ed86194c90b60ad5ce0e14fdb1b97d5.png | |
| // @grant window.focus | |
| // @namespace https://github.com/ThatNotEasy/ | |
| // ==/UserScript== | |
| (function() { | |
| 'use strict'; | |
| // Configuration | |
| const CONFIG = { | |
| HOTKEY: { | |
| MODIFIER: 'altKey', | |
| KEY: 'C', | |
| KEY_CODE: 67 | |
| }, | |
| STORAGE_KEYS: { | |
| FIRST_TIME: 'firstTime' | |
| }, | |
| MESSAGES: { | |
| WELCOME: '\nThis utility helps with screen capture functionality.\nPress Alt+C to start, select your browser in the Window tab.\nNote: Respect content creator rights and platform terms of service.' | |
| } | |
| }; | |
| // Initialize first-time usage | |
| function initializeFirstTimeUse() { | |
| if (!localStorage.getItem(CONFIG.STORAGE_KEYS.FIRST_TIME)) { | |
| localStorage.setItem(CONFIG.STORAGE_KEYS.FIRST_TIME, 'true'); | |
| } | |
| if (localStorage.getItem(CONFIG.STORAGE_KEYS.FIRST_TIME) === 'true') { | |
| alert(CONFIG.MESSAGES.WELCOME); | |
| localStorage.setItem(CONFIG.STORAGE_KEYS.FIRST_TIME, 'false'); | |
| } | |
| } | |
| // Screen capture manager | |
| class ScreenCapture { | |
| constructor() { | |
| this.videoElement = document.createElement('video'); | |
| this.isCapturing = false; | |
| } | |
| start(callback, errorCallback) { | |
| const mediaDevices = navigator.mediaDevices || navigator; | |
| const getDisplayMedia = mediaDevices.getDisplayMedia || mediaDevices.getDisplayMedia; | |
| if (typeof getDisplayMedia === 'function') { | |
| getDisplayMedia.call(mediaDevices, { video: true }) | |
| .then(callback) | |
| .catch(errorCallback || console.error); | |
| } else { | |
| console.error('Screen capture API not available'); | |
| } | |
| } | |
| stop() { | |
| if (this.videoElement.srcObject) { | |
| this.videoElement.srcObject.getTracks().forEach(track => track.stop()); | |
| this.videoElement.srcObject = null; | |
| } | |
| this.isCapturing = false; | |
| } | |
| } | |
| // Handle keyboard shortcuts | |
| function setupKeyboardShortcuts(captureManager) { | |
| document.addEventListener('keydown', (event) => { | |
| if (event[CONFIG.HOTKEY.MODIFIER] && event.keyCode === CONFIG.HOTKEY.KEY_CODE) { | |
| event.preventDefault(); | |
| if (captureManager.isCapturing) { | |
| captureManager.stop(); | |
| console.log('Screen capture stopped'); | |
| } else { | |
| captureManager.start((stream) => { | |
| captureManager.isCapturing = true; | |
| captureManager.videoElement.srcObject = stream; | |
| console.log('Screen capture started'); | |
| }); | |
| } | |
| } | |
| }); | |
| } | |
| // Main initialization | |
| function init() { | |
| initializeFirstTimeUse(); | |
| const captureManager = new ScreenCapture(); | |
| setupKeyboardShortcuts(captureManager); | |
| } | |
| // Start the script | |
| init(); | |
| })(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment