// ==UserScript== // @name GYAO キーコントロール SCRIPT // @namespace https://twitter.com/TONoran0414 // @version 1.2 // @description Gyao Keycontrol Script // @author You // @match https://gyao.yahoo.co.jp/* // @grant none // @downloadURL none // ==/UserScript== (function() { let FarBackSend = 5 //ボタン一回あたりの早送り巻き戻し秒数 let Vol = 0.05 //ボリュームの増減幅。最大は1.00です。 let Speed = 0.25 //速度の増減幅。最大は2.00です ///////////////////////////////////////////////////////////////// //ここから先はスクリプト情報です。触らないようにお願いします。// /////////////////////////////////////////////////////////////// let script = document.createElement("script"); let scriptdata = [ "function Loading_Storage(Video){", "var videodata = window.localStorage.getItem('gks20220122');", "videodata = videodata.split(',');", "Video.volume = Number(videodata[0]);", "Video.playbackRate = Number(videodata[1]);", "}", 'window.addEventListener("keydown",function(event){', 'let Video = document.getElementsByTagName("Video")[0];', 'if(Video){', 'let vControl = document.getElementsByClassName("vjs-control-bar").id', 'let active = document.activeElement.id', 'switch(event.keyCode){', 'case 86:Video.focus();', 'Loading_Storage(Video)', 'break', '}', 'if(Video.id == active){', 'if (event.preventDefault) {', 'event.preventDefault();', '}', 'console.log([event,Video]);', 'keydata = event.keyCode - 36', 'switch(keydata){', 'case 3:console.log("go time + 5s");break;', 'case 1:console.log("go time - 5s");break;', 'case 2:console.log("up volume + 5%");break;', 'case 4:console.log("down volume + 5%");break;', '}', 'event.returnValue = false;', 'VideoDataLoad(keydata,Video,event.shiftKey);', '}', '}})', 'function VideoDataLoad(key,Video,Shift){', 'if(!Shift){', 'switch(key){', 'case 3:Video.currentTime += '+FarBackSend+';break;', 'case 1:Video.currentTime -= '+FarBackSend+';break;', 'case 2:Video.volume += '+Vol+';break;', 'case 4:Video.volume -= '+Vol+';break;', '}}', 'else{', 'switch(key){', 'case 3:Video.playbackRate += '+Speed+';break;', 'case 1:Video.playbackRate -= '+Speed+';break;', '}', 'var rate = Video.playbackRate;', 'var vol = Video.volume;', 'var naming = [vol,rate];', 'naming = naming.join(',');', 'window.localStorage.setItem("gks20220122",naming);', '}', '}' ] scriptdata = scriptdata.join("\n"); script.innerHTML = scriptdata; console.log(scriptdata) document.body.appendChild(script); //container-video-grid-item-sidebar let sideguide = document.getElementsByClassName("container-video-grid-item-sidebar")[0]; sideguide = sideguide.getElementsByTagName("div")[0]; let guide = document.createElement("div"); guide.classList = "Gyao-Keycontrol-Script"; let VolParsent = Vol*100; let text = [ "

\n「GYAO キーコントロール SCRIPT (Gyao Keycontrol Script)」が作動しています。", "vキーを押すとビデオを選択。", "続けて矢印キーを押すとビデオをコントロール出来ます。", "", "矢印キー左右:"+FarBackSend+" 秒前後する", "矢印キー上下:音量を "+VolParsent+" %上下する", "シフト + 矢印キー左右 : 速度を "+Speed+"分 上下する\n

", ]; text = text.join("
\n"); guide.innerHTML = text; sideguide.appendChild(guide); let styledata = [ ".Gyao-Keycontrol-Script{\n", "font-size: 12px;", "font-size: 1.2rem;", "padding: 10px;", "border-radius: 10px;", "border-top: 1px solid #e7e7e7;", "border-bottom: 1px solid #e7e7e7;", "background-color: #e50065;", "color: white;", "margin:20px;", "}" ] let style = document.createElement("style"); styledata = styledata.join("\n") style.innerHTML = styledata; document.body.appendChild(style) })();