4 Commits

Author SHA1 Message Date
7bfae612f9 Updated version 2022-02-04 15:46:44 +01:00
106f4ffda3 Re-added content_security_policy to fix hls playing 2022-02-04 15:40:16 +01:00
b83d287a42 Added newgrounds.com 2022-02-04 15:40:00 +01:00
a39418e506 Added prefix wildcards to url matching 2022-02-04 15:39:22 +01:00
5 changed files with 33 additions and 15 deletions

View File

@ -29,6 +29,7 @@ Supported streaming providers (for a complete list of all supported websites, se
<li><a href="https://evoload.io">evoload.io</a></li> <li><a href="https://evoload.io">evoload.io</a></li>
<li><a href="https://mcloud.to">mcloud.to</a></li> <li><a href="https://mcloud.to">mcloud.to</a></li>
<li><a href="https://mixdrop.co">mixdrop.co</a></li> <li><a href="https://mixdrop.co">mixdrop.co</a></li>
<li><a href="https://newgrounds.com">newgrounds.com</a></li>
<li><a href="https://streamtape.com">streamtape.com</a></li> <li><a href="https://streamtape.com">streamtape.com</a></li>
<li><a href="https://streamzz.to">streamzz.to</a></li> <li><a href="https://streamzz.to">streamzz.to</a></li>
<li><a href="https://thevideome.com">thevideome.com</a></li> <li><a href="https://thevideome.com">thevideome.com</a></li>

View File

@ -1,6 +1,7 @@
evoload.io evoload.io
mcloud.to mcloud.to
mixdrop.co mixdrop.co
newgrounds.com
streamtape.com streamtape.com
streamzz.to streamzz.to
thevideome.com thevideome.com

View File

@ -37,7 +37,7 @@ def write_manifest():
manifest = json.load(open('src/manifest.json', 'r')) manifest = json.load(open('src/manifest.json', 'r'))
for content_script in manifest['content_scripts']: for content_script in manifest['content_scripts']:
content_script['matches'] = [f'*://{match}/*' for match in matches] content_script['matches'] = [f'*://*.{match}/*' for match in matches]
json.dump(manifest, open('src/manifest.json', 'w'), indent=2) json.dump(manifest, open('src/manifest.json', 'w'), indent=2)

View File

@ -3,7 +3,7 @@
"name": "Stream Bypass", "name": "Stream Bypass",
"author": "ByteDream", "author": "ByteDream",
"description": "A multi-browser addon / extension for multiple streaming providers which redirects directly to the source video.", "description": "A multi-browser addon / extension for multiple streaming providers which redirects directly to the source video.",
"version": "1.5.1", "version": "1.6.0",
"homepage_url": "https://github.com/ByteDream/stream-bypass", "homepage_url": "https://github.com/ByteDream/stream-bypass",
"browser_specific_settings": { "browser_specific_settings": {
"gecko": { "gecko": {
@ -14,19 +14,20 @@
{ {
"all_frames": true, "all_frames": true,
"matches": [ "matches": [
"*://evoload.io/*", "*://*.evoload.io/*",
"*://mcloud.to/*", "*://*.mcloud.to/*",
"*://mixdrop.co/*", "*://*.mixdrop.co/*",
"*://streamtape.com/*", "*://*.newgrounds.com/*",
"*://streamzz.to/*", "*://*.streamtape.com/*",
"*://thevideome.com/*", "*://*.streamzz.to/*",
"*://vidlox.me/*", "*://*.thevideome.com/*",
"*://vidstream.pro/*", "*://*.vidlox.me/*",
"*://vidoza.net/*", "*://*.vidstream.pro/*",
"*://vivo.st/*", "*://*.vidoza.net/*",
"*://vivo.sx/*", "*://*.vivo.st/*",
"*://voe.sx/*", "*://*.vivo.sx/*",
"*://vupload.com/*" "*://*.voe.sx/*",
"*://*.vupload.com/*"
], ],
"js": [ "js": [
"match.js", "match.js",
@ -38,6 +39,7 @@
"permissions": [ "permissions": [
"storage" "storage"
], ],
"content_security_policy": "script-src 'self' blob:; object-src 'self'",
"browser_action": { "browser_action": {
"default_icon": "icons/stream-bypass.png", "default_icon": "icons/stream-bypass.png",
"default_title": "Stream Bypass", "default_title": "Stream Bypass",

View File

@ -44,6 +44,19 @@ class Mixdrop implements Match {
} }
} }
class Newgrounds implements Match {
async match(match: RegExpMatchArray): Promise<string> {
let id = window.location.pathname.split('/').slice(-1)[0]
let response = await fetch(`https://www.newgrounds.com/portal/video/${id}`, {
headers: {
'X-Requested-With': 'XMLHttpRequest'
}
})
let json = await response.json()
return decodeURI(json['sources'][Object.keys(json['sources'])[0]][0]['src'])
}
}
class Streamtape implements Match { class Streamtape implements Match {
async match(match: RegExpMatchArray): Promise<string> { async match(match: RegExpMatchArray): Promise<string> {
return `https://streamtape.com/get_video?${match[0]}` return `https://streamtape.com/get_video?${match[0]}`
@ -111,6 +124,7 @@ const matches = [
['evoload.io', null, new Evoload(), Reliability.NORMAL], ['evoload.io', null, new Evoload(), Reliability.NORMAL],
['mcloud.to', new RegExp(/(?<=')\w+(?=';)/gm), new MCloud(), Reliability.NORMAL], ['mcloud.to', new RegExp(/(?<=')\w+(?=';)/gm), new MCloud(), Reliability.NORMAL],
['mixdrop.co', new RegExp(/(?<=\|)\w{2,}/gm), new Mixdrop(), Reliability.HIGH], ['mixdrop.co', new RegExp(/(?<=\|)\w{2,}/gm), new Mixdrop(), Reliability.HIGH],
['newgrounds.com', null, new Newgrounds(), Reliability.HIGH],
['streamtape.com', new RegExp(/id=\S*(?=')/gm), new Streamtape(), Reliability.NORMAL], ['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], ['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], ['thevideome.com', new RegExp(/(?<=\|)\w{2,}/gm), new TheVideoMe(), Reliability.NORMAL],