Files
roadwave/docs/regles-metier/11-creation-publication-contenu.md
2026-01-31 11:45:11 +01:00

9.8 KiB
Raw Permalink Blame History

4. Création et publication de contenu

4.1 Upload et encodage

Décision : Formats universels avec encodage asynchrone

Formats acceptés :

  • MP3 (.mp3)
  • AAC (.aac, .m4a)
  • WAV, FLAC (trop lourds, inutiles en voiture)

Limites :

Paramètre Valeur Justification
Taille maximale 200 MB ~4h de podcast à 128 kbps
Durée maximale 4 heures Suffisant pour podcasts longs
Validation format Client + backend Double sécurité

Pipeline d'encodage :

1. Upload fichier (MP3/AAC) → OVH Object Storage temporaire
2. Job asynchrone (worker Go + FFmpeg) :
   - Validation format et intégrité
   - Réencodage Opus 3 profils (24/48/64 kbps)
   - Génération segments HLS (.m3u8 + .ts)
   - Génération image couverture par défaut
3. Suppression fichier original (économie stockage)
4. Notification créateur : "Contenu prêt à publier"

Temps d'encodage estimé :

  • Contenu 5 min → ~30 secondes
  • Podcast 1h → ~5 minutes
  • Podcast 4h → ~20 minutes

Profils Opus générés :

Qualité Bitrate Usage
Basse 24 kbps 2G/Edge
Standard 48 kbps 3G (défaut)
Haute 64 kbps 4G/5G

Écoute accélérée :

Vitesse Usage
0.75x Compréhension difficile (accent, technique)
1.0x Normal (défaut)
1.25x Gain léger
1.5x Podcasts longs
2.0x Survol rapide (modérateurs)

Disponible pour :

  • Modérateurs (validation rapide : 30s → 15s à 2x)
  • Auditeurs (tous les contenus)
  • Standard industrie (YouTube, Spotify, Apple Podcasts)

Justification :

  • Simplicité : 2 formats couvrent 95% des cas d'usage
  • Coût optimisé : pas de conversion WAV/FLAC lourds
  • Stockage réduit : suppression original après encodage
  • Scalabilité : workers horizontalement (Kubernetes jobs)
  • Productivité : écoute accélérée = double productivité modération

4.2 Métadonnées obligatoires

Décision : Minimaliste pour réduire friction

Champs obligatoires :

Champ Format Validation
Titre 5-100 caractères Alphanumérique + ponctuation basique
Type géo Enum Ancré / Contextuel / Neutre
Zone diffusion Composite Voir détails ci-dessous
Tags Enum 1 à 3 parmi liste prédéfinie
Classification âge Enum Tout public / 13+ / 16+ / 18+

Zone de diffusion (obligatoire) :

Options mutuellement exclusives :

  • Point GPS : latitude + longitude + rayon (100m à 10km)
  • Ville : sélection dans référentiel INSEE
  • Département : sélection liste
  • Région : sélection liste
  • National : France entière

Tags disponibles (1 à 3 obligatoires) :

  • Automobile
  • Voyage
  • Famille
  • Amour
  • Musique
  • Économie
  • Cryptomonnaie
  • Politique
  • Culture générale
  • Sport
  • Technologie
  • Santé

Champs optionnels :

  • Description (ajout ultérieur)
  • Image couverture (génération auto)

Image de couverture par défaut :

Génération automatique selon règles :

  • Icône selon type géo : 📍 Ancré / 🌍 Contextuel / 🎧 Neutre
  • Couleur selon tag principal : bleu (Auto), vert (Voyage), rouge (Musique), etc.
  • Format 800×800px, PNG
  • Personnalisable ultérieurement (post-MVP)

Exemple de publication :

Titre : "Histoire de la Tour Eiffel"
Type géo : Ancré
Zone : Point GPS (48.8584, 2.2945, rayon 500m)
Tags : Voyage, Culture générale
Classification : Tout public
→ Image auto : 📍 fond bleu-vert (Voyage)

Justification :

  • Friction minimale : 5 champs max = 2 min de publication
  • Publication rapide : pas de blocage sur description/image
  • Coût 0 : pas de génération IA au MVP
  • Évolutif : champs optionnels ajoutables ultérieurement

4.3 Validation des 3 premiers contenus

Décision : Validation manuelle par équipe modération RoadWave

Processus nouveau créateur :

  1. Créateur upload ses 3 premiers contenus
  2. Contenus passent en file d'attente modération
  3. Modérateur junior RoadWave :
    • Écoute 30 secondes (ou 15s à 2x)
    • Vérifie métadonnées
    • Valide ou rejette avec raison
  4. Si accepté : contenu publié + notification créateur
  5. Si refusé : notification avec raison détaillée + lien vers règles
  6. Après 3 contenus validés : créateur passe en statut vérifié

Critères de validation :

Critère Détails
Qualité audio Compréhensible (pas de grésillement excessif)
Respect règles Pas de contenu prohibé évident (haine, spam, illégal)
Classification âge Cohérente avec contenu écouté
Tags pertinents Correspondance minimale avec contenu
Zone diffusion Cohérente (pas "Tour Eiffel" avec zone "National")

Délai de validation :

  • Objectif : 24-48h (jours ouvrés)
  • Priorité : FIFO (First In First Out)
  • Weekend : délai peut atteindre 72h
  • Message au créateur : "Validation en cours, délai estimé 24-48h"

Notification créateur :

Si accepté :

  • Email + push : " Votre contenu '[Titre]' est en ligne !"
  • Lien direct vers le contenu
  • Compteur : "2/3 contenus validés pour devenir créateur vérifié"

Si refusé :

  • Email + push : " Contenu '[Titre]' refusé"
  • Raison détaillée : "Qualité audio insuffisante" / "Tags non pertinents" / "Classification incorrecte" / etc.
  • Lien vers règles de publication
  • Possibilité de correction + resoumission

Après 3 validations :

Créateur obtient statut "Vérifié" :

  • Badge ✓ visible sur profil
  • Contenus futurs publiés immédiatement (modération a posteriori uniquement)
  • Modération seulement si signalé par utilisateurs

Outils modérateur :

  • Écoute accélérée (1.5x ou 2x) = double productivité
  • Interface dédiée : queue de contenus à valider
  • Raccourcis clavier : A (Accepter), R (Rejeter), Espace (Pause)
  • Historique créateur visible (si déjà 1-2 contenus validés)

Modération communautaire (post-MVP) :

⚠️ Non implémenté au MVP (complexité juridique)

Vision future (envisageable) :

  • Créateurs établis peuvent opt-in "Modérateur communautaire"
  • Formation obligatoire (30 min) + quiz (80%)
  • Pré-validation uniquement (validation finale toujours par équipe RoadWave)
  • Compensation : badges, premium offert
  • Attribution aléatoire (pas de collusion)

Justification décision MVP :

  • Responsabilité juridique : plateforme reste responsable (DSA EU)
  • Qualité garantie : modérateurs formés et mandatés
  • Anti-spam efficace : bloque 95% des abus dès le début
  • Coût raisonnable : 30s × 3 contenus = 1.5 min/créateur
  • UX acceptable : délai 24-48h expliqué clairement
  • Pas de validation par pairs au MVP = évite risques juridiques (collusion, compétence, conflits)

4.4 Modification et suppression

Décision : Modification métadonnées uniquement, suppression immédiate

Modification autorisée :

Élément Modifiable Justification
Titre Correction coquilles
Description Si ajoutée ultérieurement
Tags Ajustement pertinence
Image couverture Personnalisation
Audio Intégrité contenu
Zone diffusion Évite manipulation algo
Type géo Évite manipulation algo
Classification âge Sécurité mineurs

Raisons restrictions :

Audio non modifiable :

  • Évite fraude : uploader contenu validé → remplacer par spam
  • Intégrité : auditeurs doivent écouter ce qui a été validé

Zone/Type non modifiables :

  • Évite manipulation : créer "Local Paris" → changer en "National" pour boost visibilité
  • Évite abus : créer "Neutre" (faible pondération géo) → changer en "Ancré" (forte pondération)

Classification non modifiable :

  • Évite contournement : uploader "Tout public" → passer en "18+" sans revalidation
  • Sécurité : garantit que classification a été vérifiée

Si besoin de changer audio/zone/classification :

  • Action : Supprimer contenu + republier
  • Si créateur <3 contenus validés : retourne en file validation
  • Si créateur ≥3 contenus validés : publication immédiate

Suppression de contenu :

Aspect Comportement
Délai Immédiat
Réversibilité Non
Historique auditeurs Marqué "Contenu supprimé par créateur"
Analytics plateforme Anonymisé et conservé
Fichiers cache Supprimés sous 24h

Exemple scénario suppression :

Créateur supprime podcast écouté par 1000 personnes
→ Cache/Storage : fichiers purgés sous 24h (NGINX Cache + OVH Object Storage)
→ BDD : entrée marquée "deleted", auteur anonymisé
→ Historique auditeurs : "Contenu supprimé" (conserve durée écoute pour stats)
→ Analytics : métriques globales conservées (anonymes, RGPD OK)

Notifications suppression :

  • Pas de notification aux auditeurs (pour éviter effet Streisand)
  • Historique reste consultable : "Vous avez écouté ce contenu le [date]"
  • Si auditeur tente de réécouter : "Ce contenu n'est plus disponible"

Justification :

  • Simplicité : règles claires et non-ambiguës
  • Sécurité : évite manipulations algorithme et contournements modération
  • Contrôle créateur : liberté totale de supprimer (RGPD)
  • Traçabilité : historique conservé pour analytics (anonymisé)
  • Coût 0 : pas de revalidation métadonnées

Récapitulatif Section 4