Reload player instead of terminating when backup stream fails

This commit is contained in:
pixeltris 2021-06-12 20:10:09 +01:00
parent 4ef55e67a2
commit bac0e8da54
5 changed files with 73 additions and 48 deletions

View File

@ -1,7 +1,7 @@
// ==UserScript== // ==UserScript==
// @name TwitchAdSolutions // @name TwitchAdSolutions
// @namespace https://github.com/pixeltris/TwitchAdSolutions // @namespace https://github.com/pixeltris/TwitchAdSolutions
// @version 1.6 // @version 1.7
// @description Multiple solutions for blocking Twitch ads // @description Multiple solutions for blocking Twitch ads
// @author pixeltris // @author pixeltris
// @match *://*.twitch.tv/* // @match *://*.twitch.tv/*
@ -249,15 +249,17 @@
console.log('Backup url request (accessToken) failed with ' + accessTokenResponse.status); console.log('Backup url request (accessToken) failed with ' + accessTokenResponse.status);
} }
} }
var backupM3u8 = null; if (streamInfo.BackupUrl != null) {
var backupM3u8Response = await realFetch(streamInfo.BackupUrl); var backupM3u8 = null;
if (backupM3u8Response.status == 200) { var backupM3u8Response = await realFetch(streamInfo.BackupUrl);
backupM3u8 = await backupM3u8Response.text(); if (backupM3u8Response.status == 200) {
} backupM3u8 = await backupM3u8Response.text();
if (backupM3u8 != null && !backupM3u8.includes(AD_SIGNIFIER)) { }
return backupM3u8; if (backupM3u8 != null && !backupM3u8.includes(AD_SIGNIFIER)) {
} else { return backupM3u8;
console.log('Backup m3u8 failed with ' + backupM3u8Response.status); } else {
console.log('Backup m3u8 failed with ' + backupM3u8Response.status);
}
} }
} catch (err) { } catch (err) {
console.log('Fetching backup m3u8 failed'); console.log('Fetching backup m3u8 failed');
@ -265,6 +267,9 @@
} }
// Backups failed. Return nothing (this will likely result in spam or player error 2000?). // Backups failed. Return nothing (this will likely result in spam or player error 2000?).
console.log('Ad blocking failed. Stream might break.'); console.log('Ad blocking failed. Stream might break.');
postMessage({key:'UboReloadPlayer'});
streamInfo.BackupFailed = false;
streamInfo.BackupUrl = null;
return ''; return '';
} }
if (streamInfo.HadAds) { if (streamInfo.HadAds) {

View File

@ -240,15 +240,17 @@ twitch-videoad.js application/javascript
console.log('Backup url request (accessToken) failed with ' + accessTokenResponse.status); console.log('Backup url request (accessToken) failed with ' + accessTokenResponse.status);
} }
} }
var backupM3u8 = null; if (streamInfo.BackupUrl != null) {
var backupM3u8Response = await realFetch(streamInfo.BackupUrl); var backupM3u8 = null;
if (backupM3u8Response.status == 200) { var backupM3u8Response = await realFetch(streamInfo.BackupUrl);
backupM3u8 = await backupM3u8Response.text(); if (backupM3u8Response.status == 200) {
} backupM3u8 = await backupM3u8Response.text();
if (backupM3u8 != null && !backupM3u8.includes(AD_SIGNIFIER)) { }
return backupM3u8; if (backupM3u8 != null && !backupM3u8.includes(AD_SIGNIFIER)) {
} else { return backupM3u8;
console.log('Backup m3u8 failed with ' + backupM3u8Response.status); } else {
console.log('Backup m3u8 failed with ' + backupM3u8Response.status);
}
} }
} catch (err) { } catch (err) {
console.log('Fetching backup m3u8 failed'); console.log('Fetching backup m3u8 failed');
@ -256,6 +258,9 @@ twitch-videoad.js application/javascript
} }
// Backups failed. Return nothing (this will likely result in spam or player error 2000?). // Backups failed. Return nothing (this will likely result in spam or player error 2000?).
console.log('Ad blocking failed. Stream might break.'); console.log('Ad blocking failed. Stream might break.');
postMessage({key:'UboReloadPlayer'});
streamInfo.BackupFailed = false;
streamInfo.BackupUrl = null;
return ''; return '';
} }
if (streamInfo.HadAds) { if (streamInfo.HadAds) {

View File

@ -1,7 +1,7 @@
// ==UserScript== // ==UserScript==
// @name TwitchAdSolutions (notify-reload) // @name TwitchAdSolutions (notify-reload)
// @namespace https://github.com/pixeltris/TwitchAdSolutions // @namespace https://github.com/pixeltris/TwitchAdSolutions
// @version 1.6 // @version 1.7
// @updateURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/notify-reload/notify-reload.user.js // @updateURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/notify-reload/notify-reload.user.js
// @downloadURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/notify-reload/notify-reload.user.js // @downloadURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/notify-reload/notify-reload.user.js
// @description Multiple solutions for blocking Twitch ads (notify-reload) // @description Multiple solutions for blocking Twitch ads (notify-reload)
@ -251,15 +251,17 @@
console.log('Backup url request (accessToken) failed with ' + accessTokenResponse.status); console.log('Backup url request (accessToken) failed with ' + accessTokenResponse.status);
} }
} }
var backupM3u8 = null; if (streamInfo.BackupUrl != null) {
var backupM3u8Response = await realFetch(streamInfo.BackupUrl); var backupM3u8 = null;
if (backupM3u8Response.status == 200) { var backupM3u8Response = await realFetch(streamInfo.BackupUrl);
backupM3u8 = await backupM3u8Response.text(); if (backupM3u8Response.status == 200) {
} backupM3u8 = await backupM3u8Response.text();
if (backupM3u8 != null && !backupM3u8.includes(AD_SIGNIFIER)) { }
return backupM3u8; if (backupM3u8 != null && !backupM3u8.includes(AD_SIGNIFIER)) {
} else { return backupM3u8;
console.log('Backup m3u8 failed with ' + backupM3u8Response.status); } else {
console.log('Backup m3u8 failed with ' + backupM3u8Response.status);
}
} }
} catch (err) { } catch (err) {
console.log('Fetching backup m3u8 failed'); console.log('Fetching backup m3u8 failed');
@ -267,6 +269,9 @@
} }
// Backups failed. Return nothing (this will likely result in spam or player error 2000?). // Backups failed. Return nothing (this will likely result in spam or player error 2000?).
console.log('Ad blocking failed. Stream might break.'); console.log('Ad blocking failed. Stream might break.');
postMessage({key:'UboReloadPlayer'});
streamInfo.BackupFailed = false;
streamInfo.BackupUrl = null;
return ''; return '';
} }
if (streamInfo.HadAds) { if (streamInfo.HadAds) {

View File

@ -240,15 +240,17 @@ twitch-videoad.js application/javascript
console.log('Backup url request (accessToken) failed with ' + accessTokenResponse.status); console.log('Backup url request (accessToken) failed with ' + accessTokenResponse.status);
} }
} }
var backupM3u8 = null; if (streamInfo.BackupUrl != null) {
var backupM3u8Response = await realFetch(streamInfo.BackupUrl); var backupM3u8 = null;
if (backupM3u8Response.status == 200) { var backupM3u8Response = await realFetch(streamInfo.BackupUrl);
backupM3u8 = await backupM3u8Response.text(); if (backupM3u8Response.status == 200) {
} backupM3u8 = await backupM3u8Response.text();
if (backupM3u8 != null && !backupM3u8.includes(AD_SIGNIFIER)) { }
return backupM3u8; if (backupM3u8 != null && !backupM3u8.includes(AD_SIGNIFIER)) {
} else { return backupM3u8;
console.log('Backup m3u8 failed with ' + backupM3u8Response.status); } else {
console.log('Backup m3u8 failed with ' + backupM3u8Response.status);
}
} }
} catch (err) { } catch (err) {
console.log('Fetching backup m3u8 failed'); console.log('Fetching backup m3u8 failed');
@ -256,6 +258,9 @@ twitch-videoad.js application/javascript
} }
// Backups failed. Return nothing (this will likely result in spam or player error 2000?). // Backups failed. Return nothing (this will likely result in spam or player error 2000?).
console.log('Ad blocking failed. Stream might break.'); console.log('Ad blocking failed. Stream might break.');
postMessage({key:'UboReloadPlayer'});
streamInfo.BackupFailed = false;
streamInfo.BackupUrl = null;
return ''; return '';
} }
if (streamInfo.HadAds) { if (streamInfo.HadAds) {

View File

@ -1,7 +1,7 @@
// ==UserScript== // ==UserScript==
// @name TwitchAdSolutions (notify-strip) // @name TwitchAdSolutions (notify-strip)
// @namespace https://github.com/pixeltris/TwitchAdSolutions // @namespace https://github.com/pixeltris/TwitchAdSolutions
// @version 1.6 // @version 1.7
// @updateURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/notify-strip/notify-strip.user.js // @updateURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/notify-strip/notify-strip.user.js
// @downloadURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/notify-strip/notify-strip.user.js // @downloadURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/notify-strip/notify-strip.user.js
// @description Multiple solutions for blocking Twitch ads (notify-strip) // @description Multiple solutions for blocking Twitch ads (notify-strip)
@ -251,15 +251,17 @@
console.log('Backup url request (accessToken) failed with ' + accessTokenResponse.status); console.log('Backup url request (accessToken) failed with ' + accessTokenResponse.status);
} }
} }
var backupM3u8 = null; if (streamInfo.BackupUrl != null) {
var backupM3u8Response = await realFetch(streamInfo.BackupUrl); var backupM3u8 = null;
if (backupM3u8Response.status == 200) { var backupM3u8Response = await realFetch(streamInfo.BackupUrl);
backupM3u8 = await backupM3u8Response.text(); if (backupM3u8Response.status == 200) {
} backupM3u8 = await backupM3u8Response.text();
if (backupM3u8 != null && !backupM3u8.includes(AD_SIGNIFIER)) { }
return backupM3u8; if (backupM3u8 != null && !backupM3u8.includes(AD_SIGNIFIER)) {
} else { return backupM3u8;
console.log('Backup m3u8 failed with ' + backupM3u8Response.status); } else {
console.log('Backup m3u8 failed with ' + backupM3u8Response.status);
}
} }
} catch (err) { } catch (err) {
console.log('Fetching backup m3u8 failed'); console.log('Fetching backup m3u8 failed');
@ -267,6 +269,9 @@
} }
// Backups failed. Return nothing (this will likely result in spam or player error 2000?). // Backups failed. Return nothing (this will likely result in spam or player error 2000?).
console.log('Ad blocking failed. Stream might break.'); console.log('Ad blocking failed. Stream might break.');
postMessage({key:'UboReloadPlayer'});
streamInfo.BackupFailed = false;
streamInfo.BackupUrl = null;
return ''; return '';
} }
if (streamInfo.HadAds) { if (streamInfo.HadAds) {