// ==UserScript== // @name Netflix Watch Credits // @namespace netflix-watch-credits.user.js // @match https://www.netflix.com/* // @grant none // @version 1.2 // @author nafumofu // @description エンドクレジットでの画面縮小を抑制します。 // @license MIT // @downloadURL none // ==/UserScript== const watchCredits = (node) => { const timer = setInterval(() => { if (!node.isConnected) { clearInterval(timer); return; } for (const [key, value] of Object.entries(node)) { if (key.startsWith('__reactProps$')) { const state = value.children._owner.memoizedState const end = state.activeVideoMetadata._video.runtime; state.activeVideoMetadata._video.creditsOffset = end; break; } } }, 1000); } const observer = new MutationObserver((mutations) => { for (const mutation of mutations) { const nodes = [...mutation.addedNodes].filter((node) => node.nodeType === Node.ELEMENT_NODE); for (const node of nodes) { if (node.matches('.watch-video--player-view')) { watchCredits(node); } } } }); observer.observe(document.body, { subtree: true, childList: true, });