Files
roadwave/docs/domains/content/rules/detection-contenu-protege.md
jpgiannetti 5e5fcf4714 refactor(docs): réorganiser la documentation selon principes DDD
Réorganise la documentation du projet selon les principes du Domain-Driven Design (DDD) pour améliorer la cohésion, la maintenabilité et l'alignement avec l'architecture modulaire du backend.

**Structure cible:**
```
docs/domains/
├── README.md (Context Map)
├── _shared/ (Core Domain)
├── recommendation/ (Supporting Subdomain)
├── content/ (Supporting Subdomain)
├── moderation/ (Supporting Subdomain)
├── advertising/ (Generic Subdomain)
├── premium/ (Generic Subdomain)
└── monetization/ (Generic Subdomain)
```

**Changements effectués:**

Phase 1: Création de l'arborescence des 7 bounded contexts
Phase 2: Déplacement des règles métier (01-19) vers domains/*/rules/
Phase 3: Déplacement des diagrammes d'entités vers domains/*/entities/
Phase 4: Déplacement des diagrammes flux/états/séquences vers domains/*/
Phase 5: Création des README.md pour chaque domaine
Phase 6: Déplacement des features Gherkin vers domains/*/features/
Phase 7: Création du Context Map (domains/README.md)
Phase 8: Mise à jour de mkdocs.yml pour la nouvelle navigation
Phase 9: Correction automatique des liens internes (script fix-markdown-links.sh)
Phase 10: Nettoyage de l'ancienne structure (regles-metier/, diagrammes/, features/)

**Configuration des tests:**
- Makefile: godog run docs/domains/*/features/
- scripts/generate-bdd-docs.py: features_dir → docs/domains

**Avantages:**
 Cohésion forte: toute la doc d'un domaine au même endroit
 Couplage faible: domaines indépendants, dépendances explicites
 Navigabilité améliorée: README par domaine = entrée claire
 Alignement code/docs: miroir de backend/internal/
 Onboarding facilité: exploration domaine par domaine
 Tests BDD intégrés: features au plus près des règles métier

Voir docs/REFACTOR-DDD.md pour le plan complet.
2026-02-07 17:15:02 +01:00

15 KiB

18. Détection de contenu protégé par droits d'auteur

18.1 Périmètre et objectifs

Décision : Focus musique uniquement, approche minimaliste MVP

Contenu protégé couvert :

Type Couvert MVP Justification
Musique OUI Risque principal (80% violations), détectable auditivement
Films/séries NON Rare dans podcasts audio, complexité technique élevée
Livres audio NON Difficile à distinguer de lecture légitime
Jingles/pubs NON Usage souvent transformatif, faible risque juridique

Objectifs :

  1. Juridique : Conformité droits d'auteur UE (directive 2019/790)
  2. Protection plateforme : Éviter contentieux avec ayants droit (SACEM, labels)
  3. Qualité : Encourager contenu original créateurs
  4. Pragmatisme : Coût 0€ au MVP, scalable post-MVP

Non-objectifs MVP :

  • Détection automatisée (fingerprinting audio)
  • Intégration bases de données commerciales (ACRCloud, etc.)
  • Détection temps réel sur lives (voir section 7)
  • Système de licences musicales

18.2 Règles d'utilisation de musique

Décision : Tolérance 30 secondes pour extraits (fair use)

Cas autorisés :

Cas d'usage Durée max Condition Exemple
Citation/critique 30 secondes Commentaire ajouté, contexte éditorial Review album, analyse musicale
Musique libre de droits Illimitée Preuve licence si demandée Epidemic Sound, Artlist, CC0
Musique originale Illimitée Créateur = compositeur/interprète Podcast musical créateur
Domaine public Illimitée Œuvre >70 ans après mort auteur Classique pré-1950

Cas interdits :

Violation Description Détection
Musique intégrale Titre complet en fond ou standalone Écoute modérateur (évident)
Compilation DJ Mix de titres protégés sans droits Écoute modérateur
Extrait >30s Citation longue sans transformation Chronométrage manuel si signalé
Karaoké Instrumental protégé + voix créateur Écoute modérateur (reconnaissable)

Exception fair use (30 secondes) :

Conditions cumulatives :

  1. Extrait ≤30 secondes ET
  2. Usage transformatif : commentaire, critique, analyse ET
  3. Pas de substitution à l'œuvre originale ET
  4. Mention titre + artiste dans métadonnées (recommandé)

Justification juridique :

  • Directive UE 2019/790 : exception citation à des fins de critique
  • Jurisprudence FR : citation courte autorisée si justifiée
  • 30s = standard industrie (YouTube, TikTok)

18.3 Processus de détection MVP

Décision : Validation manuelle lors des 3 premiers contenus uniquement

Workflow intégré à la validation existante (voir section 4.3) :

Upload contenu (créateur <3 validés)
    ↓
File d'attente modération
    ↓
Modérateur écoute 30s (déjà existant)
    ↓
Vérification AJOUTÉE :
    ├─ Musique en fond détectée ?
    │   ├─ OUI → Musique reconnaissable (titre connu) ?
    │   │   ├─ OUI → Durée >30s ?
    │   │   │   ├─ OUI → REFUS (violation droits)
    │   │   │   └─ NON → ACCEPTÉ (fair use)
    │   │   └─ NON → ACCEPTÉ (musique libre probable)
    │   └─ NON → ACCEPTÉ (pas de musique)
    └─
Validation normale continue

Critères de détection manuelle :

Indicateur Action modérateur
Musique reconnaissable (hit radio, classique célèbre) Chronométrer l'extrait
Extrait >30s Refus automatique
Extrait ≤30s Vérifier usage transformatif (commentaire ?)
Musique d'ambiance inconnue Accepter (probable musique libre)
Doute Demander preuve licence au créateur

Après 3 contenus validés :

  • Créateur = statut "Vérifié"
  • Publication immédiate sans validation préalable
  • Modération a posteriori uniquement (si signalé)

Justification :

  • Coût 0€ : réutilise écoute 30s déjà effectuée
  • Scalable : pas de validation pour créateurs établis
  • Pragmatique : détecte violations évidentes (90% des cas)
  • Humain nécessaire : fair use impossible à automatiser fiablement

18.4 Signalement et modération a posteriori

Décision : Réutilise système existant section 14

Signalement utilisateur :

  • Catégorie existante : 🎵 Droits d'auteur
  • Formulaire : identique autres signalements
  • Commentaire optionnel : "Quelle musique ? À quel timestamp ?"

Traitement modérateur :

  1. Signalement reçu → file d'attente priorité MOYENNE (délai 24-48h)
  2. Modérateur écoute le timestamp indiqué
  3. Vérification :
    • Musique identifiable ? → Recherche Shazam/SoundHound (outil externe)
    • Durée extrait ?
    • Usage transformatif (commentaire/critique) ?
  4. Décision :
    • Violation confirmée → Application sanctions (voir 18.5)
    • Fair use → Rejet signalement
    • Doute → Escalade modérateur senior

Outils modérateur :

Outil Usage Coût
Écoute manuelle Détection présence musique 0€
Shazam/SoundHound Identification titre (externe, outil perso modérateur) 0€
Chronomètre Mesure durée extrait 0€
Notes Documentation décision (audit DSA) 0€

Priorité traitement :

  • Score IA : NON APPLICABLE (pas d'IA au MVP)
  • Priorité : MOYENNE (délai 24-48h jours ouvrés)
  • Escalade senior si :
    • Créateur conteste avec preuve licence
    • Doute fair use complexe
    • Récidive (>2 violations)

18.5 Sanctions

Décision : Échelle progressive avec tolérance première violation

Grille de sanctions :

Occurrence Sanction Durée Justification
1ère violation ⚠️ Avertissement + Suppression contenu - Tolérance erreur bonne foi
2e violation 🟡 Strike 1 + Suppression + Suspension upload 3 jours Négligence confirmée
3e violation 🟠 Strike 2 + Suppression + Suspension upload 7 jours Récidive caractérisée
4e violation 🟠 Strike 3 + Suppression + Suspension upload 30 jours Abus répété
5e violation 🔴 Strike 4 + Ban définitif compte créateur Permanent Abus délibéré

Détail sanctions :

Avertissement (1ère fois) :

  • Suppression contenu immédiate
  • Email + push + in-app : "⚠️ Contenu retiré pour violation droits d'auteur"
  • Explication pédagogique : règles musique, lien vers CGU
  • Pas de strike (tolérance)
  • Créateur peut republier version corrigée

Strike 1 (2e fois) :

  • Suppression contenu
  • Strike ajouté au compteur (visible profil créateur)
  • Suspension upload 3 jours
  • Email détaillé : titre détecté, timestamp, règle violée

Strike 2 (3e fois) :

  • Idem Strike 1
  • Suspension upload 7 jours
  • Warning : "Strike 2/4 - Vous approchez du seuil critique"

Strike 3 (4e fois) :

  • Idem Strike 2
  • Suspension upload 30 jours
  • Warning : "Strike 3/4 - Prochaine violation = ban définitif"

Strike 4 - Ban définitif (5e fois) :

  • Désactivation compte créateur
  • Tous contenus dépubliés
  • Pas de création nouveau compte (email/téléphone blacklisté)

Exceptions - Pas de sanction si :

  • Créateur prouve licence acquise (facture, abonnement Epidemic Sound, etc.)
  • Musique = domaine public vérifié
  • Musique = œuvre originale créateur (preuve registre SACEM si demandée)
  • Extrait ≤30s + usage transformatif évident (critique musicale)

Réhabilitation :

  • -1 strike automatique tous les 6 mois sans nouvelle violation
  • Conditions : aucun signalement validé pendant la période
  • Minimum : 0 strikes (pas de valeur négative)
  • Avertissement (1ère fois) ne compte pas pour la réhabilitation

Exemple :

Créateur a Strike 2 (7 jours de suspension)
→ 6 mois sans incident
→ Strike 2 devient Strike 1
→ 6 mois additionnels sans incident
→ Strike 1 effacé, compte propre

Justification :

  • Tolérance 1ère fois : évite punir erreurs honnêtes
  • Escalade progressive : dissuasion sans brutalité
  • 4 strikes avant ban : cohérent avec système global (sections 9, 14)
  • Réhabilitation 6 mois : encourage bon comportement long terme
  • Conforme DSA : sanctions proportionnées + droit d'appel

18.6 Processus d'appel

Décision : Réutilise système existant section 14.3.3

Accès :

  • Bouton "Contester cette décision" dans notification sanction
  • Délai : 7 jours après notification

Formulaire d'appel :

Champs standards (voir section 14) + champs spécifiques :

Champ additionnel Type Obligatoire
Preuve licence Upload PDF/image (facture, contrat) Optionnel
Lien source musique libre URL (YouTube Audio Library, etc.) Optionnel
Déclaration œuvre originale Checkbox Optionnel

Traitement appel :

  1. Modérateur senior examine :
    • Preuves fournies (licence, facture)
    • Réécoute contenu (usage transformatif ?)
    • Recherche musique (domaine public ?)
  2. Délai : 72h (standard section 14)
  3. Décision finale :
    • Appel accepté → Strike retiré + Contenu rétabli + Excuse formelle
    • Appel rejeté → Sanction maintenue + Explication détaillée

Cas particulier : Musique libre mal détectée

Si créateur prouve musique = licence Epidemic Sound / Artlist :

  • Appel automatiquement accepté
  • Ajout titre à whitelist interne (évite futures erreurs)
  • Excuse + compensation (ex: 1 mois Premium offert)

Justification :

  • Réutilise processus éprouvé (section 14)
  • Preuve licence = résout 90% des cas
  • Délai 72h acceptable (pas de suspension immédiate sur appel)

18.7 Éducation créateurs

Décision : Prévention via documentation + tooltips

Ressources disponibles :

Ressource Contenu Accès
Page CGU dédiée Règles musique détaillées + exemples Lien dans CGU + FAQ
Tooltip upload "⚠️ Pas de musique protégée >30s" Interface upload contenu
Liste musique libre Liens Epidemic, Artlist, YouTube Audio Library Page aide créateurs
Exemples fair use Cas OK : review 20s + commentaire / Cas KO : hit complet en fond FAQ illustrée

Messages préventifs :

Lors du premier upload (popup) :

🎵 Attention aux droits d'auteur

Vous pouvez utiliser :
✅ Votre propre musique originale
✅ Musique libre de droits (Epidemic Sound, etc.)
✅ Extraits courts ≤30s pour critique/analyse

Interdit :
❌ Musique populaire en intégrale ou fond prolongé
❌ Compilation de hits sans droits

[J'ai compris] [En savoir plus]

Justification :

  • Prévention > sanction (économie modération)
  • Créateurs informés = moins de violations
  • Coût : 0€ (documentation statique)

18.8 Évolution post-MVP

Décision : Audio fingerprinting open-source si besoin scalabilité

Déclencheurs réintégration :

  1. Volume signalements "Droits d'auteur" >50/mois
  2. Temps modération musique >20h/mois
  3. Contentieux avec ayants droit (SACEM, labels)

Solution technique prévue :

Composant Technologie Fonction Coût
Fingerprinting Chromaprint (open-source) Génération empreinte audio 0€
Base de référence MusicBrainz + AcoustID Comparaison empreintes 0€
Matching Python + PostgreSQL Détection similarité >85% 0€
Infrastructure VPS 8GB RAM + 4 vCPU Processing async 50-100€/mois

Workflow automatisé :

Upload contenu
    ↓
Job async : extraction empreinte audio (Chromaprint)
    ↓
Comparaison avec base MusicBrainz
    ↓
Match >95% → FLAG automatique "Musique détectée : [Titre]"
    ↓
Modérateur humain vérifie :
    ├─ Durée extrait ?
    ├─ Usage transformatif ?
    └─ Décision finale (accept/reject)

Limites connues :

  • Précision ~70% (vs 95%+ API commerciales)
  • Base MusicBrainz incomplète (surtout hits récents)
  • Faux positifs possibles (musique libre similaire)
  • Mais : gratuit + self-hosted + scalable

Alternative commerciale (si budget disponible) :

  • ACRCloud : 300-800€/mois, précision 95%+, base exhaustive
  • Audible Magic : 500-1000€/mois, musique + films/TV
  • Décision différée post-MVP selon besoins réels

Récapitulatif Section 18

Point Décision Coût
Périmètre MVP Musique uniquement (80% des violations) 0€
Tolérance 30 secondes pour extraits (fair use) 0€
Détection MVP Manuelle lors des 3 premiers contenus 0€
Outils modérateur Écoute + Shazam externe + Chronomètre 0€
Sanctions Progressive : Avertissement → Strike 1 (3j) → Strike 2 (7j) → Strike 3 (30j) → Strike 4 (ban) 0€
Appel Réutilise processus section 14 (délai 72h) 0€
Éducation CGU + Tooltips + FAQ musique libre 0€
Post-MVP Chromaprint + MusicBrainz (si >50 signalements/mois) 50-100€/mois

Coût total MVP : 0€ (validation manuelle intégrée)

Conformité juridique :

  • Directive UE 2019/790 (droit d'auteur + exception citation)
  • DSA (Digital Services Act) : modération réactive + droit d'appel
  • SACEM/SDRM : protection ayants droit + processus contentieux
  • Fair use : tolérance 30s conforme jurisprudence FR/UE

Scalabilité :

  • 0-1000 contenus/mois : validation manuelle suffisante (3h/mois modération)
  • 1000-10K contenus/mois : fingerprinting open-source requis
  • 10K+ contenus/mois : API commerciale à considérer (ACRCloud)

Risques identifiés :

Risque Probabilité Impact Mitigation
Contentieux ayant droit Faible Élevé Réactivité suppression (<24h) + CGU claires
Faux négatifs (violation non détectée) Moyenne Moyen Signalements utilisateurs + modération a posteriori
Faux positifs (musique libre bloquée) Faible Faible Processus d'appel 72h + whitelist
Volume signalements Faible Moyen Évolution fingerprinting si >50/mois

Lien avec autres sections :

  • Section 4.3 : Validation des 3 premiers contenus (workflow intégré)
  • Section 7.2 : Interdictions lives + fingerprinting post-MVP
  • Section 14 : Système modération (signalements, sanctions, appels)

Prochaine section à clarifier : Section 11 (Mode offline) ou Section 12 (Gestion des erreurs)