Videos
How to Live Stream on DynTube Using OBS
OBS needs two values from DynTube: a Server URL and a stream key. Both are on the live stream's Connect tab. Paste them into OBS as a Custom service, press Start Streaming, then reload the stream page to see Status read Live.
OBS Studio is a free, open-source encoder for Windows, macOS and Linux, documented at obsproject.com. DynTube hands your encoder nothing but an RTMP server URL and a stream key, so there is no DynTube plugin, integration or DynTube-specific build of OBS to install. The Connect tab that issues those two values describes them as being for "OBS, Streamlabs, or similar tools".
Before you start
- Create the live stream first. Credentials belong to a stream, not to your account: Live Streaming → Live Streams (/live), then New Stream (/live/new). There is no account-wide key to reuse.
- Choose the region when you create the stream. The ingest server you will paste into OBS is that region's origin, and the update path carries no region field — so the region a stream is created in is the region it keeps.
- You need a role that can view the stream to read the credentials, and a role that can manage live streams to end one from the dashboard.
- Install OBS Studio from obsproject.com. For anything on the OBS side of this setup — installing it, the Stream settings screen, encoder options — OBS's own documentation is the authority; DynTube supplies only the two values below.
Step 1 — copy the credentials from the Connect tab
- Open Live Streaming → Live Streams and select the stream.
- Open the Connect tab — headed "Encoder settings", with the note "Use these values inside OBS, Streamlabs, or similar tools."
- Copy Server URL with the copy button beside it.
- Copy Stream key. It is masked by default; the eye button reveals it and the copy button copies it whether it is revealed or not.
What the two values look like
| Stream | Server URL | Stream key |
|---|---|---|
| Current streams | rtmp://{region origin}/live — the app is always /live, and the host is the origin of the region you picked. | The key with ?auth={application name} appended. The application name is also shown on the Info & Security tab. |
| Legacy streams | rtmp://{host}/{application name} — the application name is in the URL instead. | The key on its own, with no suffix. |
You do not have to work out which kind you have — the Connect tab shows the correct pair for that stream. The distinction matters only because older instructions, and older stream keys of your own, are not interchangeable between the two.
If Server URL reads "Not available"
For a current stream whose region origin cannot be resolved, the dashboard deliberately shows nothing rather than an address that would pair wrongly with the auth-suffixed key and fail at connection time. Do not reconstruct a URL by hand and do not reuse one from another stream. Reload the page, and if it stays empty, contact support with the stream name and region. What the page is reporting is that it could not resolve an origin for the region — it is not a statement about the stream's own state either way.
Step 2 — configure OBS
- In OBS, open Settings → Stream.
- Set Service to Custom… — do not pick DynTube from the service list; there is no DynTube preset, and picking any other service sends your stream to that service.
- Paste the Server URL into Server.
- Paste the stream key into Stream Key, exactly as copied, suffix included.
- Leave "Use authentication" off. The key carries the authorisation; there is no separate username or password.
- Click Apply, then OK.
Output settings
DynTube issues a Server URL and a stream key and nothing else: the Connect tab prescribes no resolution, bitrate, keyframe interval or rate-control mode, and there is no DynTube-specific encoder profile to match. Choose those values in OBS under Settings → Output, following OBS's own documentation and its built-in guidance for your hardware and connection. If we ever do require a specific setting, it will appear on the Connect tab beside the credentials it applies to.
Step 3 — go live and verify it
- Press Start Streaming in OBS. Its status bar should show a bitrate and a rising duration; if it disconnects immediately, the Server URL and key are the first thing to re-check.
- Back on the stream page, reload it. The Status tile then reads Live instead of Scheduled, and the Viewers tile begins counting. Reloading is the step that matters: the page's own 30-second auto-refresh only starts once it is already showing a live stream, so a page sitting on Scheduled will not flip by itself.
- Open the Watch tab and load the player URL yourself. That is the same link a viewer uses, and it is the only real proof that the stream is playable rather than merely received.
- When you are finished, stop in OBS. End Stream on the stream page disconnects the publisher from the platform side, and appears only for a current stream that is live and only for a role that can manage streams.
| What you see | Likely cause | What to do |
|---|---|---|
| OBS fails to connect, or drops straight after connecting | The key was retyped, truncated, or its ?auth= suffix was removed. | Re-copy both values with the copy buttons and paste them again. |
| OBS says the stream is running, but Status stays off Live | A page showing Scheduled does not auto-refresh — the 30-second poll only runs once the page already sees the stream as live. Failing that, the credentials belong to a different stream. | Reload the page. If it still reads Scheduled, re-copy both values from this stream's Connect tab. |
| Server URL is empty | The region origin did not resolve, so the dashboard withheld the address. | Reload; if it stays empty, contact support rather than building a URL by hand. |
| Viewers can reach the page but playback does not start | Playback protection, not ingest — the stream may require viewers to be authenticated. | Open the stream's Info & Security tab, which shows whether Authentication, Encryption and Recording are enabled for this stream. |
| No End Stream button | The stream is legacy or not currently live, or your role cannot manage streams. | Stop from OBS. Legacy streams have no platform-side stop. |
Keep the stream key private
The stream key is a credential, not an identifier. Anyone holding it can broadcast to your stream, which is why the dashboard masks it, warns beside it, and never puts it in an embed code or a share link. Do not paste it into an image, a support ticket, a chat message or a published guide — the Server URL is safe to show, the key never is.
- Read the key from the Connect tab only, and only when you are about to paste it into an encoder.
- Use one stream per broadcaster rather than sharing a single key with several people.
- Rotate the key whenever a machine, a contractor or a recording that captured it is out of your control.
Rotating the key
Rotation is an API action today, not a dashboard button. It replaces the key on a current stream and returns the new value in that one response; no later call to the ingest API will return it, because that API only ever reports the last four characters. That is a property of the ingest API, not of the key. Rotation writes the new key onto the stream itself, and the dashboard reads the stream record directly — so the Connect tab goes on showing and copying the current key, the rotated one, to anyone who can view the stream.
| Call | Scope | What it returns |
|---|---|---|
| GET /v2/live-streams/{liveStreamId}/ingest | live_streams:read | The ingest URL, the protocol, when the key was last rotated, and a hint that is only the key's last four characters. This call never returns the raw key — the dashboard's Connect tab is a separate, differently authorised read of the stream record, and that one does show it. |
| POST /v2/live-streams/{liveStreamId}/ingest:rotate-key | live_ingest:write | A newly issued key. This response is the only place in the ingest API that carries it; afterwards this API returns only the last-four hint. The dashboard's Connect tab still shows the current key. |
Rotation applies to current streams only. Asking for it on a legacy stream is refused with "Legacy live streams are read-only" — that stream's key can only be replaced by creating a new stream, which is also the way to get the current ingest shape and the platform-side End Stream control.
Limitations to be aware of
- Credentials are per stream. There is no account-level key, and a key from one stream will not publish to another.
- The dashboard shows credentials and can end a live stream; it does not rotate keys. Rotation is the API action above.
- Legacy streams are read-only for ingest: no rotation, no platform-side End Stream, and a different Server URL and key shape from current streams.
- Region is fixed at creation, and the ingest server follows it: editing a stream does not send a region, so the only way to move a stream to another region is to create a new one there.
- Rotating a key does not put it out of reach. It invalidates the old value, but anyone who can view the stream can reveal and copy the new one from the Connect tab — who can open the stream is the real control over who can broadcast to it.
Related Articles
- Live Streaming API
- Get Live Streaming Recording API
- Setting Up Webhooks API
Something missing or wrong here? Tell us and we will correct it. New to DynTube? Start with uploading and embedding.