Politique de confidentialité
Dernière mise à jour : avril 2026
1. Qu’est-ce qu’OpenedMic
OpenedMic est un service de diffusion audio et vidéo en direct basé sur le navigateur. Un diffuseur ouvre une salle ; les auditeurs rejoignent par code de salle, scan de QR code ou lien direct. Aucune installation ni inscription n’est requise pour utiliser le service.
Le service comprend la page d’accueil publique à l’adresse https://www.openedmic.com/ et une application autonome à https://www.openedmic.com/app. L’application est conçue pour fonctionner dans le navigateur et peut être installée sur les appareils compatibles comme application d’écran d’accueil, sans passer par un magasin d’applications.
2. Aucune inscription
OpenedMic ne vous demande pas de créer un compte, de fournir une adresse e-mail ni de partager aucune donnée personnelle pour utiliser le service. Vous pouvez créer et rejoindre des salles sans inscription.
3. Informations que nous ne collectons pas et ne conservons pas
Les informations suivantes ne sont ni collectées, ni conservées, ni enregistrées par OpenedMic dans la logique applicative, les systèmes d’analyse ou la télémétrie :
- Noms, adresses e-mail, noms d’utilisateur et avatars
- Codes de salle, identifiants de salle ou identifiants hachés
- Adresses IP brutes ou adresses IP hachées
- Identifiants de session ou identifiants utilisateur de toute nature
- Empreintes d’appareil ou empreintes de navigateur
- Contenu des messages de chat
- Contenu des réactions
- Mots de passe de salle
- Texte des liens copiés
- Audio, vidéo ou contenu multimédia de toute nature
- Messages d’erreur libres côté client, traces de pile brutes ou corps de requête
- Tout identifiant, direct ou dérivé, pouvant être relié à une personne, un appareil, un navigateur ou une session
4. Données de session
Pendant l’utilisation d’OpenedMic, les informations suivantes sont traitées temporairement en mémoire pour faire fonctionner le service. Aucune n’est conservée après la fin de la session :
- Codes de salle — codes aléatoires à 6 caractères, conservés en mémoire serveur uniquement pendant la durée de vie de la salle
- Pseudonymes et avatars — saisis volontairement pour chaque session, conservés en mémoire serveur pendant la session active uniquement, effacés à la fermeture de la salle
- Données de signalisation WebRTC — offres SDP, réponses et candidats ICE traités en temps réel pour établir la connexion audio/vidéo ; non conservés
- Messages de chat — transmis en temps réel à l’intérieur de la salle ; non stockés côté serveur
- Réactions — transmises en temps réel ; leur contenu n’est pas stocké ni comptabilisé dans l’analytique
- Jeton de reconnexion du diffuseur — chaîne aléatoire à courte durée de vie stockée dans
localStoragesous une clé liée à la salle (om_btoken_[room]) pendant une diffusion active, pour permettre une reconnexion après un rafraîchissement bref ou une coupure passagère. Le jeton a un TTL côté client d’environ 60 secondes, et le serveur respecte une fenêtre de grâce de 15 secondes. Le jeton n’est lié à aucun compte ni profil — c’est une valeur aléatoire limitée à une seule salle
5. Analytique opérationnelle anonyme
OpenedMic exécute un système d’analytique anonyme et auto-hébergé, adossé à une base SQLite locale. Ce système collecte des signaux opérationnels strictement non identifiants, pour comprendre l’usage du produit, la santé du service et l’adoption des fonctionnalités dans le temps. Aucune donnée personnelle, aucun identifiant ni aucun texte libre n’est stocké.
Ce que l’analytique conserve :
- Horodatages (UTC)
- Type d’événement (par ex. : salle créée, diffusion démarrée, auditeur rejoint, fonctionnalité utilisée)
- Mode de diffusion ou catégorie sélectionnée
- Salle privée ou publique
- Nombre d’auditeurs et pic d’auditeurs
- Durée de session en secondes
- Paramètre de langue / locale
- Type d’appareil générique dérivé de la requête (mobile / tablette / desktop / inconnu)
- Famille de navigateur générique dérivée de la requête (chrome / safari / firefox / edge / inconnu)
- Famille d’OS générique dérivée de la requête (ios / android / windows / macos / linux / inconnu)
- Catégorie de source d’arrivée (QR code / lien direct / code manuel / inconnu)
- Indicateurs d’usage des fonctionnalités (par ex. : partage d’écran activé, enregistrement démarré)
- Codes d’erreur structurés issus d’une liste prédéfinie (par ex. : room_not_found, mic_permission_denied)
- Signaux d’interaction PWA (par ex. : invite d’installation affichée, installation acceptée, mode standalone détecté)
- Version du serveur au moment de l’événement
Les chaînes User-Agent brutes ne sont jamais conservées. Navigateur, OS et type d’appareil sont dérivés du User-Agent au moment de la requête ; la chaîne brute est rejetée immédiatement après.
Tous les points de lecture et de reporting de l’analytique — y compris la page agrégée /stats, l’interface /analytics/* et les points opérationnels /logs, /ops et /ops/snapshot — sont protégés par jeton porteur (bearer) et, en production, limités à un nom d’hôte opérationnel distinct. Aucun de ces points n’est accessible publiquement.
6. Télémétrie d’erreurs structurée et respectueuse
L’application inclut un mécanisme léger de remontée d’erreurs côté client. Lorsqu’une erreur technique survient dans le navigateur, l’application peut émettre une télémétrie structurée et non identifiante vers le serveur. Cette télémétrie est strictement limitée à :
- Catégorie de type d’erreur (depuis une liste prédéfinie, par ex. JS_ERROR, UNHANDLED_REJECTION)
- Famille, étape et surface de l’erreur depuis des listes prédéfinies (par ex. "permissions", "browser_api", "app")
- Numéro de ligne et de colonne de l’erreur
- Navigateur, OS et type d’appareil génériques (dérivés du User-Agent ; l’UA brut est rejeté)
- Paramètre de langue / locale
Les messages d’erreur en texte libre, les traces de pile brutes, les corps de requête, les chemins de fichiers sources et tout contenu susceptible de contenir des données utilisateur ou identifiantes ne sont pas émis ni conservés. Le client retire ces champs avant l’envoi.
7. Formulaire de contact
Lorsque vous soumettez le formulaire de contact sur openedmic.com/contact.html, la demande est envoyée au serveur OpenedMic pour validation. Le serveur vérifie le format, enregistre uniquement un signal opérationnel anonyme minimal (nombre de soumissions réussies, sans contenu) et renvoie une réponse à votre navigateur.
Le contenu du message — nom, e-mail, sujet et message — est transmis une seule fois à un point de sortie préconfiguré (webhook), afin que l’opérateur du service puisse recevoir et répondre à votre message, puis supprimé. Il n’est pas conservé dans une base, un fichier de log ou un système d’analytique OpenedMic après cette transmission. La politique de confidentialité du fournisseur du webhook s’applique à ce qu’il conserve de son côté.
Si le point de sortie est temporairement indisponible ou non configuré, le serveur ne conserve pas non plus le contenu du message : l’interface propose une solution alternative pour contacter directement hello@openedmic.com depuis votre client de messagerie.
8. Google Analytics 4
La page d’accueil publique à https://www.openedmic.com/ et l’application à https://www.openedmic.com/app utilisent Google Analytics 4 avec la configuration suivante orientée confidentialité :
- Anonymisation des adresses IP avant traitement (
anonymize_ip: true) - Aucun cookie analytique ni stockage client écrit sur votre appareil (
storage: 'none',client_storage: 'none') - Données utilisées uniquement pour comprendre l’usage agrégé des pages
- Aucun usage publicitaire ni profilage individuel
9. Application web installable
OpenedMic peut être installée comme application d’écran d’accueil sur les appareils et navigateurs compatibles. Lors de l’installation :
- Le shell applicatif est servi depuis la même origine — sans passer par un magasin d’applications
- Un Service Worker est enregistré dans votre navigateur pour permettre le chargement fiable des ressources statiques (polices et scripts) et afficher une page de base en cas d’absence de connexion
- Le Service Worker ne met pas en cache les pages HTML ni le contenu dynamique. Les fonctionnalités de session en direct — création de salle, connexion, flux audio/vidéo, signalisation — nécessitent une connexion Internet active et ne fonctionnent pas hors ligne
- Si vous rejetez l’invite d’installation, un indicateur est enregistré dans
localStoragesur votre appareil pour éviter que l’invite ne réapparaisse - Si vous lancez l’application en mode standalone (après installation), un signal anonyme d’engagement d’installation peut être enregistré par l’analytique opérationnelle
10. Cookies et stockage navigateur
OpenedMic n’utilise pas de cookies publicitaires ni de cookies de suivi. Le stockage côté navigateur sert uniquement aux fonctionnalités locales suivantes sur votre appareil :
- Préférence de langue — application (clé
localStorage:openedmic-app-lang) — conserve la langue d’interface choisie dans l’application entre les visites - Préférence de langue — page d’accueil (clé
localStorage:openedmic-lang) — conserve la langue d’interface choisie sur la page d’accueil - Paramètres d’accessibilité — page d’accueil (clé
localStorage:openedmic-a11y) — conserve les préférences de contraste, de mouvement et de police si vous les avez modifiées sur la page d’accueil - Indicateur de refus de l’invite d’installation (clé
localStorage:pwa-dismissed) — défini si vous avez refusé l’invite d’installation, pour éviter de l’afficher à nouveau - Indicateur de refus de l’invite iOS (clé
localStorage:pwa-ios-dismissed) — défini si vous avez refusé l’invite « Ajouter à l’écran d’accueil » sur iOS, pour éviter de l’afficher à nouveau - Jeton de reconnexion du diffuseur (clé
localStorage:om_btoken_[room]) — stocké uniquement pendant une diffusion active pour permettre la reconnexion après un rafraîchissement ou une coupure passagère. L’entrée a un TTL côté client d’environ 60 secondes ; elle est ensuite considérée comme obsolète et retirée, et le serveur n’accepte les tentatives de reconnexion que dans une fenêtre de grâce de 15 secondes
Les valeurs du stockage navigateur servent uniquement aux fonctionnalités locales de l’application, à la restauration des préférences, à la prévention des invites répétées d’installation et à la continuité d’une session active. Elles ne servent pas à la publicité, au profilage ni à l’identification personnelle. Lorsque l’application envoie l’analytique opérationnelle anonyme ou la télémétrie technique structurée, la locale courante peut être incluse comme champ non identifiant.
11. Enregistrement local
Si vous utilisez la fonction d’enregistrement local pendant une diffusion, l’audio et/ou la vidéo sont capturés directement dans votre navigateur via l’API MediaRecorder et enregistrés sur votre appareil au format WebM. Rien n’est envoyé vers un serveur. OpenedMic n’a pas accès à vos enregistrements. Vous conservez le contrôle total de chaque enregistrement créé.
12. Infrastructure et services tiers
- Render.com — hébergement d’origine du serveur Node.js. La plateforme d’hébergement peut générer des journaux d’accès standard conformément à sa politique.
- Cloudflare — DNS et protection DDoS. Toutes les connexions sont chiffrées en HTTPS/TLS. Cloudflare peut traiter les métadonnées de connexion conformément à sa politique. Remarque : le domaine applicatif principal fonctionne actuellement en mode DNS only ; la protection proxy Cloudflare s’applique aux domaines de redirection.
- Metered.live — serveurs TURN utilisés pour faciliter les connexions WebRTC pair à pair lorsqu’une liaison directe n’est pas possible. Les serveurs TURN relaient des flux média chiffrés et ne stockent pas de contenu média.
13. Aucune publicité
OpenedMic n’affiche pas de publicité et ne partage pas de données avec des régies publicitaires.
14. Enfants
OpenedMic n’est pas destiné aux enfants de moins de 13 ans. Nous ne collectons pas sciemment d’informations provenant d’enfants.
15. Modifications de cette politique
Cette politique peut être mise à jour en cas d’évolution du service. La date en haut de page reflète la dernière mise à jour. L’utilisation continue du service après une mise à jour vaut acceptation de la version modifiée.
16. Contact
Pour toute question relative à cette politique de confidentialité, utilisez la page de contact.