# StreamWeaver service registration guide

Updated October 26, 2026. Applies to StreamWeaver 0.3.3 for Fabric / Minecraft Java 26.2 / Windows x64.

StreamWeaver is the new name of StreamWeave. Existing settings and key bindings are retained. Registration instructions below do not mean every service already has a one-click sign-in integration: this release renames the mod and includes this guide; its connection methods are unchanged.

## What to prepare as the publisher

Use **StreamWeaver** as the app/product name. Prepare a support email, description, icon, and a website you control. For public OAuth distribution, prepare accurate privacy information and any terms or domain verification the provider requests. Describe the real behavior: a client-side Minecraft HUD displaying selected chat messages and supported LIVE events. Do not claim to be an official Minecraft or platform product.

Public app/client IDs can identify a distributed application. Private bot tokens, user access/refresh tokens, API signing keys and confidential app secrets must not be included in a shared JAR. A hosted bot/relay, if added, must authorize each user's selected channels separately.

## 1. Twitch — public application registration

1. Open https://dev.twitch.tv/console/apps and sign in to your publisher account. Verify its email and enable two-factor authentication.
2. Choose **Register Your Application**, use an available name identifying StreamWeaver, and select the appropriate category.
3. If a redirect URL is required by the console, add `http://localhost:3000`. The current device-code sign-in does not use that redirect.
4. Set **Client Type: Public**, save, then open **Manage** and copy the **Client ID**.
5. In Minecraft: F10 → Connections → Twitch. Enter the Client ID and your channel username; use Page > if the field is on another page. Choose Sign in, approve the code on Twitch as the account you stream from, return, enable Connect and Save & reconnect.

**Current build:** device sign-in requests only `user:read:chat`; no client secret is needed. Manual matching user tokens are also supported. **For distribution:** provide the publisher-owned Client ID for integration into a subsequent release, so users can sign in without creating their own app. This release has no publisher ID preconfigured.

Sources: https://dev.twitch.tv/docs/authentication/register-app/ and https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/ and https://dev.twitch.tv/docs/chat/authenticating/

## 2. YouTube LIVE — Google Cloud project

1. Open https://console.cloud.google.com/ and create a project named StreamWeaver.
2. In APIs & Services → Library, enable **YouTube Data API v3**.
3. **For the current build:** create an API key in Credentials, restrict its API access to YouTube Data API v3, and enter it with an active public live-video URL/ID in Connections → YouTube. Monitor the project's quota.
4. **For the future sign-in flow:** configure Google Auth Platform branding, audience, contact details and data access; create an OAuth client of type **Desktop app** for a locally handled desktop login. Keep the client configuration for the implementation. Use testing with your account initially.
5. Prepare the verified website/privacy information and complete Google's applicable production verification requirements before broader distribution. Production availability is not guaranteed just by creating a client.

**Current build:** API key + public live-video ID; Google OAuth is not implemented yet. A desktop OAuth flow would open the system browser and return to a local callback. Publisher-wide quota and consent verification need planning before public release. Do not bundle a private API key to bypass that work.

Sources: https://developers.google.com/youtube/v3/getting-started and https://developers.google.com/youtube/data/guides/auth/installed-apps and https://support.google.com/cloud/answer/13464321

## 3. TikTok LIVE — current connector versus official app registration

**For the current LIVE adapter, you do not register a TikTok developer app.** Enter the LIVE creator's username in Connections → TikTok. Enable Comments and Viewer arrivals separately. The bundled connector is unofficial; access can change, a third-party Euler signing key may be needed, and not every arrival is guaranteed.

If a signing key is needed, use the connector provider's instructions at https://www.eulerstream.com/ and keep that credential private. It is not a TikTok Client ID.

For a separate official **TikTok sign-in** feature: open https://developers.tiktok.com/, create a developer account, Manage apps → Connect an app, name it StreamWeaver, select Desktop, add Login Kit, and supply the requested website, redirect, privacy/terms and verified URLs. Test in a sandbox and submit the actual integration for review.

**Important:** the public Login Kit/scopes documentation does not document a general LIVE-comment or viewer-arrival scope. Therefore a normal app registration should not be treated as approval for those events. That is a conclusion from the published product/scopes list, not evidence of access to a private TikTok partner API. Official Login Kit is not implemented in this release.

Sources: https://developers.tiktok.com/doc/getting-started-create-an-app and https://developers.tiktok.com/doc/tiktok-api-scopes and https://github.com/zerodytrash/TikTok-Live-Connector

## 4. Discord — bot application and server installation

1. Open https://discord.com/developers/applications and create an application named StreamWeaver.
2. On Bot, generate/reset the bot token. Enable **Message Content Intent** for reading ordinary channel text.
3. Configure a **Guild Install** link with the `bot` scope. Grant View Channel for the selected channels; grant Read Message History if needed for your chosen workflow. Administrator permission is unnecessary for this read-only adapter.
4. Install the bot to a server you manage. Enable Discord Developer Mode and copy the IDs of the channels you want in the HUD.
5. In the current mod, enter the bot token and channel IDs. The token authenticates the bot, not your personal Discord account.

**For distribution:** a shared bot token belongs on a hosted relay, not inside the JAR. Users could then approve the bot installation and choose permitted channels. That hosted flow is not implemented. Discord may require app verification and privileged-intent approval as the bot grows. Ordinary account login does not grant a bot access to all of that person's channel text.

Sources: https://docs.discord.com/developers/quick-start/getting-started and https://support.discord.com/hc/en-us/articles/115002192352-Automated-User-Accounts-Self-Bots

## 5. Kick — application registration plus event relay

Kick's official setup guide instructs you to create/sign into a Kick account, enable two-factor authentication, and open Account Settings → Developer. Create a StreamWeaver application, specify the redirect URL actually used by your integration and retain its generated Client ID and Client Secret privately as appropriate.

**Current build:** Kick is an external-relay input, not a direct Kick connection. Registration alone will not connect it. A relay must implement Kick OAuth, subscribe to the supported chat events, receive and verify Kick webhooks and forward normalized events to the mod's authenticated local `/api/ingest` endpoint. The callback/relay infrastructure must be designed before choosing its production URLs.

Keep the app secret on that relay. A future integrated installation could let each user authorize Kick while the publisher maintains the relay. That service is not included in this JAR.

Sources: https://docs.kick.com/ and https://github.com/KickEngineering/KickDevDocs/blob/main/getting-started/kick-apps-setup.md and https://docs.kick.com/llms.txt

## 6. Custom relay — no provider registration of its own

Custom is an input for your own authorized adapter, not another chat platform. Enable it and have your adapter forward the event format described in PROTOCOL.md to `/api/ingest`, using the private local pairing token. Any upstream service registration is determined by the platform your adapter connects to. Do not expose the localhost pairing token in a public application.

## Suggested order

Start with Twitch and the Google Cloud project. Test TikTok's username connection separately. Create a Discord bot only if those channels are needed. Kick requires relay development before registration produces a working HUD feed.

When preparing a release, public Client IDs may be supplied for the corresponding integration; private credentials should be entered locally or through an appropriate secret-management path. Never post bot tokens, signing keys, user access/refresh tokens or confidential secrets into a shared issue, screenshot or public mod file.
