aboutsummaryrefslogtreecommitdiff
path: root/viewtube.js
diff options
context:
space:
mode:
Diffstat (limited to 'viewtube.js')
-rw-r--r--viewtube.js98
1 files changed, 41 insertions, 57 deletions
diff --git a/viewtube.js b/viewtube.js
index 681fabd..c18a548 100644
--- a/viewtube.js
+++ b/viewtube.js
@@ -103,6 +103,11 @@
}
function playDASHwithHTML5() {
+ function playAudio (play) {
+ if (play) player["contentAudio"].play();
+ else player["contentAudio"].pause();
+ }
+
if (player['videoPlay'].indexOf('MP4') != -1) {
player["contentVideo"] = createVideoElement({src: player["videoList"][player["videoPlay"].replace(/MP4/, "Video MP4")]});
if (player['videoList']['High Bitrate Audio Opus'])
@@ -120,23 +125,17 @@
else player["contentAudio"] = createVideoElement({src: player["videoList"]["Medium Bitrate Audio WebM"]});
}
player['contentAudio'].pause();
- player['contentVideo'].addEventListener('play', function() {
- player['contentAudio'].play();
- }, false);
- player['contentVideo'].addEventListener('pause', function() {
- player['contentAudio'].pause();
- }, false);
+ player['contentVideo'].addEventListener('play', playAudio.bind(null, true), false);
+ player['contentVideo'].addEventListener('pause', playAudio.bind(null, false), false);
player['contentVideo'].addEventListener('ended', function() {
player['contentVideo'].pause();
player['contentAudio'].pause();
}, false);
player['contentVideo'].addEventListener('timeupdate', function() {
- if (player['contentAudio'].paused && !player['contentVideo'].paused) {
+ if (player['contentAudio'].paused && !player['contentVideo'].paused)
player['contentAudio'].play();
- }
- if (Math.abs(player['contentVideo'].currentTime - player['contentAudio'].currentTime) >= 0.30) {
+ if (Math.abs(player['contentVideo'].currentTime - player['contentAudio'].currentTime) >= 0.30)
player['contentAudio'].currentTime = player['contentVideo'].currentTime;
- }
}, false);
player["contentAudio"].classList.add("hide");
player['contentVideo'].appendChild(player['contentAudio']);
@@ -223,9 +222,7 @@
if (ytVideoUnavailable.className.indexOf('hid') == -1) {
var ytAgeGateContent = document.querySelector("#watch7-player-age-gate-content");
if (!ytAgeGateContent) return;
- else {
- if(ytAgeGateContent.indexOf('feature=private_video') != -1) return;
- }
+ else if (ytAgeGateContent.indexOf('feature=private_video') != -1) return;
}
}
@@ -261,47 +258,39 @@
if (!ytPlayerWindow) console.log("Couldn't get the player element.");
else {
/* Get Video Thumbnail */
- var ytVideoThumb = getMyContent(page.url, 'link\\s+itemprop="thumbnailUrl"\\s+href="(.*?)"', false);
- if (!ytVideoThumb) ytVideoThumb = getMyContent(page.url, 'meta\\s+property="og:image"\\s+content="(.*?)"', false);
- if (!ytVideoThumb) {
- var ytVideoID = page.url.match(/(\?|&)v=(.*?)(&|$)/);
- if (ytVideoID) ytVideoThumb = 'https://img.youtube.com/vi/' + ytVideoID[2] + '/0.jpg';
- }
+ var ytVideoThumb = getMyContent(page.url, 'link\\s+itemprop="thumbnailUrl"\\s+href="(.*?)"', false)
+ || getMyContent(page.url, 'meta\\s+property="og:image"\\s+content="(.*?)"', false)
+ || ('https://img.youtube.com/vi/' + page.url.match(/(\?|&)v=(.*?)(&|$)/)[2] + '/0.jpg');
/* Get Videos Content */
var ytVideosEncodedFmts, ytVideosAdaptiveFmts, ytVideosContent, ytHLSVideos, ytHLSContent;
- ytVideosEncodedFmts = getMyContent(page.url, '"url_encoded_fmt_stream_map":\\s*"(.*?)"', false);
- if (!ytVideosEncodedFmts) ytVideosEncodedFmts = getMyContent(page.url, '\\\\"url_encoded_fmt_stream_map\\\\":\\s*\\\\"(.*?)\\\\"', false);
- ytVideosAdaptiveFmts = getMyContent(page.url, '"adaptive_fmts":\\s*"(.*?)"', false);
- if (!ytVideosAdaptiveFmts) ytVideosAdaptiveFmts = getMyContent(page.url, '\\\\"adaptive_fmts\\\\":\\s*\\\\"(.*?)\\\\"', false);
- if (ytVideosEncodedFmts) {
- ytVideosContent = ytVideosEncodedFmts;
- }
+ ytVideosEncodedFmts = getMyContent(page.url, '"url_encoded_fmt_stream_map":\\s*"(.*?)"', false)
+ || getMyContent(page.url, '\\\\"url_encoded_fmt_stream_map\\\\":\\s*\\\\"(.*?)\\\\"', false);
+ ytVideosAdaptiveFmts = getMyContent(page.url, '"adaptive_fmts":\\s*"(.*?)"', false)
+ || getMyContent(page.url, '\\\\"adaptive_fmts\\\\":\\s*\\\\"(.*?)\\\\"', false);
+ if (ytVideosEncodedFmts) ytVideosContent = ytVideosEncodedFmts;
else {
- ytHLSVideos = getMyContent(page.url, '"hlsvp":\\s*"(.*?)"', false);
- if (!ytHLSVideos) ytHLSVideos = getMyContent(page.url, '\\\\"hlsvp\\\\":\\s*\\\\"(.*?)\\\\"', false);
+ ytHLSVideos = getMyContent(page.url, '"hlsvp":\\s*"(.*?)"', false)
+ || getMyContent(page.url, '\\\\"hlsvp\\\\":\\s*\\\\"(.*?)\\\\"', false);
if (ytHLSVideos) {
ytHLSVideos = cleanMyContent(ytHLSVideos, false);
- if (ytHLSVideos.indexOf('keepalive/yes/') != -1) ytHLSVideos = ytHLSVideos.replace('keepalive/yes/', '');
+ if (ytHLSVideos.indexOf('keepalive/yes/') != -1)
+ ytHLSVideos = ytHLSVideos.replace('keepalive/yes/', '');
}
else {
- var ytVideoID = page.url.match(/(\?|&)v=(.*?)(&|$)/);
- ytVideoID = (ytVideoID) ? ytVideoID[2] : null;
+ var ytVideoID = page.url.match(/(\?|&)v=(.*?)(&|$)/)[2];
if (ytVideoID) {
var ytVideoSts = getMyContent(page.url.replace(/watch.*?v=/, 'embed/').replace(/&.*$/, ''), '"sts"\\s*:\\s*(\\d+)', false);
var ytVideosInfoURL = page.win.location.protocol + '//' + page.win.location.hostname + '/get_video_info?video_id=' + ytVideoID + '&eurl=https://youtube.googleapis.com/v/' + ytVideoID + '&sts=' + ytVideoSts;
var ytVideosInfo = getMyContent(ytVideosInfoURL, 'TEXT', false);
if (ytVideosInfo) {
- ytVideosEncodedFmts = ytVideosInfo.match(/url_encoded_fmt_stream_map=(.*?)&/);
- ytVideosEncodedFmts = (ytVideosEncodedFmts) ? ytVideosEncodedFmts[1] : null;
- if (ytVideosEncodedFmts) {
- ytVideosEncodedFmts = cleanMyContent(ytVideosEncodedFmts, true);
- ytVideosContent = ytVideosEncodedFmts;
- }
+ ytVideosEncodedFmts = ytVideosInfo.match(/url_encoded_fmt_stream_map=(.*?)&/)[1];
+ if (ytVideosEncodedFmts)
+ ytVideosContent = cleanMyContent(ytVideosEncodedFmts, true);
if (!ytVideosAdaptiveFmts) {
- ytVideosAdaptiveFmts = ytVideosInfo.match(/adaptive_fmts=(.*?)&/);
- ytVideosAdaptiveFmts = (ytVideosAdaptiveFmts) ? ytVideosAdaptiveFmts[1] : null;
- if (ytVideosAdaptiveFmts) ytVideosAdaptiveFmts = cleanMyContent(ytVideosAdaptiveFmts, true);
+ ytVideosAdaptiveFmts = ytVideosInfo.match(/adaptive_fmts=(.*?)&/)[1];
+ if (ytVideosAdaptiveFmts)
+ ytVideosAdaptiveFmts = cleanMyContent(ytVideosAdaptiveFmts, true);
}
}
}
@@ -396,17 +385,17 @@
var ytVideoFound = false;
var ytVideos = ytVideosContent.split(',');
var ytVideoParse, ytVideoCodeParse, ytVideoCode, myVideoCode, ytVideo;
- for (var i = 0; i < ytVideos.length; i++) {
- if (!ytVideos[i].match(/^url/)) {
- ytVideoParse = ytVideos[i].match(/(.*)(url=.*$)/);
- if (ytVideoParse) ytVideos[i] = ytVideoParse[2] + '&' + ytVideoParse[1];
+ for (var ytVideo of ytVideos) {
+ if (!ytVideo.match(/^url/)) {
+ ytVideoParse = ytVideo.match(/(.*)(url=.*$)/);
+ if (ytVideoParse) ytVideo = ytVideoParse[2] + '&' + ytVideoParse[1];
}
- ytVideoCodeParse = ytVideos[i].match(/itag=(\d{1,3})/);
+ ytVideoCodeParse = ytVideo.match(/itag=(\d{1,3})/);
ytVideoCode = (ytVideoCodeParse) ? ytVideoCodeParse[1] : null;
if (ytVideoCode) {
myVideoCode = ytVideoFormats[ytVideoCode];
if (myVideoCode) {
- ytVideo = cleanMyContent(ytVideos[i], true);
+ ytVideo = cleanMyContent(ytVideo, true);
ytVideo = ytVideo.replace(/url=/, '').replace(/&$/, '');
if (ytVideo.match(/itag=/) && ytVideo.match(/itag=/g).length > 1) {
if (ytVideo.match(/itag=\d{1,3}&/)) ytVideo = ytVideo.replace(/itag=\d{1,3}&/, '');
@@ -438,7 +427,7 @@
ytVideo = cleanMyContent(ytVideo, true);
if (ytVideo.indexOf('ratebypass') == -1) ytVideo += '&ratebypass=yes';
if (ytVideo && ytVideo.indexOf('http') == 0) {
- if (!ytVideoFound) ytVideoFound = true;
+ ytVideoFound = true;
ytVideoList[myVideoCode] = ytVideo;
}
}
@@ -483,8 +472,7 @@
var ytHLSMatcher = new RegExp('(http.*?m3u8)', 'g');
ytHLSVideos = ytHLSContent.match(ytHLSMatcher);
if (ytHLSVideos) {
- for (var i = 0; i < ytHLSVideos.length; i++) {
- ytHLSVideo = ytHLSVideos[i];
+ for (var ytHLSVideo in ytHLSVideos) {
ytVideoCodeParse = ytHLSVideo.match(/\/itag\/(\d{1,3})\//);
ytVideoCode = (ytVideoCodeParse) ? ytVideoCodeParse[1] : null;
if (ytVideoCode) {
@@ -508,8 +496,8 @@
var ytVideoList = {};
if (ytVideosContent) {
if (ytVideosContent.match(/&s=/) || ytVideosContent.match(/,s=/) || ytVideosContent.match(/u0026s=/)) {
- var ytScriptURL = getMyContent(page.url, '"js":\\s*"(.*?)"', true);
- if (!ytScriptURL) ytScriptURL = getMyContent(page.url.replace(/watch.*?v=/, 'embed/').replace(/&.*$/, ''), '"js":\\s*"(.*?)"', true);
+ var ytScriptURL = getMyContent(page.url, '"js":\\s*"(.*?)"', true)
+ || getMyContent(page.url.replace(/watch.*?v=/, 'embed/').replace(/&.*$/, ''), '"js":\\s*"(.*?)"', true);
if (ytScriptURL) {
ytScriptURL = page.win.location.protocol + ytScriptURL;
try {
@@ -529,9 +517,7 @@
}
else console.log("Couldn't get the signature content.");
};
- oReq.onerror = function() {
- console.log("Couldn't make the request. Make sure your browser user scripts extension supports cross-domain requests.");
- };
+ oReq.onerror = console.log.bind(null, "Couldn't make the request. Make sure your browser user scripts extension supports cross-domain requests.");
oReq.send();
}
catch(e) {
@@ -541,9 +527,7 @@
}
else console.log("Couldn't get the signature link.");
}
- else {
- ytVideos();
- }
+ else ytVideos();
}
else {
if (ytHLSVideos) {