您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
reformats the titles of YouTube videos to be windows filename compatible on click.
当前为
// ==UserScript== // @name YouTube Title formatted for filename // @namespace sm // @version 0.12 // @description reformats the titles of YouTube videos to be windows filename compatible on click. // @match http*://www.youtube.com/watch* // @copyright 2020, sm // ==/UserScript== // @require http://code.jquery.com/jquery-3.4.1.min.js console.log("docReady waiting ") docReady(function() { // DOM is loaded and ready for manipulation here console.log("running ") let count = 1; setTimeout(function() { //Code to run After timeout elapses console.log("finding title ") console.log("YouTube Title formatter v1.001") let title = document.querySelector("#container > h1"); title.onclick = function(e){//turn title into button //your handler here if(count < 3){//prevent from running too many times let title2 = document.querySelector("#container > h1"); let newTitle2 = isValid(title2.innerHTML) //pull title again due to js idiosyncrasies console.log("newTitle == ", newTitle2) if(newTitle2 != null){ title2.innerHTML = newTitle2 } console.log(count) count = count + 1; } } console.log("title == ",title) function isValid(fname){ console.log("fname type is ", typeof fname); console.log("fname input is ", fname); for(let i = 0; i < 20; i++){ fname = fname.replace("&"," and ") fname = fname.replace("|"," ") fname = fname.replace("||"," ") fname = fname.replace(","," ") fname = fname.replace("?"," ") fname = fname.replace("!"," ") fname = fname.replace('"'," ") fname = fname.replace("@"," ") //fname = fname.replace("<","(") // fname = fname.replace(">",")") fname = fname.replace(".","") fname = fname.replace("'","") fname = fname.replace("`","") fname = fname.replace("/","") fname = fname.replace("\\","") fname = fname.replace(":","") fname = fname.replace(";","") fname = fname.replace("*","") fname = fname.replace("^","") fname = fname.replace("%","") fname = fname.replace("$","") fname = fname.replace("#","") fname = fname.replace("+","") fname = fname.replace("_","") fname = fname.replace("’","") fname = fname.replace("→"," - ") fname = fname.replace("」"," ") fname = fname.replace("「"," ") fname = fname.replace("}",")") fname = fname.replace("{"," (") fname = fname.replace(" "," ") fname = fname.replace("ー","-") fname = fname.replace("/","-") fname = fname.replace("『"," (") fname = fname.replace("』",")") fname = fname.replace("!","") fname = fname.replace("【"," (") fname = fname.replace("】",")") fname = fname.replace("and amp "," and ") } console.log("fname output is ", fname); return fname } }, 2000); //Two seconds will elapse and Code will execute. }); function docReady(fn) { // see if DOM is already available if (document.readyState === "complete" || document.readyState === "interactive") { // call on next available tick setTimeout(fn, 1); } else { document.addEventListener("DOMContentLoaded", fn); } }