Docs
Live Video Setup
Connect the third-party real-time video provider and durable recording storage so your community can host live events with automatic recordings and recaps.
Last updated
The live streaming module lets a host go live to the community with video, audio, screenshare, and a live chat drawer, then turns the finished session into a recap post with the recording embedded. The real-time video itself runs on a third-party provider you connect with your own account, and durable recording storage is a second account you connect. This page wires both. Live video is optional. Leave it unconnected and the rest of the platform runs normally, with the live module simply inactive.
What You Are Connecting#
Live video has two external pieces, both owned by you.
- A real-time video provider. Seedly Communities uses Daily.co for the actual video rooms, streaming to attendees, and cloud recording. You create a Daily.co account and connect it with your own API key.
- Durable recording storage. So recordings live on permanently for later playback, finished recording files are copied into your own storage. The platform uses Vercel Blob for this, on the same Vercel account that hosts your web app.
You contract with these providers directly, and you pay them directly. Seedly takes no cut and sits nowhere in this path.
An Honest Word on Cost#
Live video is the one part of the platform that is not effectively free to run. Text, feed, chat, courses, and events all sit comfortably inside free infrastructure tiers, but real-time video is expensive to deliver and the provider charges for it by usage. Expect a bill from Daily.co that scales with how much you stream, roughly with participant minutes, and separate storage costs for keeping recordings. This is a genuine per-use cost on a service you contract, not a Seedly fee. If you host frequent or large live events, budget for it. If you rarely go live, it stays small.
Step 1 - Create a Daily.co Account#
Sign up at daily.co. During setup it asks you to choose a subdomain, which is just the URL prefix for your rooms. Pick anything. Then read your API key from the Daily.co dashboard.
Step 2 - Connect the Provider#
Live video runs on the backend, so the Daily.co key goes on your Convex deployments with the environment command. You can use the same key on development and production, or create a second Daily.co setup for development.
npx convex env set DAILY_API_KEY your_daily_api_key
npx convex env set --prod DAILY_API_KEY your_daily_api_keyThe setting names are on the Environment and Configuration page. Once the key is set, hosts can go live and sessions record.
Step 3 - Connect the Recording Webhook#
When a live event ends, the provider needs to tell your backend that a recording is ready. That callback is what triggers the automatic recap post, so the recap feature depends on it.
- Generate a signing secret and set it on your backends, matching a value per environment.
npx convex env set DAILY_WEBHOOK_SECRET your_generated_secret
npx convex env set --prod DAILY_WEBHOOK_SECRET your_generated_secret- In the Daily.co dashboard, register a webhook that points at your backend's site URL with
/webhooks/dailyon the end. Use the production backend URL for the production webhook. - Give the webhook the same signing secret you set on that backend, so the platform can confirm each callback genuinely came from the provider.
- Subscribe it to the recording-ready event so finished recordings flow through.
If you want recordings to also process in development, repeat this against your development backend and its own secret.
Step 4 - Connect Durable Storage#
Without durable storage, recordings are only reachable through links that expire after a limited window on the provider's side. To keep them for good, connect Vercel Blob storage. Vercel sets the storage token on your web app project automatically, but you must copy that same value to your production backend by hand, or recordings will fall back to expiring links.
npx convex env set --prod BLOB_READ_WRITE_TOKEN your_storage_tokenThe setting name and this footgun are also noted on the Environment and Configuration page.
What You Get Once It Is Connected#
- Go Live from any scheduled event or on demand.
- Video, audio, and screenshare with participant grid and speaker views, plus a live chat drawer beside the video and a mobile layout with a togglable chat overlay.
- A pre-join screen so hosts and attendees check camera and microphone first.
- Automatic recording of the session.
- An automatic recap post created when the recording is ready, with the video embedded inline so members who missed it can catch up.
- Audience-restricted sessions limited to enrolled students, challenge participants, or coaching clients when you want them private.
Troubleshooting#
| Problem | Likely cause |
|---|---|
| Hosts cannot go live | The provider API key is missing on that backend |
| A recap post never appears after an event | The recording webhook is not registered, points at the wrong backend, or its secret does not match |
| Recording links stop working after a while | Durable storage is not connected, so recordings expire on the provider. Connect Vercel Blob |
| The video room will not load for viewers | A content-security setting. The platform already allows the provider, so if this persists, reach out to support |
Next Steps#
- Confirm the video and storage setting names on the Environment and Configuration page.
- See how live events fit the calendar, courses, and challenges on the Features page.
- Finish the go-live checklist before you announce your first live event.
