How to get permanent links
Make VDO.Ninja guest invites, OBS browser sources, stream IDs, scenes, slots, SSO links, and invite links reusable so they keep working after refreshes or reconnects.
If your OBS browser source stops showing the right guest after they refresh, you usually need a stable stream ID.
Think of it like a phone number for a camera feed:
the guest link says, "publish as this ID" with
&push=ALICEthe OBS/browser-source link says, "watch that ID" with
&view=ALICEif the same guest comes back with the same ID, your OBS link keeps working
Quick answer for OBS
Give each regular guest their own &push value:
https://vdo.ninja/?room=MyShow&push=AliceCamera&label=AliceThen use the matching &view link in OBS:
https://vdo.ninja/?view=AliceCamera&solo&room=MyShowUse a different &push value for every guest or camera. Two people cannot publish with the same stream ID at the same time.
Pick the right method
One regular guest should always feed the same OBS source
Set &push=STREAMID on their guest link and use &view=STREAMID in OBS
You want VDO.Ninja to remember a generated ID for that browser
Use &permaid on the guest link
You want one OBS source per position, not per person
Use &slotmode, &slot=N, and &viewslot=N
You manually add guests to scenes and want that to recover after reconnects
Add &scenerestore to the director link
You sent an invite already and want to change where it points
Use a managed short link, such as invite.cam or another URL shortener
You want a lobby, sign-in, waiting list, and reusable host room
Use app.invite.cam
You need sign-in before a VDO.Ninja room is used
Use SSO and signed-in access, such as &auth or &requireauth
How stream IDs work
Every published camera, microphone, screen share, or media source needs a stream ID. When you use:
the guest is publishing as AliceCamera. A viewer or OBS source can watch it with:
Stream IDs are not permanent accounts. They exist while someone is actively using them. What makes a link "permanent" is reusing the same ID later.
Rules to remember:
stream IDs are case sensitive
keep them under 64 characters
unsupported characters may be changed to
_a stream ID cannot be used by two active publishers at once
use
&labelfor the human name shown in the interface
Refreshing vs rejoining
If a guest joins a room without a &push value, VDO.Ninja normally generates one once they start publishing. Their address bar may update with that new &push value.
That means:
refreshing the same tab often keeps the same stream ID
reopening the original invite link may create a new stream ID
copying a guest's address bar after they joined can accidentally share their private stream ID with someone else
For planned shows, give each regular guest a prepared invite link with a unique &push value.
Use &permaid when you do not want to pre-name everyone
&permaid saves a stream ID in that browser's local storage.
Example:
The first time the guest opens it, VDO.Ninja creates a stream ID and saves it in that browser. The next time the same person opens a link with &permaid, that saved ID is reused.
This is useful when you want a reusable guest link, but you do not want to make up a &push ID in advance.
Important limits:
it depends on the same browser and browser profile
it can break if the guest clears site data, changes devices, or uses private/incognito mode
it is not a cloud account or a reserved name
You can also set the first ID yourself:
After that, &permaid without a value can reuse the saved value in that browser.
Use scenes when OBS should not care who the guest is
Sometimes you do not want an OBS source for "Alice"; you want an OBS source for "the person currently in Scene 1".
Use a scene link in OBS:
Then the director manually adds the current guest to Scene 1. The OBS source stays the same even when the person changes.
Use slots when OBS should follow positions
Slots are good when your show has fixed positions, such as Host, Guest 1, Guest 2, or Piano.
Director link:
Guest link for a preferred slot:
OBS source for that slot:
The OBS source follows whatever the director has assigned to slot 1. If the guest changes, the OBS link does not need to change.
Use &scenerestore for reconnects
&scenerestore is a director option:
It helps when you manually add a guest to a scene and that guest disconnects briefly. If the guest reconnects soon enough with the matching restore identity, the director can restore their previous scene selection.
This is not a permanent cloud scene store. It uses a temporary local restore lease, currently around 15 minutes after the last relevant scene action. It also does not bypass room security, queue, approval, or SSO.
Managed invite links and short links
VDO.Ninja links can get long. They also sometimes need to change after you already sent them.
Options:
invite.cam can encode or shorten VDO.Ninja invite links. Where enabled, its signed-in dashboard can manage reusable short links.
app.invite.cam gives hosts a reusable signed-in room, lobby, helper controls, and owner-managed invite links.
Third-party URL managers, such as Short.io, can point a friendly URL at a VDO.Ninja invite and let you update the target later.
Use a short-link manager when you want to change an invite after sending it. Use &push or &permaid when you want the same guest to keep the same stream ID.
Signed-in rooms, SSO, and browser-source links
The newer signed-in access flow uses &auth and &requireauth.
In plain language:
&authturns on the signed-in VDO.Ninja access layer&requireauthmakes sign-in requiredthe authenticated director can generate scene, view, and solo links with a
&universaltokenso OBS/browser sources can view without a person signing in inside OBS&authtokenis used during sign-in redirects and is normally saved then removed from the visible URL
SSO is about identity and access. It does not replace &push, &permaid, scenes, or slots when your goal is a stable OBS source.
Which link should I give guests?
For a simple recurring guest:
For a guest whose browser should remember its own generated ID:
For a signed-in room where the access layer is enabled:
For a room where sign-in is required:
For a larger lobby or event workflow:
Common mistakes
Do not give two people the same
&pushvalue.Do not paste a guest's already-joined address-bar URL into a public chat.
Do not expect
&permaidto follow a person across devices.Do not use a person's real name as the only stream ID if the link is public.
Do not confuse
&view=STREAMIDwith a slot number. To view a slot, use&viewslot.Do not rely on
&scenerestoreas a permanent database. It is a reconnect helper.
Related pages
What are stream IDs?&push&permaid&scenerestore&viewslotapp.invite.camSSO and signed-in accessSearch words
People may search for this as: permanent link, persistent link, persistant link, reusable link, re-usable link, reusable guest invite, persistent browser source, OBS source refresh, same browser source, same stream ID, streamid, stream id, permaid, perma id, permanent ID, permaID, scene store, scenestore, scene restore, scenerestore, short link, shortener, URL shortner, URL shortener, invite manager, link management, app invite cam, invite.cam, SSO invite, signed-in room, authenticated invite.
Last updated
Was this helpful?