Initial commit
This commit is contained in:
159
features/radio-live/arret-live.feature
Normal file
159
features/radio-live/arret-live.feature
Normal file
@@ -0,0 +1,159 @@
|
||||
# language: fr
|
||||
Fonctionnalité: Arrêt du live
|
||||
En tant que créateur
|
||||
Je veux arrêter ma diffusion en direct de manière contrôlée
|
||||
Afin de terminer proprement mon live et générer un replay automatiquement
|
||||
|
||||
Contexte:
|
||||
Étant donné que l'API RoadWave est disponible
|
||||
Et que je suis connecté en tant que créateur
|
||||
Et que je diffuse actuellement un live
|
||||
|
||||
Scénario: Arrêt manuel avec compte à rebours 5 secondes
|
||||
Quand j'appuie sur le bouton "Arrêter live"
|
||||
Alors un compte à rebours de 5 secondes démarre
|
||||
Et je vois le message "Ce live se termine dans 5... 4... 3... 2... 1"
|
||||
Et un bouton "Annuler" est affiché pendant le décompte
|
||||
Et l'audio du compte à rebours est diffusé aux auditeurs
|
||||
|
||||
Scénario: Annulation du compte à rebours
|
||||
Étant donné que j'ai appuyé sur "Arrêter live"
|
||||
Et que le compte à rebours affiche "3 secondes"
|
||||
Quand j'appuie sur "Annuler"
|
||||
Alors le compte à rebours s'arrête
|
||||
Et le live continue normalement
|
||||
Et aucune notification n'est envoyée aux auditeurs
|
||||
|
||||
Scénario: Arrêt effectif après compte à rebours
|
||||
Étant donné que le compte à rebours est à 0
|
||||
Alors le live s'arrête
|
||||
Et la diffusion aux auditeurs se termine
|
||||
Et le message "Live terminé" s'affiche
|
||||
Et le processus de traitement post-live démarre automatiquement
|
||||
|
||||
Scénario: Déconnexion créateur courte (moins de 60 secondes)
|
||||
Étant donné que je diffuse un live
|
||||
Quand ma connexion est perdue pendant 30 secondes
|
||||
Alors les auditeurs voient le message "Connexion créateur perdue, reconnexion en cours..."
|
||||
Et le live continue de bufferer
|
||||
Et quand ma connexion revient, le live reprend normalement
|
||||
|
||||
Scénario: Déconnexion créateur longue (60 secondes ou plus)
|
||||
Étant donné que je diffuse un live
|
||||
Quand ma connexion est perdue pendant 60 secondes
|
||||
Alors le live s'arrête automatiquement
|
||||
Et les auditeurs voient le message "Le live est terminé suite à une coupure de connexion"
|
||||
Et le processus de traitement post-live démarre
|
||||
|
||||
Scénario: Enregistrement automatique pendant le live
|
||||
Étant donné que je diffuse un live
|
||||
Alors mon flux audio est enregistré en continu
|
||||
Et le format d'enregistrement est Opus raw
|
||||
Et l'enregistrement est stocké temporairement sur le serveur
|
||||
|
||||
Scénario: Génération automatique du replay après arrêt
|
||||
Étant donné que mon live vient de se terminer
|
||||
Et que l'option "Publier replay automatiquement" est activée (par défaut)
|
||||
Quand le traitement post-live démarre
|
||||
Alors un job asynchrone est créé
|
||||
Et le job effectue les opérations suivantes:
|
||||
| opération | détail |
|
||||
| Conversion format | Opus raw → MP3 256 kbps |
|
||||
| Génération segments HLS | Segments .ts pour streaming |
|
||||
| Normalisation volume | -14 LUFS |
|
||||
| Détection silences prolongés | Nettoyage automatique |
|
||||
|
||||
Scénario: Publication du replay
|
||||
Étant donné que le traitement post-live est terminé
|
||||
Alors le replay est publié automatiquement sous 5 à 10 minutes
|
||||
Et le titre est "[REPLAY] [Titre live original]"
|
||||
Et la zone de diffusion est la même que le live
|
||||
Et les tags sont identiques au live
|
||||
Et la classification d'âge est identique
|
||||
Et le type géographique est "Géo-neutre" (contenu pérenne)
|
||||
|
||||
Scénario: Notification de disponibilité du replay aux auditeurs
|
||||
Étant donné que le replay de mon live est publié
|
||||
Quand un auditeur qui a écouté le live se reconnecte
|
||||
Alors il voit une notification in-app "Le replay de [Titre] est disponible"
|
||||
|
||||
Scénario: Option désactivation publication automatique replay
|
||||
Étant donné que je configure un nouveau live
|
||||
Quand je désactive l'option "Publier replay automatiquement"
|
||||
Et que je démarre puis arrête le live
|
||||
Alors le live est enregistré
|
||||
Mais le replay n'est pas publié automatiquement
|
||||
Et je peux décider manuellement de le publier plus tard
|
||||
|
||||
Scénario: Suppression manuelle du replay après publication
|
||||
Étant donné que mon live a généré un replay publié
|
||||
Quand j'accède à mes contenus
|
||||
Alors je vois le replay dans ma liste
|
||||
Et je peux le supprimer comme n'importe quel contenu
|
||||
Quand je supprime le replay
|
||||
Alors le fichier source Opus raw est supprimé immédiatement
|
||||
|
||||
Scénario: Conservation fichier source Opus raw
|
||||
Étant donné que mon live est terminé
|
||||
Et que le replay est publié
|
||||
Alors le fichier Opus raw est conservé pendant 7 jours
|
||||
Et après 7 jours, le fichier raw est supprimé automatiquement
|
||||
Et seul le MP3 256 kbps est conservé
|
||||
|
||||
Scénario: Modification du replay interdite
|
||||
Étant donné que mon live a généré un replay publié
|
||||
Quand j'essaie de modifier l'audio du replay
|
||||
Alors l'action est refusée
|
||||
Et je vois le message "Les replays ne peuvent pas être modifiés pour garantir l'intégrité de l'enregistrement"
|
||||
Et je peux uniquement modifier les métadonnées (titre, description)
|
||||
|
||||
Scénario: Statistiques du live disponibles après arrêt
|
||||
Étant donné que mon live est terminé
|
||||
Quand j'accède aux statistiques
|
||||
Alors je vois:
|
||||
| métrique | exemple valeur |
|
||||
| Durée totale | 1h 23min |
|
||||
| Nombre d'auditeurs max | 247 |
|
||||
| Nombre d'auditeurs moyen | 183 |
|
||||
| Nombre de likes | 89 |
|
||||
| Nombre d'abonnements | 12 |
|
||||
| Signalements reçus | 0 |
|
||||
|
||||
Scénario: Live terminé avec signalements en cours
|
||||
Étant donné que mon live a reçu 3 signalements pendant la diffusion
|
||||
Quand le live se termine
|
||||
Alors le replay n'est pas publié automatiquement
|
||||
Et le contenu est en attente de modération
|
||||
Et je vois le message "Votre replay sera publié après vérification suite aux signalements reçus"
|
||||
Et un modérateur doit valider ou refuser le replay sous 24h
|
||||
|
||||
Scénario: Arrêt forcé par un modérateur
|
||||
Étant donné que je diffuse un live
|
||||
Et qu'un modérateur détecte du contenu interdit
|
||||
Quand le modérateur clique sur "Arrêter le live immédiatement"
|
||||
Alors le live s'arrête sans compte à rebours
|
||||
Et je vois le message "Votre live a été interrompu par la modération"
|
||||
Et je reçois une notification détaillant la raison
|
||||
Et le replay n'est pas publié
|
||||
Et le fichier source est conservé 30 jours pour appel
|
||||
|
||||
Scénario: Métriques de bande passante pendant le live
|
||||
Étant donné que je diffuse un live
|
||||
Et que 100 auditeurs écoutent simultanément
|
||||
Alors la bande passante consommée est d'environ 4.8 Mbps via NGINX Cache
|
||||
Et le coût estimé infrastructure est d'environ 0.02€ par heure de diffusion
|
||||
Et je peux voir ces métriques en temps réel dans l'interface créateur
|
||||
|
||||
Scénario: Live sans auditeurs pendant 5 minutes
|
||||
Étant donné que je diffuse un live
|
||||
Et qu'aucun auditeur n'écoute depuis 5 minutes
|
||||
Alors je vois un message d'information "Aucun auditeur actuellement connecté"
|
||||
Mais le live continue normalement
|
||||
Et je peux choisir de continuer ou d'arrêter
|
||||
|
||||
Scénario: Qualité audio du replay supérieure au live
|
||||
Étant donné que mon live était diffusé en Opus 48 kbps
|
||||
Quand le replay est généré
|
||||
Alors le replay est encodé en MP3 256 kbps
|
||||
Et la qualité audio du replay est supérieure au live
|
||||
Et la taille du fichier est optimisée pour le stockage long terme
|
||||
Reference in New Issue
Block a user