> ## Documentation Index
> Fetch the complete documentation index at: https://ogh.riturajbasak.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Ogh FAQ: Setup, Multi-Platform Streaming, and Privacy

> Answers to common Ogh questions on first-time setup, streaming to multiple platforms, security, privacy, permissions, and troubleshooting.

Whether you are setting up Ogh for the first time or running into an unexpected issue mid-stream, this page covers the questions users ask most often. Browse by category or use your browser's find feature to jump straight to what you need.

## Getting started

<AccordionGroup>
  <Accordion title="Do I need a Google or Twitch account to use Ogh?">
    No. Open **Settings → Destinations**, add a manual RTMP destination, and you can stream to any RTMP or RTMPS server without signing in to any account. Manual RTMP is fully self-contained and requires no provider authentication at all.
  </Accordion>

  <Accordion title="Does Ogh require Google Play Services?">
    No. Manual RTMP is fully local and has no dependency on Google Play Services. YouTube authorization uses the PKCE flow inside your system browser — not Google Sign-In — so it works on devices without Play Services. Twitch uses the Device Authorization flow, which also requires no Play Services.
  </Accordion>

  <Accordion title="Why does Preview say I need to configure a destination first?">
    Ogh's Preview screen only becomes available once at least one destination exists in Settings. This prevents you from preparing a stream that has nowhere to go. Add a manual RTMP server or connect YouTube or Twitch under **Settings → Destinations** to unlock Preview.
  </Accordion>
</AccordionGroup>

## Streaming

<AccordionGroup>
  <Accordion title="Can I stream to YouTube and Twitch at the same time?">
    Yes. Enable both destinations in Settings. Ogh encodes your stream once and sends the same encoded output to all enabled destinations simultaneously — there is no quality penalty for adding more destinations.
  </Accordion>

  <Accordion title="Can I switch between screen and camera while live?">
    Yes. Tap **Screen**, **Camera**, or **Flip Camera** while your session is running. Ogh reuses the same encoder and RTMP connections — switching sources does not disconnect or reconnect any outputs.
  </Accordion>

  <Accordion title="What happens if one of my destinations fails mid-stream?">
    Ogh continues streaming to all remaining destinations. The session only enters an error state after every configured output has disconnected or failed. A single destination going down does not end your stream to other destinations.
  </Accordion>

  <Accordion title="Can I change video quality mid-stream?">
    No. Resolution, frame rate, and bitrate are locked after you tap **Go Live** because changing these parameters requires restarting the encoder and would interrupt all outputs. Configure your quality settings in **Settings → Stream** before starting.
  </Accordion>
</AccordionGroup>

## Privacy & security

<AccordionGroup>
  <Accordion title="Where does my stream go?">
    Directly from your Android device to the destinations you enable in Settings. Ogh does not operate a media relay, recording server, or any kind of intermediary. Your stream never touches an Ogh server.
  </Accordion>

  <Accordion title="Is my stream key stored securely?">
    Yes. Manual stream keys and OAuth tokens are encrypted with AES-256-GCM using a non-exportable key held in the Android Keystore. They are never stored in plaintext, never written to logs, and never sent to Ogh. See the [Security & Privacy](/reference/security-privacy) page for full details.
  </Accordion>

  <Accordion title="Does Ogh collect any data about me?">
    No. Ogh has no analytics service, no telemetry pipeline, no advertising system, and no account server. The app operates entirely on your device.
  </Accordion>

  <Accordion title="Are the OAuth client IDs in the APK a security risk?">
    No. OAuth client IDs for native (public) clients are public identifiers — they are expected to be recoverable from any APK and do not grant access on their own. They are not secrets. Actual secrets — user tokens, stream keys, and signing keys — are never embedded in the APK.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Go Live fails immediately — what should I check?">
    Work through this checklist:

    1. Confirm at least one destination is **enabled** (toggle is on in **Settings → Destinations**).
    2. If using manual RTMP, verify your URL starts with `rtmp://` or `rtmps://` and contains no trailing spaces.
    3. Check that your stream key has no leading or trailing spaces.
    4. Confirm your internet connection is active and can reach the destination server.
  </Accordion>

  <Accordion title="System Audio is not available — why?">
    System Audio capture requires Android 10 (API 29) or newer. On Android 7 through 9, the MediaProjection API does not support playback audio capture, so Ogh uses microphone audio only. If your device runs Android 10 or later and the option is still missing, check that you have granted the MediaProjection consent when prompted.
  </Accordion>

  <Accordion title="My YouTube authorization keeps failing.">
    Make sure a capable browser app is installed on your device and can reach `accounts.google.com`. If the authorization page opens but the flow does not complete, try tapping **Disconnect** under **Settings → Platforms → YouTube** and then **Connect** again to restart from a clean state.
  </Accordion>

  <Accordion title="The Twitch device code expired before I could enter it.">
    Twitch device codes have a short validity window. Tap **Connect** again under **Settings → Platforms → Twitch** to restart the Device Authorization flow and receive a fresh code. Have the verification page ready at [https://www.twitch.tv/activate](https://www.twitch.tv/activate) before you start.
  </Accordion>
</AccordionGroup>
