Jitsi Meet in eigene Anwendungen integrieren – mit Code-Beispielen

Jitsi Meet ist ein freies, WebRTC-basiertes Videokonferenzsystem unter Apache-2.0-Lizenz. Es läuft vollständig im Browser und kann self-hosted betrieben werden. Durch die modulare Architektur aus Jitsi Videobridge (SFU), Jicofo, Prosody, Jibri und Jigasi eignet es sich hervorragend für Integrationen, Rebranding und Automatisierung. Infos: Jitsi Meet, Architektur.
Warum Einbettung für Unternehmen sinnvoll ist
- DSGVO & Datenhoheit: Betrieb in eigener oder europäischer Infrastruktur.
- Browser-basiert: Hohe Kompatibilität ohne Client-Installation.
- APIs & SDKs: Vom schnellen iFrame-Embed bis zur Low-Level-Steuerung über lib-jitsi-meet.
- Skalierbar: Horizontal über zusätzliche Videobridges.
Inhaltsverzeichnis
- 2) Integrationswege im Überblick
- 3) iFrame/External API: schnelles Web-Embedding mit Events und Commands
- 4) lib-jitsi-meet: Low-Level-API für eine eigene Web-UI
- 5) Mobile Integration: Jitsi SDK für Android und iOS
- 6) Zugriff und Authentifizierung: Secure Domain und JWT
- 7) Monitoring und Betrieb: Colibri-REST (Bridge-Ebene)
- 8) Self-Hosting, DSGVO und Betrieb
- 9) Fazit
- Kostenloses Beratungsgespräch vereinbaren
- Quellen und weiterführende Links
2) Integrationswege im Überblick
Integration | Zweck | Quelle |
---|---|---|
iFrame/External API (JavaScript) | Schnellster Weg für Web-Embedding und Meeting-Steuerung in der App | iFrame API |
lib-jitsi-meet (Low-Level JS API) | Eigene UI bauen, Medien & Signalisierung direkt steuern | lib-jitsi-meet, Repo |
Mobile SDKs (Android/iOS) | Native Integration in mobile Apps inkl. Feature-Flags | Android SDK Guide, SDK-Samples |
JWT & Secure Domain | Zutrittskontrolle und Rechte über Tokens bzw. Prosody-Accounts | Secure Domain, Token Auth |
Colibri-REST (Videobridge) | Betreiber-Schnittstelle für Monitoring/Control auf Bridge-Ebene | JVB REST |
Self-Hosting-Guides | Schnellstart für Debian/Ubuntu oder Docker | Quickstart, Docker Guide |
3) iFrame/External API: schnelles Web-Embedding mit Events und Commands
Minimal-Beispiel:
<div id="meet"></div>
<script src="https://meet.jit.si/external_api.js"></script>
<script>
const domain = "meet.jit.si"; // oder eigene Instanz: "meet.example.com"
const options = {
roomName: "DemoRoom123",
width: "100%",
height: 700,
parentNode: document.querySelector('#meet')
};
const api = new JitsiMeetExternalAPI(domain, options);
</script>
Quelle: iFrame API – Getting started.
Events & Commands:
// Teilnehmer-Events
api.addEventListener('participantJoined', e => console.log('joined', e));
api.addEventListener('participantLeft', e => console.log('left', e));
// Meeting steuern
api.executeCommand('toggleAudio');
api.executeCommand('toggleVideo');
// Moderation (mit passenden Rechten)
api.executeCommand('kickParticipant', 'PARTICIPANT_ID'); // ID aus Events entnehmen
Referenz: Events und Commands.
Erweiterte Funktionen:
// Breakout-Raum anlegen
api.executeCommand('addBreakoutRoom', 'Workshop');
// Teilnehmer in Breakout-Raum verschieben
api.executeCommand('sendParticipantToRoom', {
participantId: 'abcd1234',
roomName: 'Workshop'
});
// Hand heben / senken
api.executeCommand('toggleRaiseHand');
// Tile-View toggeln
api.executeCommand('toggleTileView');
// Aufzeichnung starten/stoppen (erfordert Jibri)
api.executeCommand('startRecording', { mode: 'file' });
api.executeCommand('stopRecording', 'file');
4) lib-jitsi-meet: Low-Level-API für eine eigene Web-UI
Mit lib-jitsi-meet steuerst du Verbindung, Räume und Medien direkt. Ideal, wenn du eine eigene UI entwickeln möchtest.
<script src="https://meet.jit.si/libs/lib-jitsi-meet.min.js"></script>
<script>
// 1) Init
JitsiMeetJS.init();
// 2) Verbindung
const options = {
hosts: {
domain: 'meet.example.com',
muc: 'conference.meet.example.com'
},
serviceUrl: 'wss://meet.example.com/xmpp-websocket'
};
const connection = new JitsiMeetJS.JitsiConnection(null, null, options);
// 3) Events
connection.addEventListener(JitsiMeetJS.events.connection.CONNECTION_ESTABLISHED, onConnected);
connection.addEventListener(JitsiMeetJS.events.connection.CONNECTION_FAILED, console.error);
connection.addEventListener(JitsiMeetJS.events.connection.CONNECTION_DISCONNECTED, console.warn);
connection.connect();
function onConnected() {
// 4) Conference + Events
const confOpts = { openBridgeChannel: true };
const room = connection.initJitsiConference('myRoom', confOpts);
room.on(JitsiMeetJS.events.conference.CONFERENCE_JOINED, () => console.log('joined'));
room.on(JitsiMeetJS.events.conference.TRACK_ADDED, track => {
const el = track.getOriginalElement?.() || track.attach(document.createElement(track.getType()));
document.body.append(el);
});
// 5) Lokale Tracks hinzufügen
JitsiMeetJS.createLocalTracks({ devices: ['audio', 'video'] })
.then(tracks => {
tracks.forEach(t => room.addTrack(t));
room.join();
});
}
</script>
Doku: lib-jitsi-meet API, Repo.
5) Mobile Integration: Jitsi SDK für Android und iOS
Android-Beispiel:
JitsiMeetConferenceOptions defaultOptions = new JitsiMeetConferenceOptions.Builder()
.setServerURL(new URL("https://meet.example.com"))
.setFeatureFlag("welcomepage.enabled", false)
.build();
JitsiMeet.setDefaultConferenceOptions(defaultOptions);
JitsiMeetConferenceOptions options = new JitsiMeetConferenceOptions.Builder()
.setRoom("MobileMeeting")
.build();
JitsiMeetActivity.launch(this, options);
Quellen: Android SDK Guide, SDK-Samples. Für iOS siehe die Samples im Repo.
6) Zugriff und Authentifizierung: Secure Domain und JWT
Secure Domain: Nur authentifizierte Nutzer dürfen neue Räume erstellen; Gäste können danach beitreten. Guide: Secure Domain
Token-Authentifizierung (JWT): Zutritt mit signiertem Token – ideal zur Integration mit eigenen Backends/Portalen. Guide: Token Authentication
Beispiel-Payload:
{
"context": {
"user": {
"avatar": "https://example.com/avatar.png",
"name": "Max Mustermann",
"email": "[email protected]"
},
"features": {
"recording": true,
"livestreaming": false,
"screen-sharing": true
}
},
"aud": "jitsi",
"iss": "wz-it.com",
"sub": "meet.example.com",
"room": "TeamMeeting2025",
"exp": 1735753200
}
Token-Erzeugung (Node.js):
import jwt from "jsonwebtoken";
const payload = {
context: { user: { name: "Max Mustermann" } },
aud: "jitsi",
iss: "wz-it.com",
sub: "meet.example.com",
room: "TeamMeeting2025",
exp: Math.floor(Date.now() / 1000) + 60 * 60
};
const token = jwt.sign(payload, process.env.JITSI_APP_SECRET);
console.log("JWT:", token);
Prosody-Setup (vereinfacht):
VirtualHost "meet.example.com"
authentication = "token"
app_id = "wz-it.com"
app_secret = "YOUR_APP_SECRET"
7) Monitoring und Betrieb: Colibri-REST (Bridge-Ebene)
Die Jitsi Videobridge stellt eine REST-Schnittstelle (Colibri/Colibri2) bereit – für Monitoring, Konferenz-Allokation und Health/Stats; nicht für Endnutzer-Aktionen wie „Kick".
Stats abrufen:
# Standard (lokal): JVB_COLIBRI_PORT=8080
curl -s http://127.0.0.1:8080/colibri/stats
Beispielantwort:
{
"conferences": 4,
"participants": 52,
"bit_rate_download": 2400000,
"bit_rate_upload": 2700000
}
Quellen: Colibri REST, Docker Guide.
Teilnehmeraktionen wie kick erfolgen über die iFrame-API (Client) oder XMPP-Moderation, nicht per REST. Referenz: iFrame Commands.
8) Self-Hosting, DSGVO und Betrieb
- Quickstart: Debian/Ubuntu, Docker.
- Security/Privacy: Jitsi Security.
- DSGVO: Betrieb in deutschen/europäischen Rechenzentren möglich; Log-, Backup- und Zugriffssteuerung bleiben vollständig in Unternehmenshand.
9) Fazit
Mit iFrame/External API bindest du Jitsi Meet in Minuten ins Web ein. Mit lib-jitsi-meet baust du eine eigene Web-UI mit voller Kontrolle über Medien & Signalisierung. Mit den Mobile-SDKs integrierst du Konferenzen nativ in Android/iOS. Secure Domain/JWT regeln den Zugang, Colibri-REST liefert Betriebsmetriken.
Alles Open Source, self-hosted und DSGVO-konform – ideal für Unternehmen, die Souveränität und Anpassbarkeit brauchen.
WZ-IT unterstützt bei Konzeption, Hosting, SSO, Branding, UI-Entwicklung, Skalierung, Monitoring und Support. WZ-IT Jitsi Meet Service
Kostenloses Beratungsgespräch vereinbaren
Sie möchten Jitsi Meet in Ihre Anwendung integrieren? Wir beraten Sie gerne zu:
- Technischer Machbarkeit & Architektur
- Hosting-Optionen & Skalierung
- SSO-Integration & Sicherheit
- Individuelle Anpassungen & Branding
Jetzt kostenlosen Beratungstermin buchen →
Quellen und weiterführende Links
Lassen Sie uns über Ihr Projekt sprechen
Ob konkrete IT-Herausforderung oder einfach eine Idee – wir freuen uns auf den Austausch. In einem kurzen Gespräch prüfen wir gemeinsam, ob und wie Ihr Projekt zu WZ-IT passt.
Vertraut von führenden Unternehmen


