您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
// ==UserScript== // @name 542372.com免费看 // @namespace http://tampermonkey.net/ // @version 0.1.1 // @description try to take over the world! // @author You // @match https://*.542372.com:*/* // @match https://*.542969.com:*/* // @match https://*.543786.com:*/* // @match https://*.542732.com:*/* // @match https://*.544979.com:*/* // @icon https://www.google.com/s2/favicons?sz=64&domain=543786.com // @grant none // ==/UserScript== (function () { 'use strict'; function decode(text) { let secret = new fernet.Secret("NyGRG56A8i5J2JMqh7da83r2MMfgbM7Ppw1aCF8YnAY="); var token = new fernet.Token({ secret: secret, token: text, ttl: 0 }) return token.decode(); } function getVideoId(url_path) { let videoId = url_path.split("/")[2]; return videoId; } function playUrl(videoId, play_url, config) { new window.DPlayer({ element: document.getElementById(`myVideoPlayer_${videoId}`), video: { type: "auto", url: play_url, pic: "" }, pluginOptions: { hls: { maxMaxBufferLength: 10 } }, ...config.defaultConfig }) } function after(videoId,download_url,play_url_path,config){ document.querySelector("#root > div > div:nth-child(7) > div:nth-child(4) > div:nth-child(2)").remove(); document.querySelector("#root > div > div:nth-child(7) > div:nth-child(4)").innerHTML = `<a class="sc-bkkeKt sc-dJjYzT iETJJG ciOzeC" style="background: rgb(70, 164, 180);width="31%";height="36px" " href="${download_url}">下载</a>` document.querySelector("#root > div > div:nth-child(7) > div:nth-child(1) > div:nth-child(4) > div:nth-child(2) > div:nth-child(2)").addEventListener("click", () => { let video_host2 = config.video_play_url_list[1].url[0] let play_url = "https://" + video_host2 + play_url_path; playUrl(videoId, play_url, config) }) document.querySelector("#root > div > div:nth-child(7) > div:nth-child(1) > div:nth-child(4) > div:nth-child(2) > div:nth-child(3)").addEventListener("click", () => { let video_host2 = config.video_play_url_list[2].url[0] let play_url = "https://" + video_host2 + play_url_path; playUrl(videoId, play_url, config) }) } async function main() { //document.querySelector("#root > div> div:nth-child(2)").innerHTML = "" //document.querySelector("#root > div> div:nth-child(5)").innerHTML = "" //document.querySelector("#root > div> div:nth-child(6)").innerHTML = "" //document.querySelector("#root > div> div:nth-child(9)").innerHTML = "" //document.querySelector("#root > div > div:nth-child(7) > div:nth-child(2)").innerHTML = "" let config = JSON.parse(decode(window.CONFIG)) let api_host = config.api_url let videoId = getVideoId(window.location.pathname) let api_path = "/api/vod/video/" + videoId + "?site_id=8&channel_id=531" let url = "https://" + api_host + api_path let res = await fetch(url) let data = await res.json() let res_json = decode(data["x-data"]) let resObj = JSON.parse(res_json) let play_url_path = resObj.data.play_url; let down_url_path = resObj.data.down_url; let video_host1 = config.video_play_url_list[0].url[0] let video_download_host1 = config.video_download_url[0] let play_url = "https://" + video_host1 + play_url_path; let download_url = "https://" + video_download_host1 + down_url_path; //let play_url = "https://" + window.play_host + resObj.data.play_url; // let download_url = "https://" + window.play_host + resObj.data.down_url; console.log(play_url) if (window.DPlayer) { playUrl(videoId, play_url, config) after(videoId,download_url,play_url_path,config) } else { setTimeout(() => { playUrl(videoId, play_url, config) after(videoId,download_url,play_url_path,config) }, 200) } } let intervalValue = setInterval(() => { if (document.readyState === "complete") { main() clearInterval(intervalValue) } }, 200) // Your code here... })();