[timerd][网络电视] 腾讯、爱奇艺、芒果、优酷、乐视、B站、土豆、搜狐、1905等 VIP视频免费看(2021.03.24)更新

腾讯、爱奇艺、芒果、优酷、乐视、B站、土豆、搜狐、1905等各大视频网站视频解析服务(有谷歌ads)

  1. // ==UserScript==
  2. // @name [timerd][网络电视] 腾讯、爱奇艺、芒果、优酷、乐视、B站、土豆、搜狐、1905等 VIP视频免费看(2021.03.24)更新
  3. // @name:en [timerd][The Eight Hundred] VIP Video tencent, iqiyi, mgtv, youku, Blibili, sohu, tudou (2021.03.24)
  4. // @namespace http://timerd.ml
  5. // @version 2021.03.24
  6. // @description 腾讯、爱奇艺、芒果、优酷、乐视、B站、土豆、搜狐、1905等各大视频网站视频解析服务(有谷歌ads)
  7. // @description:en tencent, iqiyi, mgtv, youku, letv, Bilibili, sohu, tudou, 1905(Containing google ads)
  8. // @author timerd
  9. // @include *://v.youku.com/v_*
  10. // @include *://m.youku.com/v*
  11. // @include *://m.youku.com/a*
  12. // @include *://*.iqiyi.com/v_*
  13. // @include *://*.iqiyi.com/w_*
  14. // @include *://*.iqiyi.com/a_*
  15. // @include *://*.iqiyi.com/dianying/*
  16. // @include *://*.le.com/ptv/vplay/*
  17. // @include *://*v.qq.com/x/cover/*
  18. // @include *://*v.qq.com/x/page/*
  19. // @include *://*v.qq.com/play*
  20. // @include *://*v.qq.com/cover*
  21. // @include *://*.tudou.com/listplay/*
  22. // @include *://*.tudou.com/albumplay/*
  23. // @include *://*.tudou.com/programs/view/*
  24. // @include *://*.tudou.com/v*
  25. // @include *://*.mgtv.com/b/*
  26. // @include *://film.sohu.com/album/*
  27. // @include *://tv.sohu.com/*
  28. // @include *://*.bilibili.com/video/*
  29. // @include *://*.bilibili.com/anime/*
  30. // @include *://*.bilibili.com/bangumi/play/*
  31. // @include *://*.pptv.com/show/*
  32. // @include *://*.wasu.cn/Play/show*
  33. // @include *://*.1905.com/play/*
  34. // @include *://chinese-elements.com/*
  35. // @require http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js
  36. // @grant GM_openInTab
  37. // @grant GM_setValue
  38. // @grant GM_getValue
  39. // @grant GM_xmlhttpRequest
  40. // @grant GM_addStyle
  41. // @grant unsafeWindow
  42. // @grant GM_getResourceURL
  43. // @grant GM_getResourceText
  44. // @license MIT2.0
  45. // ==/UserScript==
  46. (function() {
  47.  
  48. 'use strict'
  49. // Define region
  50. //-------------------------------------------------------------
  51. function addInfrastructure() {
  52. let style = document.createElement("style");
  53.  
  54. style.appendChild(document.createTextNode(`
  55. #mywidget {
  56. position: relative;
  57. animation: mywidget_ani 2s 1;
  58. border-radius: 8px;
  59. background: transparent;
  60. }
  61.  
  62. #mywidget a {
  63. position: absolute;
  64. left: -75px;
  65. transition: 0.3s;
  66. padding: 15px 30px 15px 15px;
  67. text-decoration: none;
  68. color: white !important;
  69. border-radius: 8px;
  70. font: 20px "Microsoft YaHei", SimHei, helvetica, arial, verdana, tahoma, sans-serif;
  71. min-width: 80px;
  72. text-align: right;
  73. white-space: nowrap;
  74. }
  75.  
  76.  
  77. #mywidget a:hover {
  78. left: -8px;
  79. }
  80.  
  81. #vparse {
  82. background-color: #f44336;
  83. }
  84.  
  85. #myplaybutton {
  86. position: absolute;
  87. right: -8px;
  88. top: 14px;
  89. width: 0px;
  90. height: 0px;
  91. margin: 0px;
  92. border-width: 16px;
  93. border-style: solid;
  94. border-color: transparent transparent transparent white;
  95. }
  96.  
  97.  
  98. @keyframes mywidget_ani {
  99. 0% {
  100. transform: rotate(0deg);
  101. left: 20px;
  102. }
  103.  
  104. 50% {
  105. transform: rotate(8deg);
  106. left: 500px;
  107. }
  108.  
  109. 100% {
  110. transform: rotate(-360deg);
  111. left: 0px;
  112. }
  113. }`));
  114.  
  115. document.head.appendChild(style);
  116. }
  117.  
  118. function tricks() {
  119. window.addEventListener('message', function(event) {
  120. if (~event.origin.indexOf('chinese-elements.com')) {
  121. var intervalId = window.setInterval(function() {
  122. $("#aside-nav").hide();
  123. window.clearInterval(intervalId)
  124. }, 1000 * 2);
  125. } else {
  126. return;
  127. }
  128. });
  129. const im = /chinese-elements.com/i;
  130. if (im.test(self.location.href)) {
  131. var intervalId = window.setInterval(function() {
  132. $("#aside-nav").hide();
  133. window.clearInterval(intervalId);
  134. try {
  135. var frame = document.getElementById("player");
  136. if (frame && frame.hasOwnProperty('contentWindow')) {
  137. var iframeWindow = frame.contentWindow;
  138. iframeWindow.postMessage("tricks", "*");
  139. }
  140.  
  141. } catch (e) {
  142. console.log(e);
  143. }
  144. }, 1000 * 2);
  145. }
  146. }
  147.  
  148. //-------------------------------------------------------------
  149. let playurl = window.location.href;
  150. let rArray = playurl.split('?');
  151. let cWeb = rArray[0];
  152. const vSite = /m1907.cn/i;
  153. //-------------------------------------------------------------
  154.  
  155. // Little tricks
  156. tricks();
  157. if (vSite.test(cWeb)) {
  158. window["alert"] = function(e) {};
  159. return;
  160. }
  161. //------------------------------------------------------------
  162.  
  163. //add a button to current website.
  164. const vWebsites = new Array();
  165. vWebsites[0] = /youku.com/i;
  166. vWebsites[1] = /iqiyi.com/i;
  167. vWebsites[2] = /le.com/i;
  168. vWebsites[3] = /qq.com/i;
  169. vWebsites[4] = /tudou.com/i;
  170. vWebsites[5] = /mgtv.com/i;
  171. vWebsites[6] = /sohu.com/i;
  172. vWebsites[7] = /1905.com/i;
  173. vWebsites[8] = /bilibili.com/i;
  174. vWebsites[9] = /pptv.com/i;
  175. vWebsites[10] = /yinyuetai.com/i;
  176. vWebsites[11] = /wasu.cn/i;
  177. vWebsites.every((item) => {
  178. if (item.test(cWeb)) {
  179. addInfrastructure();
  180. var jumpButton = $(`
  181. <div id="mywidget" href='javascript:void(0)' target='_blank' style="z-index:9999; position:fixed;left:0px;top:280px;">
  182. <a href="#" id="vparse">❀视频解析<div id="myplaybutton"></div></a>
  183. </div>
  184. `);
  185.  
  186. $("body").append(jumpButton);
  187.  
  188. // bind onclick event
  189. $("#mywidget").click(function() {
  190. var openUrl = window.location.href;
  191. window.open('https://timerd.me/static/tv.html?zwx=' + openUrl);
  192. });
  193. return false;
  194. }
  195. return true;
  196. });
  197.  
  198. })();