4.1 KiB
Known issues and open questions
Things that are known not to work, haven't been verified, or were tried and dropped. Planned features are in the features/ folder; limits of the approach (DRM, WebXR permissions, Firefox) are in ARCHITECTURE.md.
Not verified yet
- Signed-in Home feeds other than the main one, History, Playlists, Watch later and
Liked videos (those were verified in 0.35) (
youtube-home.js). - Live chat typing (0.81.0): sending a message was checked from the console (text only); in the headset, check typing, Send / Enter, a channel emoji in a message (sent by its id, as YouTube's client does), and a chat you can't type in (YouTube's reason should show instead of the field: that shape wasn't seen yet).
- Live chat (0.79.0): written from probes of real chats (text messages, the welcome notice,
emojis, banners) and, for what didn't show up during the probes, from the shapes YouTube
is known to send: Super Chats, Super Stickers, memberships and gifted memberships, the
owner / moderator / member badges, deletions, pinned messages (
youtube-chat.js). Check them on a busy stream. (The README's "How you can help" asks users to report them.) - Chat replays (0.87.0): work in the headset (plays along, pauses, seeks). Untried: an ad during a replay (its time could count as a seek and reload the chat). With YouTube's chat hidden the replay is still found (probe 11); if its chat frame were ever missing, there's no pop-out replay page to fall back on (HTTP 400), so it would end in "Couldn't load the chat".
Known quirks
-
Captions on 180°/360° need improvement (the maintainer, 0.77.1: "good enough for now"): they sit 22° below the horizon and glide after your view once you look 25° aside (
captions-overlay.jsheadAnchor,SETTINGS). Ideas to try: a placement setting (height, distance, size), following on a slower curve or only after a pause, pinning them to the video's front like the pause symbol, a fade while they move. -
No controller vibration (0.73.1): Chrome gives the Steam Frame's controllers no vibration API (docs/hardware.md), so the Vibration switch is greyed out with a note.
-
Glass popups blur only the video (seen by the maintainer in 0.67.2): the glass reads the video's own picture (the renderer's
backdrop(),panel-pass.js), so a floating menu, the dialog or the search suggestions show the blurred video even where they stand in front of the controls panel or a side panel, not the buttons and panels behind them. Possible fix, put off by the maintainer: while a popup or dialog is open, copy the finished view (each eye, after everything else is drawn) into a texture with mipmaps and let the popup's glass blur that instead (blitFramebufferfrom the layer's framebuffer, which may be multisampled; check the browser allows it). Costs a full-view copy and blur each frame, only while a popup is open. -
A channel's Featured tab is missing for channels you subscribe to unless the creator set a "featured video for returning subscribers". That's YouTube's behaviour.
-
The Channel header's subscribed state can be wrong for a channel whose Home tab features other channels; it's only used when the watch page doesn't say.
-
Text matching assumes English YouTube: some readers recognise YouTube's own words (the "All" chip, "Joined", an ad's "1 of 2", the Jump ahead pill). This is about what YouTube writes; StreamXR's own words follow the interface language (Settings → Language).
-
Replies to replies (YouTube's newer nested comment threads) aren't shown; one level is.
Tried and dropped
- A sphere distance for 180° / 360° (like the cinema screen's Distance slider): spheres are drawn "at infinity" (rotation only), and in 180° it glitched instead of moving.
- Detecting VR180 by the frame's shape: VR180 streams are often 16:9 below 2160p; the player's VR180 flag is used instead.
- Clicking YouTube's Skip ad button from a script: YouTube ignores anything but a real click, hence the separate Skip Helper extension.