Configuration du streaming vidéo
Guide pour les administrateurs d'organisation Emira qui veulent activer les sessions virtuelles ou hybrides. Emira supporte deux fournisseurs interchangeables : Zoom et Jitsi Meet. Vous configurez le provider une seule fois pour votre organisation.
1. Quel provider choisir ?
| Critère | 📹 Zoom | 💬 Jitsi Meet |
|---|---|---|
| Coût | Zoom Pro ~20 $/mois | Gratuit, sans compte |
| Enregistrement auto | ✅ Cloud, sans intervention | ❌ Non sur meet.jit.si public |
| Nombre participants | Selon plan Zoom | Illimité (recommandé < 75) |
| Setup initial | ~15 min | ~1 min |
| Sous-titres live | ✅ (payant) | ✅ (gratuit) |
| Self-hosting | N/A | ✅ (Jitsi + Jibri) |
| Idéal pour | Conférences pro, formations continues, webinaires enregistrés | Réunions informelles, mariages, festivals sans replay |
En résumé. Vous voulez enregistrer automatiquement ? → Zoom. Vous voulez zéro coût et démarrer en 1 minute ? → Jitsi. Vous pouvez basculer à tout moment sans perdre les sessions déjà provisionnées.
2. Configurer Zoom
2.1 Prérequis
- Un compte Zoom Pro (ou supérieur) — zoom.us/pricing
- Accès administrateur au Zoom Marketplace
2.2 Créer l'application « Server-to-Server OAuth »
- Aller sur marketplace.zoom.us
- En haut à droite : Develop → Build App
- Type « Server-to-Server OAuth » → Create
- Donner un nom (ex.
Emira Events) → Create - Onglet App Credentials : noter Account ID, Client ID, Client Secret
2.3 Activer les scopes
Onglet Scopes → Add Scopes. Activer :
meeting:write:admin— créer les meetingsmeeting:read:admin— lire l'état des meetingsuser:read:admin— identifier l'utilisateur hôterecording:read:admin— lire les enregistrements Cloud
2.4 Activer les webhooks (pour l'enregistrement automatique)
- Onglet Feature → activer Event Subscriptions
- Cliquer + Add Event Subscription
- Subscription name :
Emira recordings - Event notification endpoint URL :
https://events.dapfy.ca/api/webhooks/zoom
(remplacer par votre domaine custom si applicable) - Add Events → catégorie Recording → cocher All Recordings have completed
- Sauvegarder
- Copier le Secret Token affiché en haut de la section
- Ne pas encore cliquer sur Validate — d'abord terminer l'étape 2.5
2.5 Renseigner les credentials dans Emira
- Admin Emira : Paramètres → Intégrations
- Section 📹 Zoom : coller Account ID, Client ID, Client Secret, Host email, Webhook Secret Token
- Enregistrer
- Tester — vous devez voir « ✓ Zoom OAuth valide »
2.6 Valider le webhook côté Zoom
- Retourner sur Zoom Marketplace → votre app → Feature → Event Subscriptions
- Cliquer Validate
- Zoom envoie un challenge à Emira, Emira renvoie automatiquement le hash attendu → ✅ vert
- Si erreur : vérifier que le Secret Token collé dans Emira est identique à celui affiché ici
2.7 Activer votre app
Onglet Activation → cocher les cases → Activate your app. Terminé.
3. Configurer Jitsi Meet
3.1 Aucun compte requis
Emira utilise par défaut le service public meet.jit.si. Zéro compte, zéro app, zéro validation.
3.2 Bascule vers Jitsi
- Admin Emira : Paramètres → Intégrations
- Section 🎥 Provider streaming : sélectionner 💬 Jitsi Meet
- Domaine Jitsi : laisser
meet.jit.si - Enregistrer
C'est tout — vous êtes prêt à provisionner des sessions Jitsi.
3.3 Optionnel — Domaine Jitsi custom (self-hosted)
Si votre organisation a déployé sa propre instance Jitsi Meet (guide DevOps officiel) :
- Renseigner le domaine dans Domaine Jitsi (ex.
jitsi.mon-domaine.com, sanshttps://) - Enregistrer
Enregistrement automatique avec Jitsi self-hosted: possible si Jibri est installé. Le lien Dropbox de l'enregistrement doit être renseigné manuellement dans session.recordingUrldepuis l'admin de l'événement.
4. Utilisation quotidienne
4.1 Créer une session hybride ou virtuelle
- Admin : Programme → Nouvelle session (ou app mobile : bouton + Session)
- Format :
in_person,virtual, ouhybrid - Enregistrer
4.2 Provisionner le stream
- Individuel : bouton Provisionner sur la fiche session
- Masse : bouton Provisionner toutes les sessions hybrides sur la fiche événement
Emira lit votre provider par défaut (Zoom ou Jitsi) et délègue automatiquement.
4.3 Vue participant (app mobile)
- Badge « En ligne » ou « Hybride » sur chaque session concernée
- Bouton 📹 Rejoindre la session actif jusqu'à 15 min après la fin prévue
- Après enregistrement Zoom : bouton ▶️ Voir le replay + mot de passe affiché en dessous
5. Confidentialité & sécurité
- Emira ne stocke jamais de vidéo. Zoom Cloud héberge le fichier ; Emira ne garde que l'URL de partage et le passcode éventuel.
- Isolation multi-tenant. Chaque organisation configure sa propre app Zoom Marketplace et son propre Secret Token. Le webhook route sur l'
account_id, la signature HMAC-SHA256 est vérifiée avec le secret du bon tenant. - Room name Jitsi. 128 bits d'entropie (22 caractères base64url), impossible à deviner. C'est le seul contrôle d'accès de meet.jit.si — ne partagez le lien qu'aux participants autorisés.
- Zoom passcode. Affiché aux participants authentifiés uniquement, jamais dans les pages publiques d'événement.
6. Dépannage
| Symptôme | Cause probable | Fix |
|---|---|---|
| « Tester » Zoom échoue | Scopes manquants ou app non activée | Vérifier 2.3 + 2.7 |
| Webhook Validate échoue | Secret Token différent | Recopier depuis Zoom (attention aux espaces) |
| Meeting créé mais pas de replay | Cloud Recording désactivé côté compte Zoom | Zoom Web → Settings → Recording → autoriser Cloud |
| Replay sans mot de passe | Zoom passcode désactivé au niveau meeting | Normal si votre compte n'exige pas de passcode |
| Session Jitsi vide au participant | Room name changé entre 2 rechargements | Ne pas re-provisionner une session déjà provisionnée |
| Nom de salle Jitsi visible aux non-invités | Room name partagé publiquement | Ne pas diffuser le lien Jitsi sur pages publiques |
7. Support
Questions ? Écrivez à [email protected] — réponse sous 24 h ouvrables.
Source Markdown de ce guide : docs/streaming-config.md dans le dépôt Emira.