// ==UserScript== // @name Stream to VLC // @namespace http://tampermonkey.net/ // @version 2.2 // @description Opens VLC from streaming sites // @author mattiadr, giuseppe-dandrea // @match http*://openload.co/* // @match http*://openloads.co/* // @match http*://oload.download/* // @match http*://turbovid.me/* // @match http*://www.flashx.to/* // @match http*://www.flashx.tv/* // @match http*://www.flashx.sx/* // @match http*://www.rapidvideo.com/* // @match http*://wstream.video/* // @match www.video.mediaset.it/* // @match http*://speedvideo.net/* // @match http*://*mp4upload.com/embed* // @grant window.close // @grant GM_openInTab // @grant GM_getValue // @grant GM_setValue // @downloadURL none // ==/UserScript== (function() { /* global vars */ /*******************************************************************************************************************************************************************/ let url = null; /* helper functions */ /*******************************************************************************************************************************************************************/ function play_url(url) { if (url !== null) { window.location.href = 'vlcs:' + url; if (GM_getValue("VLC_first_time", true)) { alert("Please always remember choice or you will need to edit source code (see Readme for more info)"); GM_setValue("VLC_first_time", false); } else { new Promise((resolve) => setTimeout(resolve, 1000)).then(() => { //Comment the next line to be able authorize xdg-open window.close(); }); } } } function wait_until_video_click() { new Promise((resolve) => setTimeout(resolve, 1000)).then(() => { if ($('video')[0].src.indexOf('http') != -1) { url = $('video')[0].src; play_url(url); } else { wait_until_video_click(); } }); } function wait_until_mediaset_ready() { new Promise((resolve) => setTimeout(resolve, 1000)).then(() => { if ($('video > source')[0].src.indexOf('http') != -1) { url = $('video > source')[0].src; play_url(url); } else { wait_until_mediaset_ready(); } }); } /* pages functions */ /*******************************************************************************************************************************************************************/ let page = {}; page['openload.co'] = function() { $('#videooverlay').trigger('click'); url = $('#olvideo_html5_api')[0].src; } page['openloads.co'] = page['openload.co']; page['oload.download'] = page['openload.co']; page['turbovid.me'] = function() { $('html').removeClass(" js "); if ($('#video-content').length === 0) { //$('#container > h2').append("

WAIT AND CLICK ON BUTTON

"); $('#container > h2').append("

WAIT, THE BUTTON WILL BE PRESSED AUTOMATICALLY

"); new Promise((resolve) => setTimeout(resolve, 9000)).then(() => { $('#btn_download').trigger('click'); }); } else { //$('#content > h2').append("

CLICK ON VIDEO TO START VLC

"); wait_until_video_click(); } } page['flashx.to'] = function() { if ($('video').size() === 0) { $('#main > center > h2').append("

WAIT, THE BUTTON WILL BE PRESSED AUTOMATICALLY

"); new Promise((resolve) => setTimeout(resolve, 6000)).then(() => { $('#btn_download').trigger('click'); }); } else { new Promise((resolve) => setTimeout(resolve, 2000)).then(() => { url = $('video')[0].src; play_url(url); }); } } page['flashx.tv'] = page['flashx.to']; page['flashx.sx'] = function() { page['flashx.to'](); $('body').append("

CLICK ON VIDEO (until the ads end) TO START VLC.

"); $("#info").append("

Remember to close the tab if the video is in an iframe, because the script cannot close tabs from iframes and probably there is a MINER in the site

"); $('body > center > div > div:nth-child(2) > div.BJPPopAdsOverlay').remove(); wait_until_video_click(); } page['rapidvideo.com'] = function() { url = $('video')[0].src; } page['wstream.video'] = function() { //$('#video-content > table > tbody > tr > td:nth-child(1) > h3').append("

CLICK ON VIDEO TO START VLC

"); wait_until_video_click(); } page['video.mediaset.it'] = function() { new Promise((resolve) => setTimeout(resolve, 3000)).then(() => { wait_until_mediaset_ready(); }); } page['speedvideo.net'] = function() { wait_until_video_click(); } page['mp4upload.com'] = function() { new Promise((resolve) => setTimeout(resolve, 1000)).then(() => { url = $('video')[0].src; play_url(url); }); } /* main */ /*******************************************************************************************************************************************************************/ for (let key in page) { // check if the key is inside page and not inherited from parent if (page.hasOwnProperty(key) && window.location.href.indexOf(key) != -1) { page[key](); play_url(url); break; } } })();