// ==UserScript==
// @name 个人视频解析
// @version 2.9-2022.7.10
// @description 支持B站、腾讯视频、爱奇艺、优酷、土豆、芒果TV、搜狐视频、乐视视频、PPTV、风行、哔哩哔哩等,支持多个解析接口切换,界面简洁,脚本仅限学习,请大家支持正版。
// @author skyseek
// @foo 此脚本为修改版,原脚本页面:http://greasyfork.icu/zh-CN/scripts/406849 原作者:sign 此修改版做简洁处理和兼容性修改。
// @namespace http://greasyfork.icu/zh-CN/scripts/424086
// @require https://cdn.bootcss.com/jquery/3.5.1/jquery.min.js
// @match *://v.qq.com/x/cover/*
// @match *://v.qq.com/x/page/*
// @match *://m.qq.com/*
// @match *://www.iqiyi.com/v*
// @match *://m.iqiyi.com/*
// @match *://v.youku.com/v_show/*
// @match *://m.youku.com/*
// @match *://www.mgtv.com/b/*
// @match *://tv.sohu.com/v/*
// @match *://film.sohu.com/album/*
// @match *://www.le.com/ptv/vplay/*
// @match *://v.pptv.com/show/*
// @match *://vip.pptv.com/show/*
// @match *://www.fun.tv/vplay/*
// @match *://www.acfun.cn/v/*
// @match *://www.bilibili.com/video/*
// @match *://www.bilibili.com/anime/*
// @match *://www.bilibili.com/bangumi/play/*
// @match *://m.bilibili.com/*
// @match *://vip.1905.com/play/*
// @match *://www.56.com/*
// @match *://www.wxtv.net/*
// @match *://www.eggvod.cn/*
// @license GPL License
// @grant unsafeWindow
// @grant GM_openInTab
// @grant GM.openInTab
// @grant GM_getValue
// @grant GM.getValue
// @grant GM_setValue
// @grant GM.setValue
// @grant GM_xmlhttpRequest
// @grant GM.xmlHttpRequest
// @grant GM_registerMenuCommand
// @connect iqiyi.com
// @connect mgtv.com
// @connect pl.hd.sohu.com
// ==/UserScript==
;(function () {
'use strict'
var $ = $ || window.$
var host = location.host
var parseInterfaceList = []
var selectedInterfaceList = []
var originalInterfaceList = [
//以下为B站解析线路:如果不满意接口速度可以适当替换或删除
//--------------------------------------------------------------------------------------
{ name: '线路一', type: '1', url: 'https://jx.yaohuaxuan.com/?url=' },
{
name: '线路二',
type: '1',
url: 'https://www.5igen.com/dmplayer/player/?url=',
},
//--------------------------------------------------------------------------------------
//bilibili播放器
//--------------------------------------------------------------------------------------
{
name: '线路三',
type: '1',
url: 'https://vip.parwix.com:4433/player/?url=',
},
{ name: '线路四', type: '1', url: 'https://z1.m1907.cn/?jx=' },
//--------------------------------------------------------------------------------------
//以下为爱优腾等全网视频解析线路:如果不满意接口速度可以适当替换或删除
//--------------------------------------------------------------------------------------
{ name: '线路一', type: '2', url: 'https://www.h8jx.com/jiexi.php?url=' },
{ name: '线路二', type: '2', url: 'https://z1.m1907.cn/?jx=' },
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
{ name: '线路三', type: '2', url: 'https://jx.dj6u.com/?url=' },
{
name: '线路四',
type: '2',
url: 'https://www.playm3u8.cn/jiexi.php?url=',
},
// 新接口
{ name: '线路五', type: '2', url: 'https://www.8090g.cn/?url=' },
{ name: '线路六', type: '2', url: 'https://yparse.jn1.cc/index.php?url=' },
{
name: '线路七',
type: '2',
url: 'https://www.1717yun.com/jx/ty.php?url=',
},
//--------------------------------------------------------------------------------------
]
function innerParse(url) {
$('#iframe-player').attr('src', url)
}
function GMopenInTab(url, open_in_background) {
if (typeof GM_openInTab === 'function') {
GM_openInTab(url, open_in_background)
} else {
GM.openInTab(url, open_in_background)
}
}
function GMgetValue(name, value) {
if (typeof GM_getValue === 'function') {
return GM_getValue(name, value)
} else {
return GM.getValue(name, value)
}
}
function GMsetValue(name, value) {
if (typeof GM_setValue === 'function') {
GM_setValue(name, value)
} else {
GM.setValue(name, value)
}
}
function GMxmlhttpRequest(obj) {
if (typeof GM_xmlhttpRequest === 'function') {
GM_xmlhttpRequest(obj)
} else {
GM.xmlhttpRequest(obj)
}
}
function css(css) {
var myStyle = document.createElement('style')
myStyle.textContent = css
var doc = document.head || document.documentElement
doc.appendChild(myStyle)
}
var node = ''
var player_nodes = [
{ url: 'v.qq.com', node: '#mod_player' },
{ url: 'www.iqiyi.com', node: '#flashbox' },
{ url: 'v.youku.com', node: '#ykPlayer' },
{ url: 'www.mgtv.com', node: '#mgtv-player-wrap container' },
{ url: 'tv.sohu.com', node: '#player' },
{ url: 'film.sohu.com', node: '#playerWrap' },
{ url: 'www.le.com', node: '#le_playbox' },
{ url: 'v.pptv.com', node: '#pptv_playpage_box' },
{ url: 'vip.pptv.com', node: '.w-video' },
{ url: 'www.fun.tv', node: '#html-video-player-layout' },
{ url: 'www.acfun.cn', node: '#player' },
{ url: 'www.bilibili.com', node: '#player_module' },
{ url: 'vip.1905.com', node: '#player' },
{ url: 'www.56.com', node: '#play_player' },
]
for (var i in player_nodes) {
if (player_nodes[i].url == host) {
node = player_nodes[i].node
}
}
var videoPlayer = $(
"<div id='iframe-div' style='width:100%;height:100%;z-index:1000;'><iframe id='iframe-player' frameborder='0' allowfullscreen='true' width='100%' height='100%'></iframe></div>",
)
var innerList = []
var innerli = ''
var innerlis = ''
originalInterfaceList.forEach((item, index) => {
if (item.type == '1') {
innerList.push(item)
innerli += '<li>' + item.name + '</li>'
}
if (item.type == '2') {
innerList.push(item)
innerlis += '<li>' + item.name + '</li>'
}
})
parseInterfaceList = innerList
var left = 0
var top = 100
var Position = GMgetValue('Position_' + host)
if (!!Position) {
left = Position.left
top = Position.top
}
css(
`#zuihuitao {cursor:pointer; position:fixed; top:` +
top +
`px; left:` +
left +
`px; width:0px; z-index:2147483647; font-size:12px; text-align:left;}
#zuihuitao .logo { position: absolute;right: 0; width: 1.5em;padding: 5px 2px;text-align: center;color: #fff;cursor: auto;user-select: none;border-radius: 0 4px 4px 0;transform: translate3d(100%, 5%, 0);background: #fc4273;}
#zuihuitao .die {display:none; position:absolute; left:23px; top:0; text-align:center;background-color:#04B4AE; border:1px solid gray;}
#zuihuitao .die li{font-size:12px; color:#fff; text-align:center; width:60px; line-height:21px; float:left; border:1px solid gray;border-radius: 6px 6px 6px 6px; padding:0 4px; margin:4px 2px;}
#zuihuitao .die li:hover{color:#fff;background:#FE2E64;}
.add{background-color:#FE2E64;`,
)
$(function () {
$('ul').on('click', 'li', function () {
$('ul li').removeClass('add')
$(this).addClass('add')
})
})
var html = $(
`<div id='zuihuitao'>
<div class='item_text'>
<div class="logo"><a id="m">解析</a></div>
<div class='die' >
<div style='display:flex;'>
<div style='width:168px; padding:0px 0;'>
<br>
<div style='font-size:16px; text-align:center; color:#fff; line-height:21px;'>B站专线解析</div>
<ul style='margin:0 10px;'>
` +
innerli +
`
<div style='clear:both;'></div>
</ul>
<br>
<div style='font-size:16px; text-align:center; color:#fff; line-height:21px;'>全网解析</div>
<ul style='margin:0 10px;'>
` +
innerlis +
`
<div style='clear:both;'></div>
</ul>
<br>
</div>`,
)
$('body').append(html)
$('.item_text').on('mouseover', () => {
$('.die').show()
})
$('.item_text').on('mouseout', () => {
$('.die').hide()
})
$('.die li').each((index, item) => {
item.addEventListener('click', () => {
if ((parseInterfaceList[index].type == '1', '2')) {
if (document.getElementById('iframe-player') == null) {
var player = $(node)
player.empty()
player.append(videoPlayer)
}
innerParse(parseInterfaceList[index].url + location.href)
} else {
GMopenInTab(parseInterfaceList[index].url + location.href, false)
}
})
})
switch (host) {
case 'www.iqiyi.com':
//--------------------------------------------------------------------------------
unsafeWindow.rate = 0
unsafeWindow.Date.now = () => {
return new unsafeWindow.Date().getTime() + (unsafeWindow.rate += 1000)
}
setInterval(() => {
unsafeWindow.rate = 0
}, 600000)
//--------------------------------------------------------------------------------
setInterval(() => {
$('div[style*="top: 74px"]').attr('id', 'absolute')
$('#absolute').css('zIndex', 0)
}, 500)
break
case 'www.wxtv.net':
$('#zuihuitao').remove()
$('.searchlist_item').find('a').attr('id', 'bbb')
$('#topnav').remove()
$('#mygod2m').remove()
$('#mygod2pc').remove()
$('.bgi_box').remove()
$('.content_btn').remove()
$('.hidden_xs').remove()
$('#bofy').remove()
$('.fo_t').remove()
$('.list_scroll').remove()
$('.title').remove()
setInterval(() => {
$('#bbb')[0].click()
}, 500)
break
default:
break
}
})()