14 Commits

Author SHA1 Message Date
0fc06a78a7 Updated version 2022-02-02 17:42:34 +01:00
90bed8b774 Removed content_security_policy 2022-02-02 09:50:07 +01:00
ac31945372 Removed upstream.com 2022-02-01 22:07:51 +01:00
1683bf2035 Fixed readme build 2022-02-01 22:06:44 +01:00
af54a28737 Hls error style changes & typo fixes 2022-02-01 21:57:12 +01:00
0f8d323c3c Added comment passing on extracting matching sites 2022-02-01 21:55:55 +01:00
4c1bfbde62 Updated vupload.com regex (mp4 => hls) 2022-02-01 21:00:20 +01:00
9889cf79a2 Added badges 2022-02-01 20:49:13 +01:00
230eb074e9 Added gitignore 2022-02-01 20:36:31 +01:00
2a9c00c3a8 Typo fix 2022-01-10 16:10:48 +01:00
16cf6688ec Updated direct download links using smartrelease :3 2022-01-10 15:16:49 +01:00
4edc3d5f84 Update v1.4.2 2022-01-06 17:32:44 +01:00
e5552910b2 Hls player works now; fixed vupload.com regex 2022-01-06 17:32:30 +01:00
2db8381df7 Added link to issues 2022-01-06 17:30:47 +01:00
11 changed files with 53 additions and 30 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
build/

View File

@ -6,6 +6,18 @@ This addon replaces the video player from this sides with the native player buil
This has the advantage, that no advertising or popups are shown when trying to interact with the video (playing, skipping, ...) or some sites are showing them even if you do nothing. This has the advantage, that no advertising or popups are shown when trying to interact with the video (playing, skipping, ...) or some sites are showing them even if you do nothing.
Additionally this enables you to download the video by right-clicking it and just choose the download option. Additionally this enables you to download the video by right-clicking it and just choose the download option.
<p align="center">
<a href="https://addons.mozilla.org/de/firefox/addon/stream-bypass/">
<img src="https://img.shields.io/amo/users/stream-bypass?label=Firefox%20Addon%20Store&style=flat-square" alt="Firefox Addon Store">
</a>
<a href="https://github.com/ByteDream/stream-bypass/releases/latest">
<img src="https://img.shields.io/github/downloads/ByteDream/stream-bypass/total?label=GitHub%20Downloads&style=flat-square" alt="GitHub Downloads">
</a>
<a href="https://discord.gg/gUWwekeNNg">
<img src="https://img.shields.io/discord/915659846836162561?label=discord&style=flat-square" alt="Discord">
</a>
</p>
Supported streaming providers (for a complete list of all supported websites, see [here](SUPPORTED) or in [show all](#all-supported-websites) below): Supported streaming providers (for a complete list of all supported websites, see [here](SUPPORTED) or in [show all](#all-supported-websites) below):
- [streamtape.com](https://streamtape.com) - [streamtape.com](https://streamtape.com)
- [vivo.sx](https://vivo.sx) - [vivo.sx](https://vivo.sx)
@ -20,14 +32,14 @@ Supported streaming providers (for a complete list of all supported websites, se
<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>
<li><a href="https://upstream.to">upstream.to</a></li>
<li><a href="https://vidlox.me">vidlox.me</a></li> <li><a href="https://vidlox.me">vidlox.me</a></li>
<li><a href="https://vidstream.pro">vidstream.pro</a></li> <li><a href="https://vidstream.pro">vidstream.pro</a></li>
<li><a href="https://vidoza.net">vidoza.net</a></li> <li><a href="https://vidoza.net">vidoza.net</a></li>
<li><a href="https://vivo.st">vivo.st</a></li> <li><a href="https://vivo.st">vivo.st</a></li>
<li><a href="https://vivo.sx">vivo.sx</a></li> <li><a href="https://vivo.sx">vivo.sx</a></li>
<li><a href="https://voe.sx">voe.sx</a></li> <li><a href="https://voe.sx">voe.sx</a></li>
<li><a href="https://vupload.com">vupload.com</a></li></ul> <li><a href="https://vupload.com">vupload.com</a></li>
</ul>
</details> </details>
--- ---
@ -38,10 +50,10 @@ Supported streaming providers (for a complete list of all supported websites, se
</details> </details>
The addon was tested on The addon was tested on
- Firefox (95.0b8) - Firefox (96.0.3)
- Ungoogled Chromium (94.0) - Ungoogled Chromium (97.0)
- Vivaldi (4.3) - Vivaldi (5.0)
- Opera (81.0) - Opera (83.0)
## Installing ## Installing
@ -51,7 +63,7 @@ Install the addon directly from the [firefox addon store](https://addons.mozilla
### Chromium / Google Chrome ### Chromium / Google Chrome
1. Download the `stream-bypass-<version>.zip` file from the [latest release](https://github.com/ByteDream/stream-bypass/releases/latest) and unzip it (with [7zip](https://www.7-zip.org/) or something like that). 1. Download the zipfile from the [latest release](https://smartrelease.bytedream.org/github/ByteDream/stream-bypass/stream_bypass-{tag}.zip) and unzip it (with [7zip](https://www.7-zip.org/) or something like that).
2. Go into your browser and type `chrome://extensions` in the address bar. 2. Go into your browser and type `chrome://extensions` in the address bar.
3. Turn the developer mode in the top right corner on. 3. Turn the developer mode in the top right corner on.
4. Click Load unpacked. 4. Click Load unpacked.
@ -59,7 +71,7 @@ Install the addon directly from the [firefox addon store](https://addons.mozilla
### Opera ### Opera
1. Download the `stream-bypass-<version>.zip` file from the [latest release](https://github.com/ByteDream/stream-bypass/releases/latest) and unzip it (with [7zip](https://www.7-zip.org/) or something like that). 1. Download the zipfile from the [latest release](https://smartrelease.bytedream.org/github/ByteDream/stream-bypass/stream_bypass-{tag}.zip) and unzip it (with [7zip](https://www.7-zip.org/) or something like that).
2. Go into your browser and type `opera://extensions` in the address bar. 2. Go into your browser and type `opera://extensions` in the address bar.
3. Turn the developer mode in the top right corner on. 3. Turn the developer mode in the top right corner on.
4. Click Load unpacked. 4. Click Load unpacked.

View File

@ -4,7 +4,6 @@ mixdrop.co
streamtape.com streamtape.com
streamzz.to streamzz.to
thevideome.com thevideome.com
upstream.to
vidlox.me vidlox.me
vidstream.pro vidstream.pro
vidoza.net vidoza.net

View File

@ -24,7 +24,8 @@ def load_matches():
else: else:
match = pattern.findall(line) match = pattern.findall(line)
if match: if match:
matched.append(match[0]) if not line.strip().startswith('//'):
matched.append(match[0])
else: else:
break break
@ -66,7 +67,7 @@ def write_readme():
# adds all available websites # adds all available websites
all_providers_regex = r'(?<=<ul>\n)(.+?)(?=</ul>)' all_providers_regex = r'(?<=<ul>\n)(.+?)(?=</ul>)'
domains = filter(lambda domain: domain != '', open('SUPPORTED', 'r').read().split('\n')) domains = filter(lambda domain: domain != '', open('SUPPORTED', 'r').read().split('\n'))
all_providers = '\n'.join(f'\t\t<li><a href="https://{supported}">{supported}</a></li>' for supported in domains) all_providers = '\n'.join(f'\t\t<li><a href="https://{supported}">{supported}</a></li>' for supported in domains) + '\n'
readme = re.sub(all_providers_regex, all_providers, readme, flags=re.DOTALL) readme = re.sub(all_providers_regex, all_providers, readme, flags=re.DOTALL)
# adds all installed browsers to the tested browser section. i'm just to lazy to seek out all browser versions manually # adds all installed browsers to the tested browser section. i'm just to lazy to seek out all browser versions manually

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.4.0", "version": "1.5.1",
"homepage_url": "https://github.com/ByteDream/stream-bypass", "homepage_url": "https://github.com/ByteDream/stream-bypass",
"browser_specific_settings": { "browser_specific_settings": {
"gecko": { "gecko": {
@ -20,7 +20,6 @@
"*://streamtape.com/*", "*://streamtape.com/*",
"*://streamzz.to/*", "*://streamzz.to/*",
"*://thevideome.com/*", "*://thevideome.com/*",
"*://upstream.to/*",
"*://vidlox.me/*", "*://vidlox.me/*",
"*://vidstream.pro/*", "*://vidstream.pro/*",
"*://vidoza.net/*", "*://vidoza.net/*",
@ -39,7 +38,6 @@
"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

@ -58,7 +58,7 @@ class TheVideoMe implements Match {
class Upstream implements Match { class Upstream implements Match {
async match(match: RegExpMatchArray): Promise<string> { 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` return `https://${match[47]}.upstreamcdn.co/hls/${match.sort((a, b) => {return b.length - a.length})[0]}/master.m3u8`
} }
} }
@ -96,12 +96,6 @@ class Vivo implements Match {
} }
} }
class Vupload implements Match {
async match(match: RegExpMatchArray): Promise<string> {
return `https://www3.megaupload.to/${match[0]}/v.mp4`
}
}
// all domains to match. the matches must be structured like this: // 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] // [domain, regex match (can be null), class to call after match (can be null), reliability]
// => the domain which should be redirected // => the domain which should be redirected
@ -120,12 +114,12 @@ const matches = [
['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],
['upstream.to', new RegExp(/(?<=\|)\w{2,}/gm), new Upstream(), Reliability.LOW], //['upstream.to', new RegExp(/(?<=\|)\w{2,}/gm), new Upstream(), Reliability.LOW],
['vidlox.me', new RegExp(/(?<=\[")\S+?(?=")/gm), null, Reliability.NORMAL], ['vidlox.me', new RegExp(/(?<=\[")\S+?(?=")/gm), null, Reliability.NORMAL],
['vidstream.pro', new RegExp(/(?<=')\w+(?=';)/gm), new Vidstream(), Reliability.LOW], ['vidstream.pro', new RegExp(/(?<=')\w+(?=';)/gm), new Vidstream(), Reliability.LOW],
['vidoza.net', new RegExp(/(?<=src:(\s*)?")\S*(?=")/gm), null, Reliability.NORMAL], ['vidoza.net', new RegExp(/(?<=src:(\s*)?")\S*(?=")/gm), null, Reliability.NORMAL],
['vivo.st', new RegExp(/(?<=source:\s')(\S+)(?=')/gm), new Vivo(), Reliability.HIGH], ['vivo.st', new RegExp(/(?<=source:\s')(\S+)(?=')/gm), new Vivo(), Reliability.HIGH],
['vivo.sx', 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], ['voe.sx', new RegExp(/https?:\/\/\S*m3u8(?=")/gm), null, Reliability.HIGH],
['vupload.com', new RegExp(/(?<=class\|)\w*/gm), new Vupload(), Reliability.NORMAL] ['vupload.com', new RegExp(/(?<=src:\s?").+?(?=")/gm), null, Reliability.NORMAL]
] ]

View File

@ -19,6 +19,7 @@
<hr> <hr>
<table id="sub-container"> <table id="sub-container">
</table> </table>
<a id="error" href="https://github.com/ByteDream/stream-bypass/issues/new">Something does not work as expected</a>
</div> </div>
<script src="./popup.js"></script> <script src="./popup.js"></script>
</body> </body>

View File

@ -24,6 +24,14 @@ a
background-color: grey background-color: grey
cursor: not-allowed cursor: not-allowed
&#error
border: none
display: block
font-weight: lighter
font-size: 0.8rem
text-align: center
padding: 10px 0 5px 0
hr hr
margin: 3px 0 margin: 3px 0

View File

@ -8,6 +8,6 @@
<body> <body>
<video id="video"></video> <video id="video"></video>
<p id="message" hidden></p> <p id="message" hidden></p>
<script src="/res/hls.light.min.js"></script> <script src="/res/hls.js"></script>
</body> </body>
</html> </html>

View File

@ -1,3 +1,6 @@
body
background-color: #131313
html, body, video html, body, video
width: 100% width: 100%
height: 100% height: 100%
@ -7,3 +10,7 @@ video
position: absolute position: absolute
top: 0 top: 0
left: 0 left: 0
#message
color: white
text-align: center

View File

@ -27,7 +27,7 @@ function loadHls() {
switch (rawReliability) { switch (rawReliability) {
case 1: // low case 1: // low
message = `The reliability for this domain is low, so errors like this are common. message = `The reliability for this domain is low, errors like this are common.
Try to choose another streaming provider (if existent) or deactivate the addon for this domain (${searchParams.get('domain')}) and try again` Try to choose another streaming provider (if existent) or deactivate the addon for this domain (${searchParams.get('domain')}) and try again`
break break
case 2: // normal case 2: // normal
@ -35,8 +35,8 @@ function loadHls() {
break break
case 3: // high case 3: // high
message = `The reliability for this domains is high, errors like this are very unlikely to happen. message = `The reliability for this domains is high, errors like this are very unlikely to happen.
Try to refresh the page and if the error still exists you might want to open a new issue <a href="https://github.com/ByteDream/stream-bypass/issues">here</a>. Try to refresh the page and if the error still exists you might want to open a new issue <a href="https://github.com/ByteDream/stream-bypass/issues/new">here</a>.
When your using <a href="https://www.torproject.org/">Tor</a> such errors have a slight chance to occur more often, When you're using <a href="https://www.torproject.org/">Tor</a> such errors have a slight chance to occur more often,
so if this is the case just try to reload the page and see if you it's working then` so if this is the case just try to reload the page and see if you it's working then`
break break
} }
@ -45,6 +45,8 @@ function loadHls() {
showMessage(`Could not load hls video. ${message}`) showMessage(`Could not load hls video. ${message}`)
}, rawReliability * 3000) }, rawReliability * 3000)
document.title = searchParams.get('domain')
// @ts-ignore // @ts-ignore
hls.on(Hls.Events.MANIFEST_PARSED, () => { hls.on(Hls.Events.MANIFEST_PARSED, () => {
clearTimeout(thirdPartyFallback) clearTimeout(thirdPartyFallback)
@ -53,7 +55,7 @@ function loadHls() {
}) })
} else { } else {
// shows a message if hls is not supported // shows a message if hls is not supported
showMessage(`Failed to play m3u8 video (hls is not supported). Try again or create a new issue <a href="https://github.com/ByteDream/stream-bypass/issues">here</a>`) showMessage(`Failed to play m3u8 video (hls is not supported). Try again or create a new issue <a href="https://github.com/ByteDream/stream-bypass/issues/new">here</a>`)
} }
} }