NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Better WatchSeries // @description Skips countdowns and ads on WatchSeries and related video sites. // @author andrewjmetzger // @copyright andrewjmetzger // @license MIT // // @namespace https://github.com/andrewjmetzger/ // @updateURL https://openuserjs.org/meta/andrewjmetzger/Better_WatchSeries.meta.js // @version 2.12.0 // // @grant unsafeWindow // @run-at document-end // // ******** LINK AGGREGATORS ******** // @match *://*.watchseries.video/* // // ******** VIDEO HOSTS ********* // @match *://*.powvideo.net/* // @match *://*.vshare.eu/* // ==/UserScript== /************************************************** * SETTINGS START HERE - CHANGE SOME STUFF * * Warning: Leave the semicolons alone, or else * **************************************************/ // WS_DOMAIN : An optional custom WatchSeries domain. Largeely used for testing purposes. // For example, `watchseries.video`. (Case-insensitive). // Must be added in your Tampermonkey script settings as a User match. var WS_DOMAIN = ""; // WS_PATH : In the full URL of a video on WatchSeries, the part after the // domain, and before the video host. Usually just one word. // For example, in `https://seriesfree.to/open/cale/319349c-aabbcc.html`, // WS_PATH is `open/cale`. (Case-sensitive) var WS_PATH = ""; // WS_TARGET : The CSS class for the video host redirect link. Used with document.querySelector() // Usually the "Click here to continue opening the link" button. (Case-sensitive) var WS_TARGET = ""; /************************************************** * END OF SETTINGS - STOP CHANGING STUFF * **************************************************/ console.log("Better WatchSeries has loaded. Hello there."); console.log("Version: " + GM_info.script.version); var url = location.href; console.log("Current URL: " + url); WS_DOMAIN = WS_DOMAIN.toLocaleLowerCase(); var WS_URL = WS_DOMAIN + "/" + WS_PATH; /************************************************** * BUTTON FINDER * **************************************************/ if (url.indexOf("/freecale.html") != -1) { console.log("Site found: freecale-like"); dest = document.querySelector( "body > div.centeres > div.bk-grey-long > div > div > div > div > div > div > div > div > div > div:nth-child(3) > a" ).href; dest = dest.toString(); console.log("dest == " + dest); console.log("Redirecting to : " + dest); location.href = dest; } else if (url.indexOf("/open/link") != -1) { console.log("Site found: open/link -like"); dest = document.querySelector( "#link-button > a" ).href; dest = dest.toString(); console.log("dest == " + dest); console.log("Redirecting to : " + dest); location.href = dest; } else if (url.indexOf(WS_URL) != -1) { console.log("Site found: " + WS_DOMAIN); dest = document.querySelector(WS_TARGET).href; dest = dest.toString(); console.log("dest == " + dest); console.log("Redirecting to : " + dest); location.href = dest; } function checkHosts(hosts) { for (i in hosts) if ( window.location.hostname == hosts[i] || window.location.hostname == "www." + hosts[i] ) { return true; } return false; } function clickButton(button, hosts) { button.disabled = false; button.click(); } function clickButtonByIdOnHosts(buttonId, hosts) { if (checkHosts(hosts)) try { var button = document.getElementById(buttonId); clickButton(button); } catch (err) { console.error(err.message); } } function clickButtonByNameOnHosts(buttonName, hosts) { if (checkHosts(hosts)) try { var button = document.getElementsByName(buttonName)[0]; clickButton(button); } catch (err) { console.error(err.message); } } function clickButtonBySelectorOnHosts(buttonSelector, hosts) { if (checkHosts(hosts)) try { var button = document.querySelector(buttonSelector); clickButton(button); } catch (err) { console.error(err.message); } } try { var hosts = ["powvideo.net"]; clickButtonByIdOnHosts("btn_download", hosts); var hosts = ["vshare.eu"] clickButtonByNameOnHosts("method_free", hosts); } catch (err) { console.log("Error: Better WatchSeries could not click the button."); }