Module: LCKStreaming | Version: 1.0 | Platforms: Win64, Android (Quest)
Overview
LCKStreaming uses a device pairing flow for authentication. The user is shown a short code in-game which they enter on a web dashboard from any device (phone, PC, tablet). The SDK polls the backend until the code is confirmed, then fetches the user profile and streaming configuration. This approach avoids keyboard input in VR — the user pairs on a companion device.Device Pairing Flow
Starting Login
CallStartLogin() to begin the pairing process. The SDK creates a device login attempt and broadcasts the pairing code.
Displaying the Pairing Code
WhenOnPairingCodeReceived fires, display the code prominently in your UI alongside the URL dashboard.liv.tv/pair.
Polling Mechanism
After the pairing code is issued, the SDK automatically polls the LIV backend every 2.5 seconds to check whether the user has entered the code. No manual polling is required. On success, the SDK:- Stores the auth token internally
- Calls
GetUserProfile()to fetch streaming configuration - Broadcasts
OnAuthenticated - Broadcasts
OnStreamingConfigReceivedwith the target type and subscription info
The pairing code has an expiration time. If the code expires before the user enters it, call
StartLogin() again to generate a new code.Canceling Login
If the user wants to cancel the pairing process:Profile and Subscription Info
After authentication, theOnStreamingConfigReceived delegate provides the user’s streaming target and subscription status.
Types
Querying State After Login
Refreshing Configuration
If the user changes their streaming target on the dashboard, refresh the config:Logout
CallLogout() to clear the stored auth token and reset the subsystem state.
LIV Hub Companion App (Android)
On Android/Quest, users can authenticate and manage streaming settings through the LIV Hub companion app instead of a web browser.LaunchHub() and IsHubInstalled() are only functional on Android. On other platforms, IsHubInstalled() returns true (no separate hub dependency) and LaunchHub() is a no-op.Error Handling
Authentication errors surface through theOnStreamError delegate and in LogLCKStreaming output.
Common error scenarios:
Complete Authentication Example
Troubleshooting
Pairing code not appearing
Pairing code not appearing
- Verify
bEnableStreamingis enabled in project settings - Check network connectivity to
dashboard.liv.tv - Ensure the Tracking ID is configured and valid
- Check
LogLCKStreamingfor API error responses
Authentication succeeds but no streaming target
Authentication succeeds but no streaming target
- The user has not configured a streaming target at
dashboard.liv.tv - Call
RefreshStreamingConfig(false)to re-fetch - Verify
HasStreamingTarget()andHasActiveSubscription()return values
OnLoggedOut fires unexpectedly
OnLoggedOut fires unexpectedly
- Check
GetLastLogoutReason()for details - The token may have been revoked server-side (e.g., 401/403 on config refresh)
- Network interruptions can cause auth state to reset
LIV Hub not launching on Quest
LIV Hub not launching on Quest
- Verify LIV Hub is installed with
IsHubInstalled() - The app package is
tv.liv.controlcenter - Fall back to standard pairing if Hub is unavailable
See Also
Streaming Overview
Architecture and prerequisites
Quick Start
Get streaming in 5 minutes