您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds an aspect ratio switcher to the player, for videos that have the wrong aspect ratio.
当前为
- // ==UserScript==
- // @name YouTube aspect ratio switcher
- // @namespace https://greasyfork.org/en/users/27283-mutationobserver
- // @version 2023.02.01v5
- // @description Adds an aspect ratio switcher to the player, for videos that have the wrong aspect ratio.
- // @author MutationObserver
- // @match https://*.youtube.com/watch*v=*
- // @match https://*.youtube.com/embed/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- var currentRatio = null;
- var aspectRatiosIndex = 0;
- var videoElemAttr = "data-aspectRatio-userscript";
- var buttonhtml = `<button id="aspectratioSwitcher" class="ytp-button" title="Aspect ratio">↔</button>`;
- var csshtml = `
- <style>
- #aspectratioSwitcher {
- top: -13px;
- position: relative;
- text-align: center;
- font-size: 25px;
- }
- .ytp-big-mode #aspectratioSwitcher {
- font-size: 182%;
- top: -19px;
- }
- #movie_player[data-aspectRatio-userscript="16:9"] #aspectratioSwitcher,
- #movie_player[data-aspectRatio-userscript="9:16"] #aspectratioSwitcher,
- #movie_player[data-aspectRatio-userscript="4:3"] #aspectratioSwitcher {
- font-size: unset;
- }
- .html5-main-video { transition: .2s; }
- #movie_player[data-aspectRatio-userscript="16:9"] .html5-main-video { transform: scale(1.335,1)!important; }
- #movie_player[data-aspectRatio-userscript="4:3"] .html5-main-video { transform: scale(.75,1)!important; }
- #movie_player[data-aspectRatio-userscript="9:16"] .html5-main-video { transform: scale(1.77,1)!important; }
- </style>
- `;
- if (!document.querySelector(".ytp-subtitles-button.ytp-button")) var anchorElem = document.querySelector(".ytp-button.ytp-settings-button");
- else var anchorElem = document.querySelector(".ytp-subtitles-button.ytp-button");
- anchorElem.insertAdjacentHTML("beforebegin", buttonhtml + csshtml);
- var buttonElem = document.querySelector("#aspectratioSwitcher");
- buttonElem.addEventListener("click", aspectRatioSwitch);
- function aspectRatioSwitch() {
- var videoElem = document.querySelector("#movie_player");
- aspectRatiosIndex++;
- if (aspectRatiosIndex > 3) aspectRatiosIndex = 0;
- switch(aspectRatiosIndex) {
- case 1:
- currentRatio = "4:3";
- videoElem.setAttribute(videoElemAttr, currentRatio);
- buttonElem.innerHTML = currentRatio;
- return;
- break;
- case 2:
- currentRatio = "16:9";
- videoElem.setAttribute(videoElemAttr, currentRatio);
- buttonElem.innerHTML = currentRatio;
- return;
- break;
- case 3:
- currentRatio = "9:16";
- videoElem.setAttribute(videoElemAttr, currentRatio);
- buttonElem.innerHTML = currentRatio;
- return;
- break;
- default:
- videoElem.setAttribute(videoElemAttr, "");
- currentRatio = null;
- buttonElem.innerHTML = "↔";
- return;
- }
- }
- })();