优化 DRM 流媒体在移动版网页上的体验
当前为
// ==UserScript==
// @name Mobile DRM Stream Optimize
// @name:zh-CN 移动端 DRM 流媒体优化
// @namespace http://tampermonkey.net/
// @version 0.0.2
// @description Optimize the user experience of DRM stream on the mobile web
// @description:zh-CN 优化 DRM 流媒体在移动版网页上的体验
// @author TGSAN
// @match *://*.netflix.com/*
// @match *://*.primevideo.com/*
// @include /https?:\/\/.*.?amazon\..+\/(.+\/)?gp\/video\/.*?/
// @include /https?:\/\/.*.?amazon\..+\/(.+\/)?Amazon-Video\/.*?/
// @icon https://www.google.com/s2/favicons?sz=64&domain=www.primevideo.com
// @run-at document-start
// @grant unsafeWindow
// ==/UserScript==
(function() {
'use strict';
let windowCtx = self.window;
if (self.unsafeWindow) {
console.log("[Prime Video Mobile Optimize] use unsafeWindow mode");
windowCtx = self.unsafeWindow;
} else {
console.log("[Prime Video Mobile Optimize] use window mode (your userscript extensions not support unsafeWindow)");
}
function HookProperty(object, property, value)
{
Object.defineProperty(object, property, {
value: value
});
}
HookProperty(windowCtx.navigator, "userAgent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0");
HookProperty(windowCtx.navigator, "appVersion", "5.0 (Windows)");
HookProperty(windowCtx.navigator, "platform", "Win32");
HookProperty(windowCtx.navigator, "appName", "Netscape");
HookProperty(windowCtx.navigator, "appCodeName", "Mozilla");
HookProperty(windowCtx.navigator, "product", "Gecko");
HookProperty(windowCtx.navigator, "vendor", "");
HookProperty(windowCtx.navigator, "vendorSub", "");
HookProperty(windowCtx.navigator, "maxTouchPoints", 0);
HookProperty(windowCtx.navigator, "userAgentData", undefined);
windowCtx.document.addEventListener("fullscreenchange", (event) => {
if (document.fullscreenElement) {
if (windowCtx.screen?.orientation?.lock) windowCtx.screen?.orientation?.lock("landscape");
if (windowCtx.screen?.lockOrientation) windowCtx.screen?.lockOrientation("landscape");
} else {
if (windowCtx.screen?.orientation?.unlock) windowCtx.screen.orientation.unlock();
if (windowCtx.screen?.unlockOrientation) windowCtx.screen.unlockOrientation();
}
});
})();