Compare commits

...

136 Commits

Author SHA1 Message Date
redphx
b770a4c9d3 Bump version to 1.8.1 2023-08-01 08:32:29 +07:00
redphx
a27c0ed8f6 Bump version to 1.8.1 2023-08-01 08:31:56 +07:00
redphx
8ac37754e6 Combine "Resolution" and "Video" badges into one 2023-08-01 08:31:01 +07:00
redphx
d9288a322b Update battery stat 2023-08-01 08:23:48 +07:00
redphx
5facfd2348 Fix inaccurate percentages of PL & FL stats 2023-08-01 08:18:03 +07:00
redphx
889717be7d Show confirm dialog to refresh the stream after holding for 1s 2023-08-01 08:07:57 +07:00
redphx
4b0f0784ae Fix stats bar not showing sometimes 2023-08-01 08:05:18 +07:00
redphx
31217d01bb Update bug_report.md 2023-08-01 07:40:50 +07:00
redphx
2f6176e906 Update README.md 2023-07-31 14:49:03 +07:00
redphx
fe011fd0f2 Update README.md 2023-07-31 08:28:37 +07:00
redphx
c23f55ee6b Bump version to 1.8 2023-07-31 07:49:11 +07:00
redphx
0c85770ed1 Bump version to 1.8 2023-07-31 07:48:52 +07:00
redphx
8233192b8d Update README.md 2023-07-31 07:47:45 +07:00
redphx
6c5fa3c061 Simplify playtime text 2023-07-31 07:31:03 +07:00
redphx
e47c6d9103 Use colors from PICO-8 palette for stream badges 2023-07-31 07:25:52 +07:00
redphx
563ad65580 Fix battery calculation 2023-07-31 07:16:32 +07:00
redphx
7933d8d22c Update README.md 2023-07-31 06:43:47 +07:00
redphx
b0e23ca335 Hold the "Quit game" button for 1s to refresh the stream (#43)
* Hold "Quit game" button to refresh the stream

* Fix problem with touch screen

* Another fix
2023-07-30 22:03:25 +07:00
redphx
c9f3990173 Show playtime & battery level badges (#42) 2023-07-30 21:07:25 +07:00
redphx
5d301b6588 Add setting to hide/disable touch controller (#38) 2023-07-30 15:47:56 +07:00
redphx
32123a7891 Update README.md 2023-07-29 18:02:20 +07:00
redphx
dad4d43313 Bump version to 1.7 2023-07-29 17:21:01 +07:00
redphx
e3af588b13 Bump version to 1.7 2023-07-29 17:20:47 +07:00
redphx
50226baa5c Update README.md 2023-07-29 17:20:02 +07:00
redphx
d2e3ad36da Fix check for update 2023-07-29 16:54:54 +07:00
redphx
26528fe2d7 Refactor code (#36)
* Refactor class names

* Move Quick settings bar's CSS to addCss()

* Adjust Stream menu button's size

* Add shadow to Video settings bar

* Put "Stream Stats" button before "Video Settings" button
2023-07-29 16:39:40 +07:00
redphx
9d44c9c779 Add "Preferred game's language" setting (#35) 2023-07-29 15:56:19 +07:00
redphx
423ac5c356 Start hiding cursor as soon as possible 2023-07-29 15:15:23 +07:00
redphx
746e32ecae Add "Hide mouse cursor while playing" setting (#33) 2023-07-29 12:11:41 +07:00
redphx
931d70ba3a Custom User-Agent (#32)
* Add "Custom User-Agent" feature

* Override navigator.userAgent

* Save the original User-Agent before overriding it
2023-07-29 10:49:12 +07:00
redphx
654d82208b Update README.md 2023-07-29 09:41:40 +07:00
redphx
0d5e3ed70f Replace "Force 1080p stream" setting with "Stream's target resolution" (#31) 2023-07-29 08:23:01 +07:00
redphx
fcd312344b Update README.md 2023-07-28 12:14:58 +07:00
redphx
d53aeb6c3e Update README.md 2023-07-28 06:32:12 +07:00
redphx
af5c758512 Update README.md 2023-07-27 08:45:03 +07:00
redphx
d1f39927d7 Update README.md 2023-07-27 08:29:48 +07:00
redphx
bd53961d67 Update README.md 2023-07-27 08:11:17 +07:00
redphx
ab6208a948 Bump version to 1.6.2 2023-07-27 07:29:53 +07:00
redphx
bae8c193d3 Bump version to 1.6.2 2023-07-27 07:29:39 +07:00
redphx
b9283eb435 Update README.md 2023-07-27 07:28:50 +07:00
redphx
e73e018380 Update Stream stats (#24)
* Change label's font

* Add Stats settings popup

* Toggle Stats settings dialog

* Update structure of Preferences.SETTINGS

* Add dialog title

* Add "Show stats when starting the game" setting

* Update texts

* Validate setting value before saving

* Add Preferences.toElement()

* Add "Text size" setting

* Add "Decode time" stat

* Add "Conditional formatting text color" feature

* Add "for" attributes to labels

* Update grade's colors

* Fix text wrapping

* Update stats using setInterval() instead of setTimeout()
2023-07-27 07:18:06 +07:00
redphx
e98ad00bb9 Update README.md 2023-07-26 15:42:38 +07:00
redphx
d232dc164f Update README.md 2023-07-26 09:07:31 +07:00
redphx
ee192bc98e Change value of "updateURL" 2023-07-25 11:35:50 +07:00
redphx
1210176413 Change "updateURL" to meta file 2023-07-25 11:33:21 +07:00
redphx
9262d0e14f Create better-xcloud.meta.js 2023-07-25 11:32:35 +07:00
redphx
df87a51329 Update README.md 2023-07-25 11:20:40 +07:00
redphx
8c7013659b Fix Stream stats bar's CSS 2023-07-25 09:14:28 +07:00
redphx
b3b7a51979 Bump version to 1.6.1 2023-07-25 09:01:04 +07:00
redphx
831ccb31c1 Stop stretching stream stats' background to full screen 2023-07-25 09:00:48 +07:00
redphx
d87ac78e57 Add "Check for update" feature (#21) 2023-07-25 08:58:42 +07:00
redphx
67b419c37d Update README.md 2023-07-25 07:57:16 +07:00
redphx
a7b796362a Update README.md 2023-07-25 07:12:01 +07:00
redphx
889ee890f1 Update README.md 2023-07-24 11:38:29 +07:00
redphx
71a48f8afb Update README.md 2023-07-24 08:00:56 +07:00
redphx
354ecac97e Update README.md 2023-07-23 20:22:39 +07:00
redphx
45a7c28d3f Update README.md 2023-07-23 17:53:56 +07:00
redphx
e43c34ed3a Bump version to 1.6 2023-07-23 17:45:27 +07:00
redphx
28a2e32fc5 Update README.md 2023-07-23 17:44:50 +07:00
redphx
b564de249a Show stream stats (#16)
* Get video and audio info from RTCPeerConnection.getStats()

* Show stream's stats bar

* Make Stream menu icon's size smaller

* Add shadow to stream badges

* Show bitrate

* Add button to toggle Stream Stats

* Rename StreamStatus to StreamBadges

* Show '???' then currentRoundTripTime is undefined

* Remove work-around for browsers with no setCodecPreferences() support as it's not working

* Remove updateVideoPlayerPreview()

* Disable USE_DESKTOP_CODEC setting on unsupported browsers
2023-07-23 17:09:30 +07:00
redphx
9fa073da82 Update README.md 2023-07-22 15:41:14 +07:00
redphx
958f5410f4 Update README.md 2023-07-22 15:20:45 +07:00
redphx
15d3efdf4e Update README.md 2023-07-22 15:20:35 +07:00
redphx
645b49751d Update README.md 2023-07-22 15:15:16 +07:00
redphx
53913ae218 Update README.md 2023-07-22 12:23:31 +07:00
redphx
2569e73018 Bump version to 1.5 2023-07-22 12:13:42 +07:00
redphx
4c790ac38d Update README.md 2023-07-22 12:08:27 +07:00
redphx
11c233e14e Add screenshot capture feature (#15)
* Add a button to test screenshot feature

* Update CSS of the screenshot button

* Prevent screenshot button from blocking UI

* Add setting to change screenshot button's position
2023-07-22 11:46:19 +07:00
redphx
a81cb86140 Update README.md 2023-07-22 09:23:58 +07:00
redphx
c3de245545 Rename "Dimension" to "Resolution" 2023-07-22 07:29:31 +07:00
redphx
a7ab506f0f Update README.md 2023-07-22 07:02:42 +07:00
redphx
8ecff6adae Update issue templates 2023-07-22 06:51:44 +07:00
redphx
27ec45512d Update issue templates 2023-07-22 06:42:30 +07:00
redphx
3a654b99cb Fix video not showing in Chrome 2023-07-22 06:36:26 +07:00
redphx
a009cca866 Update README.md 2023-07-21 17:28:29 +07:00
redphx
19302ea444 Update README.md 2023-07-21 17:03:03 +07:00
redphx
3c4248c1c7 Update README.md 2023-07-21 16:51:40 +07:00
redphx
de834fcb80 Bump version to 1.4.2 2023-07-21 16:49:28 +07:00
redphx
baf2c2a35d Fix "Force high quality codec" feature not working with Kiwi Browser 2023-07-21 16:42:57 +07:00
redphx
522830a47d Update README.md 2023-07-21 15:16:57 +07:00
redphx
7207646379 Bump version to 1.4.1 2023-07-21 09:02:37 +07:00
redphx
597c150c77 Update README.md 2023-07-21 09:02:10 +07:00
redphx
e7980c186d Add Kiwi Browser support (#11)
* Catch exception when trying to force desktop codec profile on Kiwi Browser

* Improve setCodecPreferences(), avoid crashing

* Improve codec status detection

* Fix codec detection
2023-07-21 08:57:05 +07:00
redphx
0c38b54c38 Update README.md 2023-07-20 21:06:49 +07:00
redphx
1929834c98 Update README.md 2023-07-20 18:50:57 +07:00
redphx
6e80ea08e8 Bump version to 1.4 2023-07-20 18:40:27 +07:00
redphx
a5caafa93a Stream badges & 1080p stream (#10)
* Get stream statuses

* Render badges

* Add "Force 1080p stream" feature (#9)
2023-07-20 18:38:58 +07:00
redphx
f8134c3e5a Update README.md 2023-07-19 13:22:48 +07:00
redphx
89ea55774b Make Settings UI can be interacted using controller 2023-07-19 09:03:36 +07:00
redphx
2836eeb6ed Update README.md 2023-07-17 20:10:51 +07:00
redphx
876b090ad2 Update README.md 2023-07-17 19:54:44 +07:00
redphx
e33730b124 Bump version to 1.3.2 2023-07-17 18:46:26 +07:00
redphx
8b4f26155c Update README.md 2023-07-17 18:45:54 +07:00
redphx
a52ba7dddf Work-around of "Force high quality stream" feature for Firefox (#4) 2023-07-17 18:42:20 +07:00
redphx
a8eb296bcf Merge branch 'main' of https://github.com/redphx/better-xcloud 2023-07-17 17:06:37 +07:00
redphx
f4a3c38cca Update texts in Settings 2023-07-17 17:06:34 +07:00
redphx
e8ab19c318 Update README.md 2023-07-17 15:09:46 +07:00
redphx
89e4dd0003 Update README.md 2023-07-17 11:25:54 +07:00
redphx
9874d36f3a Update README.md 2023-07-17 09:05:27 +07:00
redphx
ed54d1ed38 Fix IPv6 feature not working 2023-07-17 08:54:53 +07:00
redphx
4676e42215 Update README.md 2023-07-16 18:36:36 +07:00
redphx
ad791bdc45 Work-around for forcing high quality stream 2023-07-16 18:34:11 +07:00
redphx
a318db4ec2 Update better-xcloud.user.js 2023-07-16 15:56:08 +07:00
redphx
aaa8348984 Update README.md 2023-07-16 15:55:44 +07:00
redphx
2cea30cf16 Check support of RTCRtpTransceiver.setCodecPreferences() 2023-07-16 15:50:44 +07:00
redphx
0fe99f8f2d Update README.md 2023-07-16 15:16:43 +07:00
redphx
0cb09bb455 Update README.md 2023-07-16 12:41:51 +07:00
redphx
14cf9d5877 Stop recommending changing User-Agent 2023-07-16 12:39:28 +07:00
redphx
b96b115182 Bump version to 1.3 2023-07-16 12:30:55 +07:00
redphx
766c5b8682 Update README.md 2023-07-16 12:30:14 +07:00
redphx
5f9564de45 Update CSS of reload page button 2023-07-16 12:01:22 +07:00
redphx
3a7dea6c75 Add missing code 2023-07-16 11:54:40 +07:00
redphx
8dd17bb021 Add setting to force HQ codec 2023-07-16 11:54:23 +07:00
redphx
e63f998f5a Update README.md 2023-07-16 06:43:49 +07:00
redphx
0685cd8038 Update README.md 2023-07-15 21:48:05 +07:00
redphx
f246faf796 Update README.md 2023-07-15 21:26:10 +07:00
redphx
68ef703bdb Update README.md 2023-07-15 21:17:01 +07:00
redphx
f9d683a2e4 Update README.md 2023-07-15 21:11:51 +07:00
redphx
fec2c4a22a Update README.md 2023-07-15 21:04:15 +07:00
redphx
c3df18d7be Update README.md 2023-07-15 20:59:10 +07:00
redphx
9971fe6c0c Update README.md 2023-07-15 20:55:34 +07:00
redphx
cc11bcea41 Bump version to 1.2.1 2023-07-15 20:54:15 +07:00
redphx
048d085e91 Merge branch 'main' of https://github.com/redphx/better-xcloud 2023-07-15 20:53:37 +07:00
redphx
ed32044480 Update Video settings UI 2023-07-15 20:53:28 +07:00
redphx
32c087966b Update README.md 2023-07-15 20:52:51 +07:00
redphx
e4ad010e0a Remove video settings in the main Settings UI 2023-07-15 20:29:50 +07:00
redphx
d2debc0623 Bump version to 1.2 2023-07-15 17:23:44 +07:00
redphx
0c3d8519e1 Update README.md 2023-07-15 17:23:11 +07:00
redphx
e323bd5b47 Fix Quick bar not hiding after quitting game 2023-07-15 17:07:08 +07:00
redphx
ce54aa4580 Update CSS of Quick video settings bar 2023-07-15 16:59:28 +07:00
redphx
d29447173c Fix Quick video settings feature not working with touch screen 2023-07-15 16:56:01 +07:00
redphx
2f3a3167e1 Add Quick video settings bar while playing 2023-07-15 16:32:20 +07:00
redphx
e17459934b Update README.md 2023-07-15 12:38:01 +07:00
redphx
ecf9b414ba Bump version to 1.1.3 2023-07-15 12:27:30 +07:00
redphx
f78bd31b58 Fix video not showing then the "Skip splash video" setting is off 2023-07-15 12:27:03 +07:00
redphx
da54bd5302 Update README.md 2023-07-15 09:56:59 +07:00
5 changed files with 1854 additions and 295 deletions

34
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,34 @@
---
name: Bug report
about: Create a report to help us improve
title: "[Bug]"
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Platform (please complete the following information):**
- Device: [e.g. Phone/Laptop/Desktop/TV]
- OS: [e.g. Android]
- Browser: [e.g. Chrome, Kiwi]
- Browser Version: [e.g. 100]
- Better xCloud Version: [e.g. 1.4]
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[Feature]"
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

212
README.md
View File

@@ -1,80 +1,198 @@
# Better xCloud # Better xCloud
Improve [Xbox Cloud Gaming (xCloud)](https://www.xbox.com/play/) experience on web browser. Improve [Xbox Cloud Gaming (xCloud)](https://www.xbox.com/play/) experience on web browser.
The main target of this script is Android users, but it should work great on desktop too. The main target of this script is mobile users, but it should work great on desktop too.
This script makes me spend more time with xCloud, and I hope the same thing happens to you.
Give this project a 🌟 if you like it. Thank you 🙏.
[![Latest version](https://img.shields.io/github/v/release/redphx/better-xcloud?label=latest)](https://github.com/redphx/better-xcloud/releases)
[![Total stars](https://img.shields.io/github/stars/redphx/better-xcloud?color=%23cca400)](https://github.com/redphx/better-xcloud/stargazers)
<!--
[![Total downloads](https://img.shields.io/github/downloads/redphx/better-xcloud/total?color=%23e15f2c)](https://github.com/redphx/better-xcloud/releases)
-->
## Features ## Features
<img width="474" alt="image" src="https://github.com/redphx/better-xcloud/assets/96280/2793d404-3185-4c91-a500-dde362c661dd"> <img width="475" alt="Settings UI" src="https://github.com/redphx/better-xcloud/assets/96280/f4187ef8-fa10-4eab-b085-ef3c3aed3201">
- Switch region of streaming server. <img width="475" alt="Stream HUD UI" src="https://github.com/redphx/better-xcloud/assets/96280/68f91041-10b2-4fd9-adc1-e2a21db7e36f">
- Prefer IPv6 streaming server (might improve latency).
- Force HD stream by disabling bandwidth checking -> xCloud always tries to use the best possible quality.
- Skip Xbox splash video. &nbsp;
- Make the top-left dots icon invisible while playing. You can still click on it, but it doesn't block the screen anymore.
- Stretch video to full sctreen. Useful when you don't have a 16:9 screen. **Demo video:** https://youtu.be/oDr5Eddp55E
- Adjust video filters (brightness/contrast/saturation).
- Hide footer and other UI elements. - **🔥 Show stream stats**
- Reduce UI animations (the smooth scrolling cannot be disabled). > Check [Stream stats section](#stream-stats) for more info.
- Disable social features (friends, chat...). - **🔥 Capture screenshot**
- Disable xCloud analytics. The analytics contains statistics of your streaming session, so I'd recommend to allow analytics to help Xbox improve xCloud's experence in the future. > Exclusive to **Better xCloud**. Check the [**Capture screenshot** section](#capture-screenshot) for more info.
- **🔥 Hold the "Quit game" button for one second to refresh the stream**
> Sometimes you can fix the bad connection to the stream simply by refreshing the page.
> Useful on mobile where the pull-to-refresh feature doesn't work while playing.
- **Switch region of streaming server**
> Connect to another server instead of the default one. Check the [**FAQ** section](#faq) for some notes.
- **Preferred game's language**
> If the game doesn't support this language, it will use the same language as xCloud's website.
- **Stream's target resolution**
> Set stream's resolution.
> By default you only get 1080p stream when playing on desktop.
> This feature can give you 1080p stream even on mobile, without having to change User-Agent.
- **Force high quality codec (if supported)<sup>(\*)</sup>**
> Force xCloud to use the best streaming codec profile (same as desktop & TV) if possible. You don't have to change User-Agent anymore.
> You should enable this feature even if you're on desktop.
> Not available for some browsers (Firefox, Safari...). Use the [changing User-Agent method](https://github.com/redphx/better-xcloud/wiki/UserAgent) instead.
> Use more bandwidth & battery.
> Comparison video with the setting ON & OFF: https://youtu.be/-9PuBJJSgR4
- **Prefer IPv6 streaming server**
> Might reduce latency.
- **Disable bandwidth checking**
> xCloud won't warn about slow connection speed.
- **Skip Xbox splash video**
> Save 3 seconds.
- **Hide Dots icon while playing**
> You can still click on it, but it doesn't block the screen anymore.
- **Disable touch controller**
> Stop the touch controller from showing when touching the screen.
> Useful when you play on a device with a built-in controller like Logitech G Cloud, Steam Deck, Retroid, etc.
- **Hide mouse cursor while playing**
> Hide the mouse cursor after 3 seconds of not moving.
- **Stretch video to full sctreen**
> Useful when you don't have a 16:9 screen
- **Adjust video filters**
> Brightness/Contrast/Saturation.
- **Display stream's statuses**
> Region/Server/Codecs/Resolution...
> Current playtime of the session.
> Current battery level. Only visible on battery-powered devices.
- **Disable social features**
> Features like friends, chat... Disable these will make the page load faster.
- **Disable xCloud analytics**
> The analytics contains statistics of your streaming session, so I'd recommend allowing analytics to help Xbox improve xCloud's experience in the future.
- **Change User-Agent**
> Useful when you're using unsupported browsers.
> If you're on Safari, changing User-Agent to "Edge on Windows" will allow you to use Mic feature.
> This setting only affects xCloud, and it doesn't change browser's global User-Agent.
> 📝 If you get 404 error after using this feature, try refreshing the page a few times. See [#34](https://github.com/redphx/better-xcloud/issues/34).
- **Reduce UI animations**
> Disable `transition` CSS property in some elements. The smooth scrolling cannot be disabled.
- **Hide footer and other UI elements**
<sup>(\*)</sup> By default (for compatibility reasons) xCloud only uses high quality codec profile when you use Tizen TV or Chrome/Edge/Chromium browser on Chrome/MacOS. Enable this setting will give you the best experience no matter what platform & browser you're on.
## How to use ## How to use
1. Install [Tampermonkey extension](https://www.tampermonkey.net/) on suppported browsers. It's also available for Firefox on Android. 1. Install [Tampermonkey extension](https://www.tampermonkey.net/) on suppported browsers. For Safari, use [Userscripts app](https://apps.apple.com/us/app/userscripts/id1463298887).
2. Install **Better xCloud**: 2. Install **Better xCloud**:
- [Directly on Github](https://github.com/redphx/better-xcloud/releases/latest/download/better-xcloud.user.js) - [Stable version](https://github.com/redphx/better-xcloud/releases/latest/download/better-xcloud.user.js)
- [Dev version](https://github.com/redphx/better-xcloud/raw/main/better-xcloud.user.js)
4. Refresh [xCloud web page](https://www.xbox.com/play/). 4. Refresh [xCloud web page](https://www.xbox.com/play/).
5. Click on the new "SERVER NAME" button next to your profile picture to adjust settings. 5. Click on the new "SERVER NAME" button next to your profile picture to adjust settings.
6. Optional but recommended: change your browser's User-Agent. Check the [User-Agent section](#user-agent) below for more info. 6. Don't forget to enable auto updating for the script in Tampermonkey.
7. Don't forget to reload the page after changing settings.
## User-Agent To update manually, just install the script again (you won't lose your settings).
Optional, as changing User-Agent won't guarantee a better streaming experience, but it's worth a try. You might need to install an external extension to do that.
It's recommended to change User-Agent to: ## Tutorial videos
``` If you still have trouble installing **Better xCloud**, you can follow one of these tutorial videos:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.67 - 🇧🇷 [Tudo isso agora tem no xCloud!! (ChipTec)](https://youtu.be/zS8Zy0mYIbU?t=40)
``` - 🇫🇷 [#Tuto Xbox Cloud Gaming : Ecran ultra large et adieu les bandes noires sur smartphone (Cloud Gaming France)](https://www.youtube.com/watch?v=5U05KoTdDHs)
This will trick xCloud into thinking you're using Edge browser on desktop.
Other options (only do one of these):
- Add ` smarttv` to switch to Smart TV layout.
- Add ` Xbox;` to become an Xbox console.
- Add ` 36102dd3-6953-45f6-8b48-031fb95e0e0d` to become a Logitech G Cloud device.
- Add ` 0ed22b6f-b61d-41eb-810a-a1ed586a550b` to become a Razer Edge device.
## Compatibility ## Compatibility
✅ = confirmed to be working ✅ = confirmed to be working
❓ = not yet tested ❓ = not yet tested
❌ = not supported (mostly because of lacking Userscript/extension support) ❌ = not supported (mostly because of lacking Userscript/extension support)
= unavailable
⚠️ = see custom notes ⚠️ = see custom notes
| | Desktop | Android | iOS | | | Desktop | Android/Android TV | iOS |
|----------------------------------------|----------|------------------|-----| |-----------------------------------------|:-----------------|:-------------------|:----------------|
| Chrome | ✅ | ❌ | ❌ | | Chrome/Edge/Chromium variants | ✅ | ❌ | ❌ |
| Firefox | ✅ | ✅ | ❌ | | Firefox | ✅ | ⚠️<sup>(1)</sup> | ❌ |
| Edge | ❓ | ❌ | ❌ | | Safari | <sup>(2)</sup> | | ✅<sup>(3)</sup> |
| Safari | ❓ | | ❓ | | [Hermit](https://hermit.chimbori.com) | | ⚠️<sup>(4)</sup> | |
| [Hermit](https://hermit.chimbori.com) | ❌ | ⚠️<sup>(1)</sup> | ❌ | | [Kiwi Browser](https://kiwibrowser.com) | | ✅ | |
<sup>1</sup> NOT RECOMMENDED at the moment since its Userscript implementation is not working properly. Non-network related features (skip splash video, video settings...) still work. It's still my favorite app to play xCloud on because it's lightweight, supports both custom User-Agent and Userscript (premium features, only $7.99) without having to install anything else. I built **Better xCloud** just so I could use it with Hermit. Don't see your browser in the table? If it supports Tampermonkey/Userscript then the answer is likely **"YES"**.
<sup>1</sup> Follow [this guide](https://support.mozilla.org/en-US/kb/find-and-install-add-ons-firefox-android) to install Tampermonkey on Firefox Android. Its Gamepad API doesn't work properly so it might not recognize your controller.
<sup>2, 3</sup> Requires [Userscripts app](https://apps.apple.com/us/app/userscripts/id1463298887) (free & open source).
<sup>4</sup> NOT RECOMMENDED at the moment since its Userscript implementation is not working properly (see https://github.com/redphx/better-xcloud/issues/5 for full details).
---
- **Kiwi Browser** is the best choice on Android. All features work, it means you can get 1080p stream + high quality codec profile (the best possible quality).
- **Better xCloud** also works on Android TV, but you'll have to sideload the browser APK and need a Bluetooth mouse if you want to interact with the Settings.
## Stream stats
<img width="500" alt="Stream stats" src="https://github.com/redphx/better-xcloud/assets/96280/70f4b1bb-4e3d-4f27-9b2f-afcfe1b8b261">
- While playing > `...` > `Stream Stats`.
- Double-click on the stats bar to show Settings dialog.
- This bar is updated every second.
- ⚠️ Using **Better xCloud** or showing the stats bar also affects the performance of the stream.
| Abbr. | Full name | Explain |
|------:|:-------------------|:-------------------------------------------------------------------------------------------------------------------------------------------|
| FPS | Frames per Seconds | The number of decoded frames in the last second of the stream (may not be the same as the FPS of the game) |
| DT | Decode Time | The average time it took to decode one frame in the last second (might be bugged [#26](https://github.com/redphx/better-xcloud/issues/26)) |
| RTT | Round Trip Time | The number of seconds it takes for data to be sent from your device to the server and back over (similar to ping, lower is better) |
| BR | Bitrate | The amount of data the server sent to your device in the last second |
| PL | Packets Lost | The total number of packets lost |
| FL | Frames Lost | The total number of frames dropped prior to decode or dropped because the frame missed its display deadline |
This info is provided by WebRTC API. You can use browser's built-in tool to see more info:
- Chrome/Edge/Chromium variants: `chrome://webrtc-internals`
- Firefox: `about:webrtc`
Colors:
- Red = Bad
- Yellow = Okay
- Green = Good
- White = Great
⚠️ Having this info on all the time will drain the battery faster, so I'd recommend only using it when having network problems.
## Capture screenshot
- This feature is only available in **Better xCloud**.
- Works on both desktop & mobile, but it was designed for mobile users.
- It's client-side only.
- It captures the current frame of the stream and saves it to a file. That means you won't get the raw quality like when you play on a console, but it's still better than using the built-in screenshot feature on your phone.
- Screenshot's resolution & quality depend on the quality of the stream at the moment.
- Screenshot doesn't include touch UI, notification bar... only the gameplay.
- There might be a slight delay.
- ⚠️ It's not possible to map the Share/Screenshot button on your controller to this feature.
### How to capture screenshot
1. Enable this feature in the Settings.
2. Play a game.
3. Tap once at the bottom left/right (depending on your setting) to show the Screenshot button.
4. Tap on that button to capture screenshot.
5. Screenshot will be saved by the browser.
6. You can double-tap that corner to capture screenshot.
<img width="600" alt="Screenshot button" src="https://github.com/redphx/better-xcloud/assets/96280/a911b141-5dc0-450a-aeac-30d9cf202b44">
## FAQ ## FAQ
1. **Why is it an Userscript and not extension?** 1. **Will I get banned for using this?**
I think it's very unlikely that you'll get banned for using this. Most of the features only affect client-side, except for switching region of streaming server (you'll connect to another server instead of the default one). If you want to be safe just avoid using that. As always, use it as your own risk.
2. **Why is it an Userscript and not an extension?**
It's because not many browsers on Android support installing extensions (and not all extensions can be installed). It's because not many browsers on Android support installing extensions (and not all extensions can be installed).
2. **I see "???" button instead of server's name** 3. **I see "???" button instead of the server's name**
That means Tampermonkey is not working properly. Please make sure you're using the latest version or switch to a well-known browser. That means Tampermonkey is not working properly. Please make sure you're using the latest version or switch to a well-known browser.
3. **Can I use this with the Xbox Android app?** 4. **Can I use this with the Xbox Android app?**
No you can't. You'll have to modify the app. No, you can't. You'll have to modify the app.
4. **Will you able to enable "Clarity Boost" feature on non-Edge browsers?** 5. **Will you be able to enable the "Clarity Boost" feature on non-Edge browsers?**
No. "Clarity Boost" feature uses an exclusive API (`Video.msVideoProcessing`) that's only available on Edge browser for desktop at the moment. No. The "Clarity Boost" feature uses an exclusive API (`Video.msVideoProcessing`) that's only available on Edge browser for desktop at the moment.
## User-Agent
Moved to [wiki](https://github.com/redphx/better-xcloud/wiki/UserAgent).
## Acknowledgements ## Acknowledgements
**Better xCloud** is inspired by these projects: - [n-thumann/xbox-cloud-server-selector](https://github.com/n-thumann/xbox-cloud-server-selector) for the idea of IPv6 feature
- [n-thumann/xbox-cloud-server-selector](https://github.com/n-thumann/xbox-cloud-server-selector) - Icons by [Adam Design](https://www.iconfinder.com/iconsets/user-interface-outline-27)
## Disclaimers ## Disclaimers
- Use as your own risk. - Use as it your own risk.
- This project is not affiliated with Xbox in any way. All Xbox logos/icons/trademarks are copyright of their respective owners. - This project is not affiliated with Xbox in any way. All Xbox logos/icons/trademarks are copyright of their respective owners.

5
better-xcloud.meta.js Normal file
View File

@@ -0,0 +1,5 @@
// ==UserScript==
// @name Better xCloud
// @namespace https://github.com/redphx
// @version 1.8.1
// ==/UserScript==

File diff suppressed because it is too large Load Diff