Files
youtube_personal/ETAPE18_RADAR_V1.md
T

115 lines
2.2 KiB
Markdown

# Étape 18 - Radar V1
Première version du système original de vidéos proposées.
## Principe
Le classement est calculé localement à partir de :
- historique ;
- favoris ;
- chaînes déjà regardées ;
- sujets extraits des titres ;
- durée de la vidéo ;
- mode de session choisi ;
- feedback `Pas maintenant` ;
- feedback `Moins de cette chaîne`.
YouTube sert seulement à fournir des vidéos candidates via les recherches
déjà utilisées par l'application. Le score final et l'ordre sont calculés par
YouTube Personal.
## Nouveautés de l'accueil
### Radar personnel
Sections :
```text
Pour toi maintenant
Continuer ce sujet
Quelque chose de différent
À redécouvrir
Continuer à regarder
Vues récemment
Favoris récents
```
### Modes de session
```text
Comme d'habitude
Je veux du nouveau
Apprendre
Détente
Courtes vidéos
Long format
```
Le mode ne modifie pas définitivement le profil. Il influence seulement la
génération actuelle du Radar.
### Mélanger mon Radar
Force une nouvelle combinaison de candidats et de classement.
### Pourquoi cette vidéo ?
Chaque proposition possède un score sur 100 et une explication :
```text
Proche de ce que tu regardes maintenant
Thèmes communs : ...
Chaîne proche de tes habitudes
Sujet proche de tes favoris
Nouvelle chaîne pour toi
```
La fenêtre affiche aussi la contribution du score :
```text
Sujet +...
Habitudes +...
Favoris +...
Découverte +...
Session +...
Feedback -...
```
### Feedback
Menu `...` de chaque proposition :
```text
Pourquoi cette vidéo ?
Pas maintenant
Moins de cette chaîne
```
`Pas maintenant` masque la vidéo pendant 30 jours.
`Moins de cette chaîne` ajoute un malus persistant à cette chaîne.
## Fichiers
```text
lib/models/radar_recommendation.dart
lib/services/radar_service.dart
lib/screens/home_page.dart
```
## Test
Extraire le ZIP à la racine :
```powershell
cd "D:\07-Logiciels\23-youtube_personal"
flutter run -d windows
```
Pas besoin de `flutter clean`.
Le premier chargement du Radar peut prendre quelques secondes car il lance
plusieurs recherches candidates. Les générations suivantes sont gardées en
cache mémoire tant que l'historique/favoris/feedback ne changent pas.