Aller au contenu

Bonjour Forge Audio

Objectif : premier contact avec le module opt-in forge-mvc-audio, une chaîne audio sans état.

Ce que vous allez apprendre : vérifier que le module répond et inspecter sa configuration (load_audio_config) — stockage, limites, binaires ffprobe/ffmpeg — avec le token masqué. Aucune base de données.

Premier palier du niveau débutant de la progression audio (vue d'ensemble des starters).

Module opt-in

Ce starter suppose forge-mvc-audio installé (palier « Installation »). ffmpeg/ffprobe sont des binaires système, requis seulement au niveau avancé. Le cœur de Forge reste autonome.

Ce que ce starter montre

  • une route texte de premier contact (GET /audio-welcome) ;
  • la lecture de la configuration audio (load_audio_config) ;
  • sa sérialisation JSON, token masqué (GET /audio-welcome/inspect).

Classes Forge utilisées

Classe / fonction Rôle dans ce starter Référence
forge_mvc_audio.load_audio_config Lire la configuration audio (stockage, limites, binaires). Audio
Response.text / Response.json Renvoyer du texte puis du JSON. Response

Tester

forge run

Ouvrez https://localhost:8000/audio-welcome (« Bonjour Forge Audio »), puis /audio-welcome/inspect pour la configuration en JSON.

Le contrôleur

# mvc/controllers/audio_welcome_controller.py
from forge_mvc_audio import load_audio_config


def _config_to_safe_dict(cfg) -> dict:
    return {
        "storage_root": cfg.storage_root,
        "max_upload_mb": cfg.max_upload_mb,
        "max_duration_seconds": cfg.max_duration_seconds,
        "ffprobe_bin": cfg.ffprobe_bin,
        "ffmpeg_bin": cfg.ffmpeg_bin,
        "api_token": "***" if cfg.api_token else None,
    }


class AudioWelcomeController(BaseController):

    @staticmethod
    def index(request: Request) -> Response:
        return Response.text("Bonjour Forge Audio")

    @staticmethod
    def inspect(request: Request) -> Response:
        return Response.json(_config_to_safe_dict(load_audio_config()))

Comprendre ce code

  • La configuration est explicite (variables d'environnement Forge) : stockage, taille et durée maximales, binaires utilisés.
  • On masque toujours le token ("***") : une config exposée ne révèle jamais ses secrets.

À retenir

  • forge-mvc-audio est opt-in et sans état : pas de table, opérations synchrones.
  • La configuration audio est inspectable et masque ses secrets.
  • ffprobe/ffmpeg n'interviennent qu'au niveau avancé.

Après ce starter

Premier contact établi. La suite : téléverser un fichier audio.

Téléverser un audio