// ==UserScript== // @name 可可影视播放器 // @namespace https://github.com/geoi6sam1 // @version 1.0.1 // @description 使用DPlayer插件播放影片,支持转码mp4下载,支持记忆、连续播放,支持更多快捷键操作,支持显示标题和时间,支持快速选集、切换线路,支持任意倍速调整(0.1-16) // @author geoi6sam1@qq.com // @match http*://*.keke*.com/play/* // @match http*://*.keke*.app/play/* // @icon https://api.iowen.cn/favicon/www.kekedy.tv.png // @supportURL https://github.com/geoi6sam1/FuckScripts/issues // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js // @require https://cdn.bootcdn.net/ajax/libs/hls.js/1.4.12/hls.min.js // @require https://cdn.bootcdn.net/ajax/libs/dplayer/1.27.1/DPlayer.min.js // @run-at document-start // @grant unsafeWindow // @grant GM_addStyle // @license GPL-3.0 // ==/UserScript== (function () { 'use strict' const obj = {} const $ = unsafeWindow.jQuery || window.jQuery || $ const userAgent = navigator.userAgent || window.navigator.userAgent const isMobile = /Android|webOS|iPhone|iPad|iPod|Opera Mini|Mobile/i.test(userAgent) const shortcutKey = [ ["F", "切换全屏"], ["K", "查看快捷键说明"], ["M", "开启/关闭静音"], ["N", "恢复正常 1X 倍速"], ["S", "快速选集"], ["T", "切换线路"], ["W", "切换网页全屏"], [",", "播放上集"], [".", "播放下集"], ["[", "减速播放"], ["]", "加速播放"], ["↑", "音量增加10%"], ["↓", "音量降低10%"], ["←", "快退5秒"], ["→", "快进5秒"], ["Space", "播放/暂停"], ["Esc", "退出全屏"], ["双击视频", "切换全屏"], ["长按视频", "临时 3X 倍速播放"], ] console.table(shortcutKey) var made = ["d-c-a", "d-i", "u-h"] made.forEach((f) => { localStorage.removeItem(f) }) GM_addStyle(` #dplayer [class*="-panel-area"]::-webkit-scrollbar { width: 10px; height: 10px; } #dplayer [class*="-panel-area"]::-webkit-scrollbar-track { width: 6px; background: rgba(22,22,22,.1); -webkit-border-radius: 2em; -moz-border-radius: 2em; border-radius: 2em; } #dplayer [class*="-panel-area"]::-webkit-scrollbar-thumb { background-color: rgba(57,58,67,.9); background-clip: padding-box; min-height: 32px; -webkit-border-radius: 2em; -moz-border-radius: 2em; border-radius: 2em; transition: background-color .3s; cursor: pointer; } #dplayer [class*="-panel-area"]::-webkit-scrollbar-thumb:hover { background-color: rgba(57,58,67,.9); } body { -webkit-font-smoothing: antialiased !important; -moz-font-smoothing: antialiased !important; font-smoothing: antialiased !important; } .mobile-download-popup, [class*='install-tip'], .dplayer-menu .dplayer-menu-item:nth-last-child(1), .dplayer-menu .dplayer-menu-item:nth-last-child(2) { display: none !important; } .dplayer-episode-panel-input:hover { box-shadow: 0 0 0 2px #e2c027 inset; } .dplayer-source-panel-area a:hover { color: #e2c027 !important; } `) function toast(msg, dus) { var cText, text = decodeURIComponent(encodeURIComponent(msg)) let html = `
${text}
` $("body").append(html) setTimeout(() => { $("#cToast").css({ "transition": "all 0.3s ease scale(0.5)", "opacity": "0" }) $("#cToast").remove() }, dus ? dus : 2e3) console.log(cText) } obj.dPlayerGetUrl = function () { var lHref = location.href || window.location.href var xhr = new XMLHttpRequest() xhr.open('GET', lHref) xhr.send() xhr.onreadystatechange = () => { if (xhr.readyState == 4 && xhr.status == 200) { var html = xhr.responseText var script = html.match(/