From 2d94f2abe147cfb3598eacad09abe94816e39370 Mon Sep 17 00:00:00 2001 From: Ashley Date: Wed, 13 Sep 2023 20:06:04 +0000 Subject: [PATCH] add video proxys :3 --- src/libpoketube/libpoketube-video.js | 112 +++++++++++++-------------- 1 file changed, 55 insertions(+), 57 deletions(-) diff --git a/src/libpoketube/libpoketube-video.js b/src/libpoketube/libpoketube-video.js index a683f1b3..c8c1ed98 100644 --- a/src/libpoketube/libpoketube-video.js +++ b/src/libpoketube/libpoketube-video.js @@ -1,15 +1,15 @@ /* - PokeTube is a Free/Libre youtube front-end ! - - Copyright (C) 2021-2023 POKETUBE - - This file is Licensed under LGPL-3.0-or-later. Poketube itself is GPL, Only this file is LGPL. - - see a copy here:https://www.gnu.org/licenses/lgpl-3.0.txt - - please dont remove this comment while sharing this code - + PokeTube is a Free/Libre YouTube front-end ! + + Copyright (C) 2021-2023 POKETUBE + + This file is Licensed under LGPL-3.0-or-later. PokeTube itself is GPL, Only this file is LGPL. + + See a copy here: https://www.gnu.org/licenses/lgpl-3.0.txt + + Please don't remove this comment while sharing this code + */ const { @@ -33,53 +33,51 @@ const { getRandomArbitrary, } = require("./ptutils/libpt-coreutils.js"); +// Function to convert an array to an object, ignoring undefined values +function toObject(arr) { + return arr.reduce((acc, cur, i) => { + if (cur !== undefined) { + acc[i] = cur; + } + return acc; + }, {}); +} + +// Gets Invidious instances +const invInstanceList = [ + { uri: "https://invidious.projectsegfau.lt" }, + { uri: "https://iv.ggtyler.dev" }, + { uri: "https://invidious.protokolla.fi" }, + { uri: "https://inv.zzls.xyz" }, + { uri: "https://invidious.fdn.fr" }, + { uri: "https://anontube.lvkaszus.pl" }, + { uri: "https://iv.datura.network" }, + { uri: "https://yt.drgnz.club" }, + { uri: "https://invidious.private.coffee" }, + { uri: "https://inv.tux.pizza" }, + { uri: "https://invidious.lunar.icu" }, + { uri: "https://yt.artemislena.eu" }, +]; + +// Gets a random instance from the list +const instance = invInstanceList[Math.floor(Math.random() * invInstanceList.length)]; + +let url; +if (instance.uri.startsWith("https://")) { + url = instance.uri; +} else { + url = "https://tube.kuylar.dev"; +} + +const isInvidiousURL = url === "https://tube.kuylar.dev" ? false : true; + +const videoProxyObject = { + isInvidiousURL, + cacheBuster: "d0550b6e28c8f93533a569c314d5b4e2", + InvidiousPoketube: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8", + url: url, // set for now: see https://github.com/iv-org/invidious/issues/4045 +}; + module.exports = async function (video_id) { - // function to convert an array to an object, ignoring undefined values - function toObject(arr) { - return arr.reduce((acc, cur, i) => { - if (cur !== undefined) { - acc[i] = cur; - } - return acc; - }, {}); - } - - // gets invidious instances - const invInstanceList = require("./invapi.json"); - - // gets random instances from the list - const instance = - invInstanceList[Math.floor(Math.random() * invInstanceList.length)]; - - let url; - if (instance[1].type != "https") { - url = "https://tube.kuylar.dev"; - } else { - //replaces bad proxys (e.g the proxys that do not support media proxys, or the proxys that are down ) - url = instance[1].uri - .replace("invidious.tiekoetter.com", "inv.odyssey346.dev") - .replace("invidious.slipfox.xyz", "y.com.sb") - .replace("yewtu.be", "y.com.sb") - .replace("iv.melmac.space", "inv.vern.cc") - .replace("yt.oelrichsgarcia.de", "y.com.sb") - .replace("yt.funami.tech", "y.com.sb") - .replace("invidious.lidarshield.cloud", "inv.odyssey346.dev") - .replace("vid.priv.au", "inv.vern.cc") - .replace("invidious.privacydev.net", "tube.kuylar.dev") - .replace("watch.thekitty.zone", "y.com.sb") - .replace("invidious.snopyta.org", "inv.odyssey346.dev") - .replace("invidious.weblibre.org", "y.com.sb") - .replace("invidious.sethforprivacy.com", "y.com.sb") - } - - const isInvidiousURL = url === "https://tube.kuylar.dev" ? false : true; - - const videoProxyObject = { - isInvidiousURL, - cacheBuster:"d0550b6e28c8f93533a569c314d5b4e2", - InvidiousPoketube:"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8", - url:"https://vid.theedgeofrage.com" // set for now : see https://github.com/iv-org/invidious/issues/4045 - } - return videoProxyObject; };