Jitsi Meet does not send a meeting to YouTube by itself: for self-hosted Jitsi, the usual built-in route is Jibri, which captures the conference and streams it to YouTube using the stream key. If you only need a quick event, a desktop encoder such as OBS can capture a Jitsi participant window and send it to YouTube instead. The right choice depends on who should run the encoder, whether you need overlays and detailed control, and whether you can operate the Jibri service.
This guide covers both routes, with the self-hosted Jibri setup first. It applies to administrators of a self-hosted Jitsi Meet deployment. A hosted Jitsi service may not expose live streaming; its operator controls whether Jibri is available. YouTube currently requires a verified channel with no live-streaming restriction in the prior 90 days. The first activation may take time, so confirm channel eligibility before event day.
Which streaming route fits your event?
| Route | Best fit | Main trade-off |
|---|
| Jitsi with Jibri | A repeatable self-hosted meeting workflow, where a moderator starts the stream from the Jitsi interface. | Requires server-side Jibri setup and enough CPU, memory, and network capacity. The Jitsi administrator must maintain it. |
| Jitsi plus OBS on a presenter computer | A one-off event, branded layouts, title cards, overlays, local scenes, or more control over the encoder and ingest protocol. | Requires a dedicated computer and operator. The meeting must stay visible and audible to the capture system, and the computer’s upload connection becomes critical. |
| Record, then upload | Talks that do not need a real-time audience or live chat. | Does not create a live event, but gives you time to edit and check the final recording before publishing. |
For a managed, self-hosted deployment that needs a moderator to start a conference stream, use Jibri. Choose OBS when production control or explicit RTMPS configuration matters more than a one-click workflow. YouTube recommends RTMPS for encrypted ingest; Jibri’s built-in workflow and available output options can vary by release, so confirm the transport supported by your installed version. If you cannot verify RTMPS support in your Jibri configuration, use an encoder that exposes the YouTube ingest URL and protocol.
What does Jibri do, and what does it cost in resources?
Jibri is Jitsi’s broadcasting and recording component. It opens a browser session for the meeting, captures the rendered audio and video, and encodes the result for a streaming service. It does not run inside the Jitsi Videobridge’s media-routing role. The Jibri project says it is intended to run on a separate machine or VM with no other applications using its display or audio devices, and one Jibri instance supports one recording at a time. That makes it a better fit for planned, managed events than an occasional stream on a small server already under load.
OBS avoids adding Jibri to the Jitsi server stack, but moves capture and encoding work to the presenter’s computer. That can be cheaper if you already have an event workstation, but it creates a local operational dependency: the operator must keep the meeting window, audio routing, encoder, and network connection healthy. A Jibri host centralizes those responsibilities, at the cost of server setup and maintenance.
Set up Jibri for a self-hosted Docker deployment
Jitsi’s Docker handbook is updated over time. Use the compose files and environment example that match your installed release; do not copy settings from an unrelated branch or an old tutorial into a production deployment. The steps below assume you already have a working Docker Compose Jitsi Meet installation and administrative access to its host.
1. Check YouTube and deployment prerequisites
In YouTube Studio, verify that the channel can livestream and create or schedule an encoder stream. YouTube’s current help pages say a verified channel with no live-streaming restriction in the past 90 days can stream. Under the stream’s settings, find the server URL and stream key. Treat the stream key like a password: anyone who has it may be able to broadcast to that stream.
Confirm that your Jitsi Meet URL is publicly reachable over HTTPS and that the host and Jibri can resolve and reach the services they need. Plan for a test meeting before the public event. If you use a managed Jitsi provider, ask its administrator whether Jibri live streaming is enabled; you cannot turn it on by changing browser settings.
2. Enable the Jibri service in Docker Compose
From the directory containing your existing Jitsi Compose files, check the .env file and confirm that the Jibri recording/streaming option is enabled. The current Docker handbook documents ENABLE_RECORDING=1 as the option that enables recording and live streaming. For a standard deployment, add the Jibri compose file to the same command and include any extra compose overrides your installation already needs:
docker compose -f docker-compose.yml -f jibri.yml up -d
Do not run that shortened command if your deployment relies on other override files; add jibri.yml to your normal Compose command instead. The official Jitsi Docker guide also calls out the Jibri storage directory and writable permissions. Check the release-matched handbook for the current directory layout before changing permissions. Existing deployments may use a different layout.
Make sure Jibri’s internal XMPP users, passwords, and brewery settings agree across the web, Prosody, Jicofo, and Jibri configuration. The Compose project provides variables for these values. Generate strong internal passwords using the deployment’s documented procedure when setting up the service, and protect the environment file. Do not repeatedly regenerate passwords on a running deployment without coordinating the matching component configuration.
3. Confirm that Jibri is available
After the containers start, inspect their status and logs. With the standard Docker Compose service name, for example:
docker compose ps
docker compose logs --tail=100 jibri
The exact service name and log output can vary by release. Check the Jitsi Meet, Jicofo, Prosody, and Jibri logs for XMPP authentication or brewery/MUC discovery errors. When a valid Jibri is registered with Jicofo, the meeting interface can offer the live-stream control. If the UI says the streaming service is unavailable, entering a YouTube key will not fix the underlying Jibri connection.
Start a Jitsi Meet stream to YouTube
4. Create the YouTube stream and protect its key
In YouTube Studio, select Create → Go Live, then create or schedule an encoder stream. Copy the stream key from the Live Control Room. YouTube’s stream key is the encoder’s destination credential; do not paste it into a public meeting chat, command history, screenshot, or shared configuration file. If the key is exposed, rotate it in YouTube Studio and update the encoder.
Jibri’s normal Jitsi workflow prompts the moderator for a stream key after a working Jibri is detected. The Jibri API also describes a YouTube stream-key parameter for its streaming operation. If you use a custom Jibri integration, follow the API and access controls for the exact deployed version rather than improvising an endpoint call.
5. Start the stream and verify the preview before going live
Join the meeting as a moderator, open the meeting controls, and choose the live-stream action if it is available. Enter the YouTube stream key in the prompt and start the stream. In YouTube Live Control Room, wait for the incoming preview and check that both audio and video are present before selecting Go Live. Exact button labels can differ between Jitsi releases or customized interfaces.
For a first test, create an unlisted stream and use a short meeting with movement and speech. Check speaker balance, shared-screen legibility, and whether participant tiles are cropped as expected. YouTube automatically transcodes compatible encoder input for viewer devices, but a clean input and reliable upload path still matter. Monitor YouTube’s stream-health indicators while testing and during the event.
Use OBS when you need more control
With OBS, join the Jitsi meeting on a dedicated computer, capture the meeting window or a deliberate scene, and configure YouTube’s server URL and stream key in OBS’s streaming settings. If you need to hide meeting controls, notifications, or private participant information, build and test a clean scene before the event. Capture only content you have permission to broadcast, and tell meeting participants that their audio or video may be streamed.
OBS gives you control over layout, overlays, audio sources, and output settings. YouTube’s current encoder guidance supports RTMP/RTMPS ingestion and recommends RTMPS for an encrypted connection. For H.264 at 1080p30, YouTube lists a recommended video bitrate of 14 Mbps; at 720p30, it lists 8 Mbps. These are target encoder settings, not guaranteed quality levels. Leave upload headroom for other traffic and choose a lower resolution or bitrate if the connection cannot sustain the stream without drops.
Jibri is simpler for moderators once configured and keeps capture on the server, but it offers fewer production controls through the basic meeting flow. OBS is more flexible and makes it easier to choose a specific ingest URL or add graphics, but an operator must supervise it. Neither method is universally better: use Jibri for centralized recurring events; use OBS for custom productions or when RTMPS and scene control are requirements.
What should you check if the stream does not start?
- The live-stream control is missing: ask whether the deployment has enabled live streaming and whether Jibri is registered and idle. For Docker, verify the release-matched
ENABLE_RECORDING setting and that the Jibri compose service is running.
- Jitsi reports that streaming is unavailable: inspect Jibri logs and its XMPP connection, internal credentials, brewery MUC, and storage access. The problem is usually between Jitsi’s control components and Jibri, before YouTube receives any video.
- YouTube receives no signal: confirm the correct stream key and destination stream, then check outbound connectivity from the machine running the encoder. Rotate an exposed or uncertain key.
- YouTube shows a preview but the picture stutters: reduce output resolution or bitrate, check CPU usage on the encoder host, and test sustained upload bandwidth. For Jibri, inspect host load; for OBS, inspect the encoder’s dropped frames and network status.
- Video appears without audio: check Jitsi participant audio, system audio capture, and the selected encoder audio device. Perform a test with spoken audio before the event.
Pre-event checklist
- YouTube channel is eligible, and the correct live event is open in Live Control Room.
- Jibri is available, or the OBS computer and operator are ready.
- The stream key is private and belongs to the intended event.
- A test preview shows clear speech, stable video, and a readable layout.
- At least one organizer can monitor YouTube stream health and stop the encoder when the event ends.
Official references