mirror of
https://github.com/pixeltris/TwitchAdSolutions.git
synced 2025-04-29 14:14:36 +02:00
27 lines
1.2 KiB
JavaScript
27 lines
1.2 KiB
JavaScript
twitch-videoad.js application/javascript
|
|
(function() {
|
|
if ( /(^|\.)twitch\.tv$/.test(document.location.hostname) === false ) { return; }
|
|
function hookFetch() {
|
|
var OPT_ACCESS_TOKEN_PLAYER_TYPE = 'thunderdome';//480p
|
|
//var OPT_ACCESS_TOKEN_PLAYER_TYPE = 'picture-by-picture';//360p
|
|
var realFetch = window.fetch;
|
|
window.fetch = function(url, init, ...args) {
|
|
if (typeof url === 'string') {
|
|
if (OPT_ACCESS_TOKEN_PLAYER_TYPE) {
|
|
if (url.includes('/access_token')) {
|
|
var modifiedUrl = new URL(url);
|
|
modifiedUrl.searchParams.set('player_type', OPT_ACCESS_TOKEN_PLAYER_TYPE);
|
|
arguments[0] = modifiedUrl.href;
|
|
}
|
|
else if (url.includes('gql') && init && typeof init.body === 'string' && init.body.includes('PlaybackAccessToken')) {
|
|
const newBody = JSON.parse(init.body);
|
|
newBody.variables.playerType = OPT_ACCESS_TOKEN_PLAYER_TYPE;
|
|
init.body = JSON.stringify(newBody);
|
|
}
|
|
}
|
|
}
|
|
return realFetch.apply(this, arguments);
|
|
}
|
|
}
|
|
hookFetch();
|
|
})(); |