# Cahier des charges — TubeFactory

> **Nom :** TubeFactory  
> **Domaine :** `https://tubefactory.watys.fr/`  
> **Date :** 20 juillet 2026  
> **Statut :** infra OK — dev V1 à démarrer  
> **Version document :** 0.1

---

## 1. En une phrase

**TubeFactory** est une **plateforme web** qui industrialise la production YouTube : gestion de **plusieurs chaînes**, idées, pipeline vidéo, templates et planning — **tout dans l’application**, sans tableur ni fichiers éparpillés.

---

## 2. Ce que ce n’est PAS (pour l’instant)

| Non | Pourquoi |
|-----|----------|
| Choix de niche / contenu | Le contenu sera **alimenté dans l’app plus tard** |
| Génération auto de vidéos complètes en V1 | On construit d’abord **l’usine** |
| Tableur / Excel / Google Sheets | Source unique = **la plateforme** |
| Lié aux autres projets (PokerDecide, BenefScan…) | Projet **à part** |

---

## 3. Principe directeur

```
[ Contenu (plus tard) ]  →  alimente  →  [ TubeFactory = usine ]
```

- **Phase 1** : structure, chaînes, pipeline, interface.
- **Phase 2+** : import, IA, stats YouTube, upload API, etc.

---

## 4. Stack technique

| Couche | Techno |
|--------|--------|
| Front | HTML5, CSS3, JavaScript **vanilla** |
| Back | PHP 8.x **natif** (pas Laravel/Symfony) |
| API | Endpoints PHP JSON |
| Base | SQLite (V1) ou MariaDB (si volume) |
| Médias | Fichiers sur disque, **référencés** en BDD |
| Serveur | Nginx + PHP-FPM sur LXC Debian |
| URL | `https://tubefactory.watys.fr/` |

Aligné avec PokerDecide / infra habituelle `*.watys.fr`.

---

## 5. Infrastructure

| Élément | Valeur |
|---------|--------|
| **URL** | `https://tubefactory.watys.fr/` |
| **CTID** | 9024 |
| **IP** | 10.10.11.146 |
| **SSH** | `dev@10.10.11.146` |
| **Dossier** | `/var/www/app` |
| **RAM / CPU** | 4096 Mo / 2 cœurs |
| **DNS + HTTPS** | OK |
| **Telegram** | `-5056782597` |
| **Cursor CLI** | installé |

---

## 6. Architecture multi-chaînes (dès V1)

Même avec **une seule chaîne** au début, le modèle est **N chaînes** :

```
                    ┌── Chaîne A
TubeFactory ────────┼── Chaîne B
                    └── Chaîne C
```

Chaque **chaîne** = profil indépendant :

| Champ profil | Description |
|--------------|-------------|
| Nom | Libellé interne + nom public |
| Langue | FR, EN… |
| Ton | Sérieux, dynamique… (texte libre) |
| Formats | Short / long / mix |
| Fréquence cible | ex. 2 vidéos / semaine |
| Voix | Référence voix (TTS ou humain) |
| Charte visuelle | Couleurs, style miniature |
| Templates liés | Script, description, titre |
| Compte YouTube | Référence (pas de secret en clair) |
| Actif | Oui / non |

---

## 7. Modules fonctionnels

### 7.1 Dashboard (Must V1)

- Vue globale multi-chaînes
- Vidéos **en production** (compteur)
- Idées **en attente**
- Prochaines **échéances** planning
- Filtre par chaîne

### 7.2 Chaînes (Must V1)

- CRUD chaînes (créer, lire, modifier, désactiver)
- Page détail : réglages + stats basiques (nombre idées, vidéos en cours)

### 7.3 Banque d’idées (Must V1)

| Statut idée | Signification |
|-------------|---------------|
| brouillon | Notée, pas validée |
| validée | Prête à entrer en prod |
| en_prod | Liée à une fiche vidéo |
| publiée | Terminée |
| archivée | Hors circuit |

Champs : titre, chaîne, notes, mots-clés, priorité, date souhaitée.

### 7.4 Pipeline production (Must V1)

Chaque **vidéo** = fiche avec étapes et statuts.

**Étapes par défaut (fixes en V1) :**

1. Idée  
2. Script  
3. Voix  
4. Visuels  
5. Montage  
6. Miniature  
7. Publication  
8. Publié  

Par fiche :
- Chaîne liée
- Idée source (optionnel)
- Statut étape courante
- Script (texte dans l’app)
- Liens / refs médias (audio, mp4, images)
- Métadonnées publication (titre SEO, description, tags)
- URL YouTube une fois publiée

**Vues UI :**
- Liste filtrable
- **Kanban** par colonne d’étape (Must V1)

### 7.5 Templates (Must V1)

Par chaîne :
- Modèle script (structure)
- Modèle description YouTube
- Modèle titre
- Modèle miniature (structure texte + consignes visuelles)

Édition dans l’app, pas de fichiers externes.

### 7.6 Planning (Should V1)

- Calendrier ou liste **par semaine**
- Vidéos / idées avec date cible
- Retards visibles

### 7.7 Médias (Should V1)

- Upload ou chemin serveur
- Rattaché à une fiche vidéo
- Types : audio, vidéo, image
- Métadonnées en BDD, fichier sur disque

### 7.8 Utilisateurs (V1 simple)

- **Un seul utilisateur** (admin) en V1
- Login basique (session PHP)
- Multi-utilisateurs = V2

---

## 8. Hors V1 (roadmap)

| Module | Version |
|--------|---------|
| Stats YouTube (API) | V2 |
| Génération script / voix IA | V2 |
| Upload YouTube semi-auto | V2 |
| A/B miniatures | V2 |
| Étapes pipeline **configurables** par chaîne | V2 |
| Multi-comptes utilisateurs | V2 |
| Notifications Telegram | V2 |

---

## 9. Structure applicative (indicatif)

```
/var/www/app/
├── public/
│   ├── index.php
│   ├── css/
│   └── js/
├── api/
│   ├── channels.php
│   ├── ideas.php
│   ├── videos.php
│   └── templates.php
├── lib/
│   ├── Database.php
│   └── Auth.php
├── data/
│   ├── tubefactory.sqlite
│   └── media/          # fichiers uploadés
└── docs/
    └── CAHIER-DES-CHARGES.md
```

---

## 10. Maquette texte — Dashboard

```
┌──────────────────────────────────────────────────────────┐
│ TubeFactory          [ Chaîne ▼ Toutes ]    [ + Chaîne ] │
├──────────────────────────────────────────────────────────┤
│ Dashboard │ Chaînes │ Idées │ Production │ Templates     │
├──────────────────────────────────────────────────────────┤
│ En production: 5    Idées en attente: 23                 │
│                                                          │
│ KANBAN (filtre chaîne)                                   │
│ Idée │ Script │ Voix │ Montage │ Mini │ Publié           │
│ [ ]  │ [ ]    │ [ ]  │ [ ]     │ [ ]  │ [x]             │
└──────────────────────────────────────────────────────────┘
```

---

## 11. Critères de succès V1

1. Créer **2 chaînes** fictives et les distinguer partout  
2. Ajouter **10 idées** réparties sur les chaînes  
3. Faire avancer **3 fiches vidéo** dans le kanban jusqu’à « Publié »  
4. **Aucun tableur** utilisé pour le suivi  
5. Tout accessible via `https://tubefactory.watys.fr/`

---

## 12. Décisions actées

- [x] Nom : **TubeFactory**
- [x] Multi-chaînes dès la conception
- [x] Tout dans la plateforme (pas de tableur)
- [x] Pas de focus contenu / niche au démarrage
- [x] Stack PHP + JS natif
- [ ] Groupe Telegram dédié
- [ ] Étapes pipeline configurables → V2

---

## 13. Reprise (Telegram / Cursor)

```
Lis CAHIER-DES-CHARGES.md du projet TubeFactory.
On construit l’usine (chaînes, idées, kanban, templates).
Pas de contenu éditorial pour l’instant.
Stack PHP/JS natif sur LXC tubefactory.watys.fr
```

---

*Document TubeFactory — juillet 2026.*
