您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Make YouTube captions selectable
- // ==UserScript==
- // @name YT Select Captions
- // @namespace https://greasyfork.org/users/901750-gooseob
- // @version 1.1
- // @description Make YouTube captions selectable
- // @author GooseOb
- // @license MIT
- // @match https://www.youtube.com/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com
- // ==/UserScript==
- (() => {
- "use strict";
- var until = (getItem, check, timeout = 1e4, interval = 20) =>
- new Promise((res, rej) => {
- let item = getItem();
- if (check(item)) return res(item);
- const limit = timeout / interval;
- let i = 0;
- const id = setInterval(() => {
- item = getItem();
- if (check(item)) {
- clearInterval(id);
- res(item);
- } else if (++i > limit) {
- clearInterval(id);
- rej(new Error(`Timeout: item ${getItem.name} wasn't found`));
- }
- }, interval);
- });
- var untilAppear = (getItem, msToWait) => until(getItem, Boolean, msToWait);
- untilAppear(() =>
- document.getElementById("ytp-caption-window-container"),
- ).then((captionWindowCont) => {
- captionWindowCont.addEventListener(
- "mousedown",
- (e) => {
- e.stopPropagation();
- },
- { capture: true },
- );
- });
- var style = document.createElement("style");
- style.textContent = `
- #ytp-caption-window-container {
- pointer-events: unset !important;
- }
- #ytp-caption-window-container > div {
- pointer-events: unset !important;
- user-select: text !important;
- -webkit-user-select: text !important;
- }
- .ytp-caption-segment {
- cursor: text !important;
- }
- `;
- document.head.appendChild(style);
- })();