1. Create the Discord app
Create or open the Beam app in the Discord Developer Portal, then enable Activities for that application.
Discord Activity
Beam now has a dedicated Discord Activity route. Discord launches the Activity as an iframe, Beam initializes the Embedded App SDK, authenticates the viewer, and renders the Beam player inside the voice-channel experience.
Activity iframe: https://beam.be-online.ro/discord/activity/
Preselected stream: https://beam.be-online.ro/discord/activity/?stream=sess_xxx
Config endpoint: GET /api/v1/discord/activity/config
OAuth exchange: POST /api/v1/discord/activity/token
Embedded player: /streams/player/?stream=sess_xxx
Set these variables on the Beam server before enabling the Activity in Discord.
BEAM_PUBLIC_BASE_URL=https://beam.be-online.ro
BEAM_DISCORD_CLIENT_ID=your_discord_application_client_id
BEAM_DISCORD_CLIENT_SECRET=your_discord_application_client_secret
BEAM_DISCORD_ACTIVITY_PATH=/discord/activity/
Create or open the Beam app in the Discord Developer Portal, then enable Activities for that application.
Point the Activity URL mapping to https://beam.be-online.ro/discord/activity/.
Beam uses identify for viewer identity and rpc.activities.write for Discord presence.
Pass ?stream=sess_xxx when a Discord voice channel should open a specific Beam stream.
/api/v1/discord/activity/config.new DiscordSDK(clientId) and waits for ready().authorize, Beam exchanges the code server-side, then the Activity calls authenticate.Normal Discord link previews do not execute arbitrary Beam WebRTC JavaScript. For true in-Discord viewing, use the Discord Activity route. Link previews can still show rich Open Graph cards, but the playable live experience belongs in the Activity.