You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Quick download.](https://nightly.link/Kyagara/rt/workflows/build.yaml/main/bundles.zip) (does not require GitHub account).
42
42
43
43
Github Actions builds are available [here](https://github.com/Kyagara/rt/actions).
44
44
@@ -65,7 +65,7 @@ If the app is not running, it will be started with the URL as an argument, if it
65
65
-`rt://twitch/zfg1`
66
66
-`rt://www.twitch.tv/zfg1`
67
67
68
-
If using extensions like [LibRedirect](https://github.com/libredirect/browser_extension), you can set a frontend for YouTube like Invidious and set the instance URL to `rt://yt`. The same can be done for Twitch, you can set the frontend to SafeTwitch and set the instance URL to `rt://tw`.
68
+
If you are using extensions like [LibRedirect](https://github.com/libredirect/browser_extension), you can set a frontend for YouTube like Invidious and set the instance URL to `rt://`. The same can be done for Twitch, you can set the frontend to SafeTwitch and set the instance URL to `rt://`.
69
69
70
70
### Paths
71
71
@@ -85,21 +85,23 @@ Logs:
85
85
86
86
`YouTube`:
87
87
88
+
The feed uses YouTube's rss feed to retrieve videos to avoid rate limits, this sadly does not contain video duration.
89
+
88
90
Using the excellent [RustyPipe](https://crates.io/crates/rustypipe) library to interact with YouTube, its recommended to install [rustypipe-botguard](https://crates.io/crates/rustypipe-botguard) to use a YouTube player instead of the embedded one.
89
91
90
92
```bash
91
93
cargo install rustypipe-botguard
92
94
```
93
95
94
-
The feed uses YouTube's rss feed to retrieve videos to avoid rate limits, this sadly does not contain video duration.
96
+
The watch page will try to use RustyPipe to retrieve a YouTube player, if it fails, it will use Vidstack's YouTube [provider](https://vidstack.io/docs/player/api/providers/youtube/) to play videos via embeds, this fallback has the drawbacks of not being able to play videos that disallows embedding and not being able to select a video quality. You have the option to switch between them in the Watch page.
95
97
96
-
The watch page will try to use RustyPipe to retrieve a YouTube player, if it fails, it will use Vidstack's YouTube [provider](https://vidstack.io/docs/player/api/providers/youtube/) to play videos via embeds, this fallback has the drawbacks of not being able to play videos that disallows embedding and not being able to select a video quality. You can also switch between them.
98
+
The player currently doesn't show the quality selection correctly, as there are multiple codecs for the same quality, which will show duplicates.
97
99
98
100
`Twitch`:
99
101
100
-
The player uses a custom [hls.js](https://github.com/video-dev/hls.js/) loader that communicates with the backend to modify the streams m3u8 manifests, this is what allows for ad blocking as the backend can detect ads and switch to a backup stream until ads are over, this was inspired on[TwitchAdSolutions](https://github.com/pixeltris/TwitchAdSolutions) method of switching streams.
102
+
The player uses a custom [hls.js](https://github.com/video-dev/hls.js/) loader that communicates with the backend to retrieve and modify the m3u8 manifests, this is what allows for ad blocking as the backend can detect ads and switch to a backup stream until ads are over, this was inspired by[TwitchAdSolutions](https://github.com/pixeltris/TwitchAdSolutions) method of switching streams.
101
103
102
-
The backend uses queries from the Twitch API to retrieve user data and stream playback.
104
+
The backend uses GQL queries from the internal Twitch API to retrieve user data and stream playback.
0 commit comments