您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Play Videos Via Local Player
当前为
// ==UserScript== // @name [115.com] Local Player // @version 2.0.1 // @description Play Videos Via Local Player // @match https://115.com/* // @author sam // @run-at document-end // @grant none // @namespace 115.com // ==/UserScript== $(document).ready(function(){ changeWindow();//去除无用侧边栏 //仅在wangpan框架内执行 var page_url = window.location.href.substr(0,25); if (page_url =='https://115.com/?ct=file&'){ addPlayer();//添加播放按钮 addMenu();//调整菜单 }; }); function addMenu(){ document.querySelector("#js_top_panel_box > div:nth-child(5)").remove(); //移除上传按钮 //document.querySelector("#js_top_panel_box > div.right-tvf > a:nth-child(1)").remove(); //移除我的分享 //添加'链接任务'按钮 $('<a href="javascript:;" id="add_task" class="button btn-linear-blue illt-offline" menu="offline_task" is_bind="1"><span>链接任务</span></a>').prependTo(document.querySelector("#js_top_panel_box > div.right-tvf")); //自动粘贴 var btn = document.querySelector("#add_task"); btn.addEventListener("click", autoPaste()); } function autoPaste(){ } function changeWindow(){ if(window.location.href === "https://115.com/home/userhome"){ window.location = "https://115.com/?mode=wangpan"; }else{ var item_list,item_obj,item_name; var ifr = $("iframe[style='position: absolute; top: 0px;']"); $("div#js-main_mode").css("display","none"); $("div.main-core").css("left","0"); ifr.load( function(){ setCss(); addMarkButton(); item_list = ifr.contents().find("body").find("div#js_data_list"); item_list.mouseenter( function(){ if($("div.exph-loader").css("display") === "none" && !(item_list.find("div#isload").length)){ item_list.append("<div id='isload'></div>"); itemEvent(); } } ); } ); } } function addPlayer(){ //本地播放器打开 var requests = [], CloudVideo = window.CloudVideo = { showPanel: function (code) { this.getFileUrl(code, function (url) { //var xurl = 'ygl://' + encodeURIComponent(url); var xurl = 'potplayer://' + url; //原生potplayer调用 console.log(xurl); window.location.href = xurl; }); }, getFileUrl: function (pickcode, callback) { requests.push([pickcode, callback]) } }; $('<iframe>').attr('src', 'https://webapi.115.com/bridge_2.0.html?namespace=CloudVideo&api=jQuery').attr("id", 'ciid').css({ width: 0, height: 0, border: 0, padding: 0, margin: 0, position: 'absolute', top: '-99999px' }).one('load', function () { var urlCache = {}; CloudVideo.getFileUrl = function (pickcode, callback) { if (urlCache[pickcode]) { setTimeout(callback, 0, urlCache[pickcode]); } else { /* window.frames["ciid"].contentWindow.jQuery.get('https://webapi.115.com/files/download?pickcode=' + pickcode, function (data) { callback(urlCache[pickcode] = data.file_url) }, 'json'); */ //请求m3u8,调用potplayer打开 var xhr = new XMLHttpRequest(); xhr.open("GET", 'https://115.com/api/video/m3u8/' + pickcode + '.m3u8', true); //未加时间戳 xhr.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var text = this.responseText, text_array=text.split("\n"); text_array.shift(); text_array.pop(); //console.log(text_array); var BANDWIDTH = [],FILE_URL = []; for(let index in text_array) { //console.log(index,text_array[index]); if(index%2 == 0){ var patt = /BANDWIDTH=(\d*)?/; var bw = text_array[index].match(patt)[1]; BANDWIDTH.push(Number(bw)); } else{ FILE_URL.push(text_array[index]); }; }; var bw_max_index = BANDWIDTH.indexOf(Math.max(...BANDWIDTH)); //console.log(FILE_URL); callback(urlCache[pickcode] = FILE_URL[bw_max_index]); } }; xhr.send(); }; }; requests.forEach(function (e) { CloudVideo.getFileUrl(e[0], e[1]) }); requests = null; }).appendTo('html'); //添加播放按钮 $(document).on('mouseenter', 'li[rel="item"][file_type="1"][file_mode="9"]:not([is_loaded_vbutton="1"])', function () { var par_element = $(this).attr('is_loaded_vbutton', '1'), pick_code = par_element.attr('pick_code'); var menu = par_element.find('[class="file-opr"]'); $('<a href="javascript:;" menu_btn="more"><i class="icon ifo-share"></i><span>via.PotPlayer</a>').on('click', function () { CloudVideo.showPanel(pick_code); console.log(pick_code); }).appendTo(menu); }); }