StreamHub — connecting your social accounts
🍼 ELI5
Most platforms here work like Discord: paste in a link/key once, and StreamHub can post for you from then on. A few (Facebook, Instagram, X, etc.) use a proper login screen instead, same as connecting any app to your social accounts.
This guide is for StreamHub users. If you are building or deploying your own StreamHub instance and need to register developer apps and set up API keys, see the operator setup guide (docs/streamhub-platform-setup.md in the project repository) instead.
Editions
| Edition | Platforms you can connect |
|---|---|
| StreamHub (Demo) | Discord only |
| StreamHub Pro | Discord, Facebook, Instagram, YouTube, X (Twitter), Threads, TikTok, BlueSky |
Discord
Discord does not use a login flow. Instead, you paste an incoming webhook URL directly:
- In Discord, open Server Settings → Integrations → Webhooks → New Webhook (or a channel's Edit Channel → Integrations → Webhooks). You need the Manage Webhooks permission.
- Choose the channel, set a name and avatar, and click Copy Webhook URL.
- In StreamHub → Connections → Discord, paste the URL and give it a name, then click Add webhook.
One webhook = one channel. Add multiple webhooks to post to multiple channels.
The webhook URL is a posting secret — anyone with it can post to the channel. You can delete a webhook in Discord's settings to revoke it permanently.
What you can post to Discord
Text messages, an embedded image (by URL), or an uploaded file (image or video).
Facebook (Pro)
Posts photos and videos to a Facebook Page you manage.
Connecting
- Open Connections → Facebook and click Connect with Facebook.
- Your browser opens Facebook's authorization screen. Log in with the account that manages the Page you want to post to, then approve the requested permissions.
- StreamHub stores the connection. The Connections page shows the name of the Page it will post to.
What you can post to Facebook
Text, an attached image or video (local file), or an embedded image URL.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| "META_APP_ID env var is not set" | The operator hasn't configured Meta credentials | Ask the app operator to follow the Meta app setup in streamhub-platform-setup.md |
| No Pages listed after login | Your account doesn't manage any Pages | Create a Facebook Page at facebook.com/pages/create first |
| "Meta App Review required" | The Meta app is still in development mode | The operator needs to add you as a tester, or submit the app for review |
Instagram (Pro)
Posts photos and Reels to an Instagram Business or Creator account linked to a Facebook Page.
Requirements
- A Facebook Page you manage with an Instagram Business or Creator account connected to it (set up at Facebook → Settings → Linked Accounts, or via Instagram → Edit Profile → Switch to Professional Account).
Connecting
- Open Connections → Instagram and click Connect with Instagram.
- Log in with the Facebook account that manages the linked Page.
What you can post to Instagram
Photos and videos — but Instagram posts require a publicly hosted media URL, not a local file. In the Post composer, select an Instagram destination and you will see a "Media URL" field instead of a file picker. Paste any URL pointing to an image or video accessible on the internet. For video posts, the video must meet Instagram's Reels requirements (vertical or square, up to 15 minutes for Reels).
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| "No Instagram Business/Creator account is linked to any Page you manage" | No linked IG account | Connect an Instagram Business/Creator account to your Facebook Page first |
| Post fails with a container error | Media URL is not publicly reachable | Make sure the URL returns the file without redirects or authentication |
YouTube (Pro)
Uploads full-length videos and Shorts to your YouTube channel.
Connecting
- Open Connections → YouTube and click Connect with YouTube.
- Your browser opens Google's consent screen. Sign in with the Google account that owns your channel and approve the requested permissions.
- The Connections page shows your channel name once connected.
What you can post to YouTube
Video files (mp4, mov, webm) picked from your local drive. You also provide:
- Title (required)
- Description (optional — goes in the description field of the upload)
- Upload as Short — when checked, StreamHub adds
#Shortsto the description. YouTube auto-detects Shorts based on aspect ratio (vertical/square) and duration (≤3 minutes). Make sure your video is already in the correct format; StreamHub does not re-encode files.
What "Upload as Shorts" does and doesn't do
StreamHub adds #Shorts to the description, which is the signal YouTube's own documentation recommends. Whether the video actually appears on the Shorts shelf depends entirely on the video's aspect ratio and length — YouTube makes that determination, not StreamHub. A landscape video uploaded with the Shorts checkbox checked will upload successfully but will not appear as a Short.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| "No YouTube channel found for this account" | The Google account has no channel | Create a YouTube channel at youtube.com first |
| Upload stalls or times out | Large file + slow connection | Try a shorter or lower-resolution version of the video first |
| Video appears on Shorts shelf unexpectedly | Video is vertical and under 3 minutes | Expected — YouTube's detection is based on the video's content, not just the checkbox |
X / Twitter (Pro)
Posts tweets with optional image or video attachment.
This platform only appears if the operator has configured a Twitter developer app. If you do not see an X section in Connections, the feature is not configured in your build.
Connecting
- Open Connections → X and click Connect with X.
- Your browser opens X's authorization screen. Log in with your X account and approve.
What you can post to X
Text, and optionally one attached image or video. Standard X character limits apply (280 characters for free accounts, up to 25,000 for X Premium).
Threads (Pro)
Post text and media to your Threads account.
Connecting
- Open Connections → Threads and click Connect with Threads.
- Your browser opens Threads' authorization screen. Log in with the account you want to post from and approve.
- The Connections page shows your Threads username once connected.
What you can post to Threads
Text posts, or text with an optional media attachment. Media must be at a publicly hosted URL — Threads, like Instagram, has no direct binary upload path. Leave the media URL field blank to post text only.
- Text-only: just write in the message box — no media URL required.
- Image: paste a public image URL in the "Threads media URL" field.
- Video: paste a public video URL — Threads processes the video before publishing, which may take up to a couple of minutes.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| "THREADS_CLIENT_ID env var is not set" | The operator hasn't configured Threads credentials | Ask the app operator to follow the Threads setup in streamhub-platform-setup.md |
| Media container error | The URL is not publicly reachable or is a wrong format | Use a direct public URL (no redirects, no authentication) |
| Post fails after video upload completes | Video format not supported by Threads | Convert to MP4 (H.264) before uploading |
TikTok (Pro)
Posts videos to TikTok, via the operator's hosted relay (see streamhub-platform-setup.md for how this works under the hood).
Connecting
- Open Connections → TikTok and click Connect with TikTok.
- Your browser opens TikTok's authorization screen. Log in and approve.
- The Connections page shows your TikTok display name once connected.
What you can post to TikTok
A video file. Depending on whether the operator's TikTok app has passed audit for your account:
- Direct publish — posts immediately with the privacy level you choose.
- Inbox draft (fallback, used automatically for non-tester accounts) — the video is sent to your TikTok inbox; open the TikTok app to review and finish posting it yourself.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| "TIKTOK_CLIENT_KEY env var is not set" | The operator hasn't configured TikTok credentials | Ask the app operator to follow the TikTok setup in streamhub-platform-setup.md |
| Post lands in your TikTok inbox instead of posting directly | Your account isn't a tester on an audited app yet | Either post manually from the TikTok app, or ask the operator to add you as a tester |
| "TikTok OAuth timed out after 5 minutes" | Browser login wasn't completed in time | Try connecting again — the relay holds the authorization result for 24h even if the app gives up waiting sooner |
Discord — StreamSync integration
StreamHub can also expose a local WebSocket server that StreamSync connects to, so a StreamSync trigger can fire a post through StreamHub's destinations. See Connecting to StreamSync for how to wire that up.