L'ingestion d'une vidéo dans Forge¶
Ce document décrit comment forge_mvc_video reçoit et enregistre une vidéo téléversée.
Le fichier de code correspondant est forge_mvc_video/ingest.py.
1. À quoi sert ce module ?¶
L'ingestion valide un upload vidéo (taille, extension), stocke la source à un emplacement sûr, et enregistre la vidéo dans le dépôt.
La validation profonde (vrai conteneur, durée) appartient au sondage ; aucun ffmpeg n'est lancé ici.
2. Ingérer une vidéo¶
from forge_mvc_video import ingest_video, VideoIngestError
try:
record = ingest_video(data, filename="clip.mov", title="Mon clip")
except VideoIngestError as err:
return Response.text(str(err), status=400)
3. La signature¶
def ingest_video(
data: bytes,
filename: str,
*,
title: str | None = None,
config: VideoConfig | None = None,
repository: VideoRepository | None = None,
now: datetime | None = None,
) -> dict[str, Any]
Contrairement à l'audio, l'ingestion vidéo enregistre la vidéo dans un dépôt (repository) en plus de stocker la source : le traitement (transcodage) est ensuite asynchrone.
4. Les validations et erreurs¶
L'ingestion refuse un fichier vide, trop volumineux (max_upload_mb) ou d'extension non autorisée, en levant VideoIngestError.
5. Contextes d'utilisation¶
- Contrôleur d'upload :
ingest_video(data, filename)puis déclencher le traitement. - Tests : injecter
configetrepositorypour des résultats déterministes.
6. Voir aussi¶
- Le sondage : la validation profonde, après l'ingestion.
- Le traitement : orchestre sondage, poster et transcodage.
- La configuration.