您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds and modifies an filename formatted title on Youtube above the normal one
- // ==UserScript==
- // @name YouTube Add filename formatted title
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description Adds and modifies an filename formatted title on Youtube above the normal one
- // @author ChatGPT
- // @match https://www.youtube.com/*
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- let lastH1Text = '';
- let checkCounter = 0;
- let changeCounter = 0;
- let intervalId;
- function modifyElement(element, textContents ) {
- var usernameLink = document.querySelectorAll('a[href^="/@"]');
- usernameLink = usernameLink[0]
- var aElements = document.querySelectorAll('a[href^="/@"]');
- var linkTexts = Array.from(aElements)
- .filter(a => !a.querySelector('img'))
- .map(a => a.textContent.trim());
- if (linkTexts.length > 0) {
- usernameLink = linkTexts[0]
- }
- if (usernameLink) {
- var username = usernameLink;
- element.textContent = textContents + ' - ' + username;
- }
- element.textContent = element.textContent.replace(/[^a-zA-Z0-9\-\.\‘\'\"\“\’\s]/g, '-');
- element.textContent = element.textContent.replace(/[\‘\'\"\“\’]/g, '');
- element.textContent = element.textContent.replace(/([\-]{2,99})+/g, '-');
- element.textContent = element.textContent.replace(/([\s]{2,99})+/g, ' ');
- element.textContent = element.textContent.replace(/(\- \-)+/g, ' - ');
- element.textContent = element.textContent.replace(/([\s]{2,99})+/g, ' ');
- element.textContent = element.textContent.replace(/[\[\]{}()<>〈〉《》「」『』【】]/g, '()');
- console.log('Modified element: ', element.textContent);
- }
- function checkElements() {
- var h1Elements = document.getElementsByTagName('h1');
- if (h1Elements.length > 0) {
- for (var i = 0; i < h1Elements.length; i++) {
- if (!h1Elements[i].previousElementSibling || h1Elements[i].previousElementSibling.tagName !== 'H2') {
- var h2Element = document.createElement('h2');
- h2Element.textContent = " ";
- h1Elements[i].parentNode.insertBefore(h2Element, h1Elements[i]);
- }
- h2Element = h1Elements[i].previousElementSibling;
- modifyElement(h2Element, h1Elements[i].textContent);
- // Track text changes in H1
- if (h1Elements[i].textContent !== lastH1Text) {
- lastH1Text = h1Elements[i].textContent;
- checkCounter = 0;
- changeCounter++;
- } else {
- checkCounter++;
- }
- }
- // Adjust checking frequency
- clearInterval(intervalId);
- if (checkCounter >= 100) {
- intervalId = setInterval(checkElements, 60 * 1000); // check every minute
- } else if (changeCounter >= 3) {
- intervalId = setInterval(checkElements, 10 * 1000); // check every 10 seconds
- changeCounter = 0;
- } else {
- intervalId = setInterval(checkElements, 10 * 1000); // default: check every 10 seconds
- }
- }
- }
- intervalId = setInterval(checkElements, 2 * 1000);
- })();