// ==UserScript== // @name 学外语视频外挂悬浮可点复制翻译字幕(google搜视频在线播-配合欧路词典),Learn-foreign-language-video-clickable-copying-subtitle // @description 电脑建议配合欧路词典划词翻译(查看图片展示设置) , 加减按钮调节字幕偏移时间(有的视频插入了广告导致字幕错位) , 显示按钮:电脑鼠标移动或者移动端触摸屏幕 , 字幕内鼠标滑轮滚动视频快进 , F全屏快捷键,(暂时不好用后期修复) , 移动端建议 (需要魔法-iphone下载m3u3免费资源下载器(safari插件),safari长按浏览器网络视频下载) , 地址 : https://translation-of-video-subtitles-by-extracting-words.vercel.app/ , iphone 建议使用快捷指令获取剪贴板翻译 , 安卓手机建议使用屏幕取词软件 // @require https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js // @require https://cdn.bootcss.com/vConsole/3.3.0/vconsole.min.js // @require https://unpkg.com/default-passive-events // @include * // @match *://*/* // @namespace http://tampermonkey.net/ // @version 2023.12.24.21.09.55 // @icon https://www.google.com/s2/favicons?sz=64&domain=greasyfork.org // @author You // @downloadURL none // ==/UserScript== (()=>{"use strict";const z=e=>{console.log("%c"+e,` background-color: #811f21; color: white; line-height:1.5rem; padding:0 0.5rem; `)};function P(e){var t;t=e,!(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement)||t!==document.fullscreenElement&&t!==document.mozFullScreenElement&&t!==document.webkitFullscreenElement&&t!==document.msFullscreenElement?(t=e,z("全屏视频"),t.requestFullscreen?t.requestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():t.msRequestFullscreen&&t.msRequestFullscreen(),void 0!==window.ActiveXObject&&null!=(e=new ActiveXObject("WScript.Shell"))&&e.SendKeys("{F11}")):(z("退出全屏视频"),document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.msExitFullscreen&&document.msExitFullscreen())}window.addEventListener("load",(function(){z("视频外挂西悬浮可点复制翻译字幕-floating-plug-in-for-clickable-subtitle-copying"),$("iframe").each((function(){$(this).attr("allowfullscreen","true")})),navigator.mediaSession.setActionHandler("previoustrack",(function(){document.querySelector("video").currentTime-=3})),navigator.mediaSession.setActionHandler("nexttrack",(function(){document.querySelector("video").currentTime+=3}));const t=$("video");var e=t.parent(),o=(e=(e.addClass("videoWrapper"),e.css({position:"relative"}),t.append(""),t.attr("controls","true"),t.attr("playsInline","true"),t.attr("autopictureinpicture","true"),$("")),e.on("click",(function(e){e.stopPropagation(),z("全屏开关点击"),P(document.querySelector(".videoWrapper"))})),{"z-index":"2147483647",color:"#fff",position:"absolute",transition:"all 0.2s ease-in-out"}),n={margin:"1vw",display:"block",padding:"0.5vw","border-radius":".5vw","background-color":"#1118","font-size":"1.5vw",cursor:"pointer","user-select":"text","line-height":"2.5rem !important",color:"#fffb",transition:"all 0.2s ease-in-out","backdrop-filter":"blur(4px)"},i=(e.css({...n}),$(""));let r=!0;i.css({...n});const a=$("
");i.on("click",(function(e){e.stopPropagation(),z("字幕显示开关点击"),r=!r,a.css({display:r?"block":"none"})})),a.click((function(e){z("字幕外层点击"),e.stopPropagation()})),a.on("mousedown",(e=>{e.stopPropagation(),t?.[0].pause(),z("视频暂停")})),a.on("touchstart",(e=>{e.stopPropagation(),t?.[0].pause(),z("视频暂停")}));let s=!1,l="";a.on("mouseup",(async e=>{e.stopPropagation();e=await(navigator?.clipboard?.readText());console.log("window?.getSelection()?.toString() :",l,"-||-",e),window?.getSelection()?.toString()||l===e?(t?.[0].pause(),z("视频暂停")):s||(t?.[0].play(),z("视频播放"))})),a.on("touchend",(async e=>{e.stopPropagation();e=await(navigator?.clipboard?.readText());console.log("window?.getSelection()?.toString() :",l,"-||-",e),window?.getSelection()?.toString()||l===e?(t?.[0].pause(),z("视频暂停")):s||(t?.[0].play(),z("视频播放"))})),a.css({...o,"backdrop-filter":"blur(8px)",mask:"linear-gradient(180deg, black 0%, rgba(0, 0, 0, 1) 80%,rgba(0, 0, 0, 0.0) 95%)",border:"2px solid #aaa8",transform:"translateX(-50%)",display:"block","user-select":"text",width:"80vw",bottom:"0",left:"50%",padding:"3vw 3vw 10vh 3vw","font-size":" 3vw","text-align":" center","border-radius":"3vw 3vw 0 0"});var c=$(' '),u=(c=(t.prepend(c),c.on("loadeddata",(e=>{e.stopPropagation(),z("轨道数据缓存")})),$(`
`)),c.css({"font-size":" 2vw","background-color":"#0004","order-radius":" 2vw !important",padding:"1vw 4vw",display:"flex","justify-content":"space-between","align-items":"center"}),$(` 字幕文件转格式.srt->: (.vtt)网站0 (.vtt)网站1 (.txt)网站2 (.txt)网站3 `));u.css({"line-height":"5vw"}),c.css({"font-size":"2vw","line-height":"5vw"}),c.on("change",(e=>{e.stopPropagation();e=e.target.files[0];e&&(document.querySelector(".videoTrack").src=URL.createObjectURL(e))}));let p=0,d=-1,m=-1,w=null;function b(e){z($(this).text()+"被点击了"),$(this).css({"background-color":"#fff3","border-radius":"1vw"});var t=document?.createRange();t?.selectNode(this),(t=window?.getSelection()?.addRange(t))?z("添加选取成功"):z("添加选取失败"),l=e?.target?.textContent.match(/\b[\w]+\b/)?.[0],navigator?.clipboard?.writeText(l)?.then((()=>{z("复制成功 "+l),clearTimeout(w),w=setTimeout((()=>{navigator?.clipboard?.writeText("")?.then((()=>{z("1秒后清除剪贴板成功 "+l)}))?.catch((()=>{z("1秒后清除剪贴板失败 "+l)}))}),1e3)}))?.catch((()=>{z("复制失败 "+l)}))}t.on("timeupdate",(e=>{e.stopPropagation();e=e?.target;var t=e?.currentTime+p,o=e?.textTracks[0]?.cues;if(e?.textTracks[0]?.cues?.length&&d!==parseInt(e?.currentTime))for(let e=0;e=t){m!==e&&(n=n?.text?.split(/\s+/)?.map((e=>`${e} `)).join(""),a.html(`

${n}

`),1<=e&&(n=(o?.[e-1])?.text?.split(/\s+/)?.map((e=>`${e} `)).join(""),a.append(`

${n}

`)),(n=$(".clickable_subtitle_middle")).on("mousedown","span",b),n.on("touchstart","span",b),n.on("mouseenter","span",b),n.on("mousemove","span",(e=>{/\s/.test(window?.getSelection()?.toString())||(l=e?.target?.textContent.match(/\b[\w]+\b/)?.[0],navigator?.clipboard?.writeText(l)?.then((()=>{z("复制成功 "+l),clearTimeout(w),w=setTimeout((()=>{window?.getSelection()?.removeAllRanges(),l="",z("1秒后清除剪贴板成功")}),1e3)}))?.catch((()=>{z("复制失败 "+l)})))})),n.on("mouseleave","span",(function(){$(this).css({"background-color":"#fff0","border-radius":"1vw"})})),m=e);break}}d=parseInt(e?.currentTime)}));async function v(e){e.stopPropagation(),s=!1,a.css({height:"auto"}),$(".clickable_subtitle_middle").css({"margin-top":"0"}),e=await(navigator?.clipboard?.readText()),console.log("window?.getSelection()?.toString() :",l,"-||-",e),window?.getSelection()?.toString()||l===e?(window?.getSelection()?.removeAllRanges(),t?.[0].pause(),z("视频暂停")):(t?.[0].play(),z("视频播放"))}var g=$("找字幕文件网1 "),f=$("找字幕文件网2 "),h=$("找字幕文件网3 "),k=(g.css({color:"#fff"}),f.css({color:"#fff"}),h.css({color:"#fff"}),$("
")),y=(k.css({"line-height":"6vw !important"}),$("
"));g=(y.css({display:"flex","justify-content":"space-between","align-items":"center","font-size":"2vw","order-radius":"2vw !important",padding:"1vw 4vw","background-color":"#0004","line-height":"5vw"}),y.append(g),y.append(f),y.append(h),k.append(c),k.append(u),k.append(y),a.prepend(k),a.on("mouseenter",(function(e){e.stopPropagation(),s=!0,t?.[0].pause(),z("视频暂停")})),a.on("mouseleave",v),document?.querySelector("video").addEventListener("mouseenter",v),$(".videoWrapper"));g.css({"font-size":"2vw",padding:"0 1rem !important"});const _=$('
');let x=!1,S=void(_.on("mouseenter",(function(){x=!0})),_.on("mouseleave",(function(){x=!1})),_.css({...o,top:"50%",right:"0",color:"#fff",transform:"translateY(-50%)"}),t.on("touchstart",(e=>{e.stopPropagation(),_.css({opacity:"1",transition:"all 0.2s ease-in-out"})})),t.on("touchend",(e=>{e.stopPropagation(),clearTimeout($.data(this,"timer")),$.data(this,"timer",setTimeout((()=>{_.css({opacity:"0.1",transition:"all 0.2s ease-in-out"})}),1e3))})));$(document).on("mousemove",(function(e){e.stopPropagation(),S=!1,clearTimeout($.data(this,"timer")),_.css({opacity:"1",transition:"all 0.2s ease-in-out"}),x||$.data(this,"timer",setTimeout((()=>{x=!1,_.css({opacity:"0.1",transition:"all 0.2s ease-in-out"})}),1e3))}));f=$("");f.css({...n});const T=$("
0秒
"),F=(T.css({...n}),()=>{T.text(p+"秒")});f.on("click",(e=>{e.stopPropagation(),p++,F()}));h=$("");h.css({...n}),h.on("click",(e=>{e.stopPropagation(),p--,F()})),$("
").css({display:"flex","justify-content":"space-between","align-items":"center"}),_.append(e),_.append(i),_.append($("
  
")),_.append(h),_.append(T),_.append(f),g.append(_),g.append(a),document.querySelector(".floating_plug_in_for_clickable_subtitle_copying").onwheel=function(e){e.preventDefault(),e.deltaY<0?document.querySelector("video").currentTime-=3:document.querySelector("video").currentTime+=3};function q(e){e?.preventDefault();var t=e?.key;e=e?.keyCode;console?.log("key :",t,e),"f"!==t&&"F"!==t||P(document.querySelector(".videoWrapper"))}document?.addEventListener("keyup",q),document?.querySelector("video").addEventListener("keyup",q),$("*").css("user-select","text")}),!1)})();