// ==UserScript== // @name Youtube HTML5 Karaoke // @namespace https://github.com/heyqule/youtubekaraoke // @version 1.4.0 // @description HTML5 Karaoke Vocal Control, support center channel cut on regular MV, left/right channel vocal/instrumental mixed MVs. Support: Youtube and Bilibili // @description:zh HTML5 卡拉OK人声控制,支持常规MV中置声道切换,左右声道人声/器乐混合MV。支持:Youtube 和 Bilibili // @description:ja HTML5 カラオケ ボーカル コントロール、通常の MV でのセンター チャンネル カット、左/右チャンネルのボーカル/インストゥルメンタル ミックス MV をサポート。サポート: Youtube, Bilibili // @author heyqule // @license GPLv3 // @match https://www.youtube.com/* // @match https://www.bilibili.com/* // @require https://code.jquery.com/jquery-4.0.0-beta.min.js // @require https://cdn.jsdelivr.net/npm/js-md5@0.7.3/build/md5.min.js // @grant unsafeWindow // @grant GM.xmlHttpRequest // @grant window.onurlchange // @run-at document-end // ==/UserScript== (function($, md5) { 'use strict'; if (window.trustedTypes && window.trustedTypes.createPolicy) { window.trustedTypes.createPolicy('default', { createHTML: (string) => string, createScript: (string) => string }); } const languages={ "zh":{ "title": "🎤 控制", "off": "🎤: 关", "on": "🎤: 开", "vocal_l1": "人声衰减", "vocal_l2": "(左 - 中1 - 中2 - 右)", "high_pass": "高通", "low_pass": "低通", "mic_gain": "🎤 增益", "mic_gain_desc": "从浏览器连接的麦克风有明显的延迟。 建议通过音频接口器去控制。", }, //Ja by google translate "ja":{ "title": "🎤 コントロール", "off": "🎤: オフ", "on": "🎤: オン", "vocal_l1": "ボーカルの減衰", "vocal_l2": "(左 - 中1 - 中2 - 右)", "high_pass": "ハイパス", "low_pass": "ローパス", "mic_gain": "🎤 ゲイン", "mic_gain_desc": "ブラウザから接続したマイクの遅延が顕著です。 オーディオインターフェース経由でコントロールすることをお勧めします。", }, "en":{ "title": "🎤 Controls", "off": "🎤: OFF", "on": "🎤: ON", "vocal_l1": "Vocal Attenuation", "vocal_l2": "(left - center1 - center2 - right)", "high_pass": "High Pass", "low_pass": "Low Pass", "mic_gain": "🎤 Gain", "mic_gain_desc": "Mic connected from browser has noticeable delay. Recommend to connect mic through an audio interface.", }, } let lang = 'en'; //Youtube Handler let mediaElement = 'video.html5-main-video'; let targetContainer = 'div.ytp-right-controls'; let UiAttachTo = 'div#primary div#player'; let youtubeDarkThemeUiAttachTo = 'div#primary div#alerts'; let buttonTag = '