Web Viewer and Device Mode
The web viewer runs in your browser at https://qrtuber.com/app/. It captures the stream video, decodes the QRTuber QR overlay, and sends haptic state to a local output target.
For quick tests, the viewer can use the browser Gamepad API to rumble a compatible controller. For broader device support, it can also send haptic state to Intiface Central on your machine.
The same app also has Device mode at https://qrtuber.com/app/device/. It acts as a Lovense-compatible Intiface Central websocket device and turns Intiface commands into QT1 QR codes that can be used as a stream source.
Use this when you want to try QRTuber without installing the browser extension.
Requirements
- A browser that supports screen or tab capture.
- A stream that includes a QRTuber generator overlay, such as https://qrtuber.com/app/generator/.
- For gamepad rumble: a connected controller and browser support for Gamepad API haptics.
- For Intiface output: Intiface Central, with the server running.
The default viewer Intiface address is ws://127.0.0.1:12345.
Setup
- Open the stream you want to watch.
- Open https://qrtuber.com/app/ in another tab.
- Choose an output:
- For gamepad rumble, connect a compatible controller, select Scan in the Gamepad section, press a controller button while the scan is active, then select Enable.
- For Intiface output, start Intiface Central, connect your devices, confirm the Intiface address, then select Connect.
- Select Start capture and choose the stream source from the browser picker.
Browser capture differs by browser:
- Chrome/Chromium: choose the stream tab directly from the capture picker.
- Firefox: detach the stream into its own browser window, then capture that window. Firefox tab capture is less reliable for this workflow.
When capture is active, the preview shows the captured video and a bounding box when the QR code is found.
Reading the Viewer
The status area reports decode attempts, found frames, accepted frames, duplicates, misses, and parse errors. A rising accepted-frame count means the viewer is receiving fresh QRTuber frames.
The nine channel meters show the current haptic vector:
- live values mirror the streamer's generated haptic channels;
- grey meters mean the haptics state is stale;
- stale haptics are zeroed after the viewer timeout.
Stopping capture also zeros connected outputs.
Gamepad output folds the nine QT1 haptics channels into the controller's dual-rumble motors. Channel 1 drives both motors so simple single-channel generators work as expected; the remaining channels are split across the weak and strong motors.
Emergency Stop
The STOP button is local and authoritative. It immediately zeros outputs and latches the viewer into a stopped state. While stopped, newly decoded frames are ignored for haptic output.
Use Resume to allow haptic output again. Resume does not reconnect devices or restart capture by itself; it only clears the local stop latch.
Device Mode
Device mode is for streamers who want another Intiface-compatible app to drive the QR overlay. It connects to Intiface Central's Device Websocket Server as a virtual Lovense-style device, then renders incoming vibration commands as QT1 frames. The QR sequence advances when a vibration command arrives, or when you manually start a new session or zero the output.
Setup:
- In Intiface Central, enable Device Websocket Server.
- Add a Websocket Device using protocol
lovense. Useqrtuber-lovenseas the websocket identifier/name, then either keep the generated device address from the web app or copy your chosen address into the app. - Start the engine.
- Open https://qrtuber.com/app/device/.
- Connect to
ws://127.0.0.1:54817.
Use a URL like https://qrtuber.com/app/device/?overlay=1&connect=1&size=360&dark=000000&light=ffffff&id=qrtuber-lovense as the OBS browser source after the connection is working. Device mode overlay URLs support:
size=360for QR size, clamped to 128-800 pixels.ecc=Mfor QR error correction, usingL,M,Q, orH.dark=000000for the QR mark colour.light=fffffffor the QR background colour.server=ws://127.0.0.1:54817to override the Device Websocket Server address.device=8A3D9FAC2A45to override the Lovense websocket device address.id=qrtuber-lovenseto override the websocket handshake identifier/name.details=1to show frame metadata under the QR code.
The normal Device mode page includes Copy OBS URL in the QR panel. Use it after setting the server, identifier, device address, QR size, error correction, and colour controls. The page warns when the selected colours may not scan reliably.