Studio et catalogue
Deux façons d'alimenter la plateforme : le studio web, ou un dossier rangé sur le disque. Les deux arrivent au même endroit.
Le studio#
Le studio est réservé aux administrateurs. Le bouton
Studio n'apparaît dans l'en-tête que pour eux ; un apprenant qui ouvre
une adresse /studio est renvoyé au catalogue, et l'API refuse de toute façon
ses écritures (403).
La page liste les formations, avec Nouvelle formation, l'édition, la suppression, et Comptes pour gérer les utilisateurs.
Éditer une formation#
- Titre modifiable en tête de page, enregistré par l'icône disquette.
- Ajouter un chapitre ; chaque chapitre se renomme, se supprime, et monte ou descend dans la formation.
- Ajouter un média dans un chapitre : un titre et un fichier vidéo ou audio.
- Sur chaque média : Monter, Descendre, Déplacer vers un autre chapitre (à la position choisie), Modifier (titre ou remplacement du fichier), Supprimer.
- Des actions de traitement : Transcrire, Générer le résumé, Convertir pour le web si un fichier ne se lit pas dans le navigateur.
Des pastilles indiquent l'état de chaque média : Conversion…, Transcription… et Résumé… avec leur pourcentage pendant le traitement, puis Transcrit et Résumé une fois prêts, ou Échec … en cas de problème.
position). Les fichiers et
dossiers gardent leur nom, ce qui garde stables les chemins, les transcriptions
et les liens.
Conversion à l'import#
Quand un fichier téléversé n'est pas un .mp4 (vidéo) ou un
.mp3 (audio), l'API l'enregistre, marque le média
processing, et publie un job media_conversion. Le worker
le passe dans ffmpeg vers MP4 H.264/AAC ou MP3.
Pendant ce temps, le fichier source porte un marqueur .src et n'est
pas listé au catalogue.
La décision se fonde sur l'extension, pas sur les codecs : un MP4 en HEVC est accepté tel quel. S'il ne se lit pas dans le navigateur, Convertir pour le web le ré-encode en H.264/AAC.
Les comptes#
Studio → Comptes liste les comptes, 25 par page, avec leur rôle et leur statut. Il n'y a pas d'inscription libre : c'est ici qu'un administrateur crée les accès.
- Nouveau compte : email, nom facultatif, mot de passe de 8 à 128 caractères, et interrupteur Administrateur. Transmettez le mot de passe à la personne ; elle peut le changer ensuite depuis son menu.
- Modifier : nom, rôle, Compte actif, nouveau mot de passe. L'email ne change pas. Désactiver un compte ou retirer le rôle admin prend effet à la requête suivante de la personne, sans attendre l'expiration de sa session.
- Supprimer efface aussi les notes, la progression et la consommation du compte.
Vous ne pouvez ni vous retirer le rôle admin, ni désactiver ou supprimer votre propre compte : l'instance ne peut pas se retrouver sans administrateur par erreur.
APP_FIRST_ADMIN_EMAIL et
APP_FIRST_ADMIN_PASSWORD, s'il n'existe pas encore. Un redémarrage ne change
pas son mot de passe. Pour ajouter un admin sans passer par l'interface :
docker compose exec api e-learning-cli create-admin --email vous@example.com
(le mot de passe est demandé). Voir Configuration.
Documents#
Ajouter un document dans un chapitre, avec un titre et un champ Associé à : une vidéo précise, ou Tout le chapitre. L'association se change ensuite depuis l'édition du document.
Extensions acceptées : .pdf, .md, .txt,
.csv, .doc, .docx, .ppt,
.pptx, .xls, .xlsx, .odt,
.ods, .odp, .png, .jpg,
.jpeg, .webp, .gif, .svg.
Les PDF, DOCX, Markdown, texte et CSV sont aussi indexés pour
l'assistant.
Le catalogue sur disque#
Tous les médias vivent sous APP_VIDEOS_PATH
(VIDEOS_HOST_PATH côté hôte), avec trois niveaux :
videos/
└── SQL pour les débutants/ ← formation
├── 01 - Premiers pas/ ← chapitre
│ ├── 01 - Installer Postgres.mp4
│ ├── 01 - Installer Postgres.txt transcription (générée)
│ ├── 01 - Installer Postgres.md résumé (généré)
│ ├── 01 - Installer Postgres.pdf document, rattaché à la vidéo
│ └── 02 - SELECT.mp4
└── 02 - Les index/
├── 01 - B-tree.mp4
└── Mémo.pdf document du chapitre- Le préfixe d'ordre (
01 -,01-,01_,01.) est retiré du titre affiché. - Un document dont le nom correspond à celui d'une vidéo, préfixe, casse et espaces ignorés, lui est rattaché automatiquement.
- Un
.txtou.mdportant le nom d'un.mp4ou.mp3n'est pas un document : c'est sa transcription ou son résumé. Vous pouvez déposer les vôtres. - La durée est lue par
ffprobe.
Réconcilier#
Après avoir ajouté, renommé ou supprimé des fichiers à la main :
docker compose exec api e-learning-cli reconcileLe chemin relatif de chaque fichier est la clé de rapprochement entre disque et base. Les identifiants (UUIDv7) des éléments déjà connus ne changent pas, donc la progression et les notes des apprenants sont préservées.
Des fichiers qui ne se lisent pas dans un navigateur ? Convertissez-les en lot :
docker compose exec api e-learning-cli convert --glob 'SQL pour les débutants/**/*.*'
docker compose exec api e-learning-cli reconcile
Cladèse