mirror of
https://github.com/bytedream/stream-bypass.git
synced 2025-06-27 18:40:31 +02:00
2 new websites + indicator for redirect reliability
This commit is contained in:
64
src/match.ts
64
src/match.ts
@ -1,3 +1,9 @@
|
||||
enum Reliability {
|
||||
LOW = 1,
|
||||
NORMAL,
|
||||
HIGH
|
||||
}
|
||||
|
||||
interface Match {
|
||||
match(match: RegExpMatchArray): Promise<string>
|
||||
}
|
||||
@ -50,6 +56,26 @@ class TheVideoMe implements Match {
|
||||
}
|
||||
}
|
||||
|
||||
class Upstream implements Match {
|
||||
async match(match: RegExpMatchArray): Promise<string> {
|
||||
return `https://${match[48]}.upstreamcdn.co/hls/,${match.sort((a, b) => {return b.length - a.length})[0]},.urlset/master.m3u8`
|
||||
}
|
||||
}
|
||||
|
||||
class Vidstream implements Match {
|
||||
async match(match: RegExpMatchArray): Promise<string> {
|
||||
const code = window.location.pathname.split('/').slice(-1)[0]
|
||||
const response = await fetch(`https://vidstream.pro/info/${code}?skey=${match[0]}`, {
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
referrer: `https://vidstream.pro/embed/${code}`
|
||||
})
|
||||
const json = await response.json()
|
||||
return json['media']['sources'][0]['file']
|
||||
}
|
||||
}
|
||||
|
||||
class Vivo implements Match {
|
||||
async match(match: RegExpMatchArray): Promise<string> {
|
||||
return this.rot47(decodeURIComponent(match[0]))
|
||||
@ -76,18 +102,30 @@ class Vupload implements Match {
|
||||
}
|
||||
}
|
||||
|
||||
// every match HAS to be on an separate line
|
||||
// all domains to match. the matches must be structured like this:
|
||||
// [domain, regex match (can be null), class to call after match (can be null), reliability]
|
||||
// => the domain which should be redirected
|
||||
// => the regex gets called if the user visits a site with the given domain and matches the websites document body.
|
||||
// if the regex is null, the complete document body gets handled as one big regex match
|
||||
// => the class to call when the regex was parsed successfully. the class has to implement the `Match` interface.
|
||||
// if the class is null, the user gets redirected to the first regex match element
|
||||
// => the reliability shows how reliable a stream redirect is. for example, vivo.sx works nearly every time whereas
|
||||
// upstream.to works only sometimes because of a security mechanism they're using (CORS) which currently can't be bypassed
|
||||
//
|
||||
// every match HAS to be on an separate line (for automatically manifest generation)
|
||||
const matches = [
|
||||
['evoload.io', null, new Evoload()],
|
||||
['mcloud.to', new RegExp(/(?<=')\w+(?=';)/gm), new MCloud()],
|
||||
['mixdrop.co', new RegExp(/(?<=\|)\w{2,}/gm), new Mixdrop()],
|
||||
['streamtape.com', new RegExp(/id=\S*(?=')/gm), new Streamtape()],
|
||||
['streamzz.to', new RegExp(/https?:\/\/get.streamz.tw\/getlink-\w+\.dll/gm), null],
|
||||
['thevideome.com', new RegExp(/(?<=\|)\w{2,}/gm), new TheVideoMe()],
|
||||
['vidlox.me', new RegExp(/(?<=\[")\S+?(?=")/gm), null],
|
||||
['vidoza.net', new RegExp(/(?<=src:(\s*)?")\S*(?=")/gm), null],
|
||||
['vivo.st', new RegExp(/(?<=source:\s')(\S+)(?=')/gm), new Vivo()],
|
||||
['vivo.sx', new RegExp(/(?<=source:\s')(\S+)(?=')/gm), new Vivo()],
|
||||
['voe.sx', new RegExp(/https?:\/\/\S*m3u8(?=")/gm), null],
|
||||
['vupload.com', new RegExp(/(?<=class\|)\w*/gm), new Vupload()]
|
||||
['evoload.io', null, new Evoload(), Reliability.NORMAL],
|
||||
['mcloud.to', new RegExp(/(?<=')\w+(?=';)/gm), new MCloud(), Reliability.NORMAL],
|
||||
['mixdrop.co', new RegExp(/(?<=\|)\w{2,}/gm), new Mixdrop(), Reliability.HIGH],
|
||||
['streamtape.com', new RegExp(/id=\S*(?=')/gm), new Streamtape(), Reliability.NORMAL],
|
||||
['streamzz.to', new RegExp(/https?:\/\/get.streamz.tw\/getlink-\w+\.dll/gm), null, Reliability.NORMAL],
|
||||
['thevideome.com', new RegExp(/(?<=\|)\w{2,}/gm), new TheVideoMe(), Reliability.NORMAL],
|
||||
['upstream.to', new RegExp(/(?<=\|)\w{2,}/gm), new Upstream(), Reliability.LOW],
|
||||
['vidlox.me', new RegExp(/(?<=\[")\S+?(?=")/gm), null, Reliability.NORMAL],
|
||||
['vidstream.pro', new RegExp(/(?<=')\w+(?=';)/gm), new Vidstream(), Reliability.LOW],
|
||||
['vidoza.net', new RegExp(/(?<=src:(\s*)?")\S*(?=")/gm), null, Reliability.NORMAL],
|
||||
['vivo.st', new RegExp(/(?<=source:\s')(\S+)(?=')/gm), new Vivo(), Reliability.HIGH],
|
||||
['vivo.sx', new RegExp(/(?<=source:\s')(\S+)(?=')/gm), new Vivo(), Reliability.HIGH],
|
||||
['voe.sx', new RegExp(/https?:\/\/\S*m3u8(?=")/gm), null, Reliability.HIGH],
|
||||
['vupload.com', new RegExp(/(?<=class\|)\w*/gm), new Vupload(), Reliability.NORMAL]
|
||||
]
|
||||
|
Reference in New Issue
Block a user