🎉 Emira · Documentation
Retour DocsIntégrations

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ûtZoom Pro ~20 $/moisGratuit, sans compte
Enregistrement auto✅ Cloud, sans intervention❌ Non sur meet.jit.si public
Nombre participantsSelon plan ZoomIllimité (recommandé < 75)
Setup initial~15 min~1 min
Sous-titres live✅ (payant)✅ (gratuit)
Self-hostingN/A✅ (Jitsi + Jibri)
Idéal pourConférences pro, formations continues, webinaires enregistrésRé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 »

  1. Aller sur marketplace.zoom.us
  2. En haut à droite : Develop → Build App
  3. Type « Server-to-Server OAuth »Create
  4. Donner un nom (ex. Emira Events) → Create
  5. 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 meetings
  • meeting:read:admin — lire l'état des meetings
  • user:read:admin — identifier l'utilisateur hôte
  • recording:read:admin — lire les enregistrements Cloud

2.4 Activer les webhooks (pour l'enregistrement automatique)

  1. Onglet Feature → activer Event Subscriptions
  2. Cliquer + Add Event Subscription
  3. Subscription name : Emira recordings
  4. Event notification endpoint URL :
    https://events.dapfy.ca/api/webhooks/zoom
    (remplacer par votre domaine custom si applicable)
  5. Add Events → catégorie Recording → cocher All Recordings have completed
  6. Sauvegarder
  7. Copier le Secret Token affiché en haut de la section
  8. Ne pas encore cliquer sur Validate — d'abord terminer l'étape 2.5

2.5 Renseigner les credentials dans Emira

  1. Admin Emira : Paramètres → Intégrations
  2. Section 📹 Zoom : coller Account ID, Client ID, Client Secret, Host email, Webhook Secret Token
  3. Enregistrer
  4. Tester — vous devez voir « ✓ Zoom OAuth valide »

2.6 Valider le webhook côté Zoom

  1. Retourner sur Zoom Marketplace → votre app → Feature → Event Subscriptions
  2. Cliquer Validate
  3. Zoom envoie un challenge à Emira, Emira renvoie automatiquement le hash attendu → ✅ vert
  4. 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

  1. Admin Emira : Paramètres → Intégrations
  2. Section 🎥 Provider streaming : sélectionner 💬 Jitsi Meet
  3. Domaine Jitsi : laisser meet.jit.si
  4. 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) :

  1. Renseigner le domaine dans Domaine Jitsi (ex. jitsi.mon-domaine.com, sans https://)
  2. 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

  1. Admin : Programme → Nouvelle session (ou app mobile : bouton + Session)
  2. Format : in_person, virtual, ou hybrid
  3. 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ômeCause probableFix
« Tester » Zoom échoueScopes manquants ou app non activéeVérifier 2.3 + 2.7
Webhook Validate échoueSecret Token différentRecopier depuis Zoom (attention aux espaces)
Meeting créé mais pas de replayCloud Recording désactivé côté compte ZoomZoom Web → Settings → Recording → autoriser Cloud
Replay sans mot de passeZoom passcode désactivé au niveau meetingNormal si votre compte n'exige pas de passcode
Session Jitsi vide au participantRoom name changé entre 2 rechargementsNe pas re-provisionner une session déjà provisionnée
Nom de salle Jitsi visible aux non-invitésRoom name partagé publiquementNe 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.