Skip to main content

Forge Audio — module opt-in pour l'upload, le sondage de métadonnées (ffprobe), le transcodage MP3 (ffmpeg) et la lecture audio en streaming (HTTP Range). Sans état : aucune base de données. Worker CLI forge audio:doctor.

Project description

forge-mvc-audio

Module opt-in Forge pour la gestion audio : upload, sondage de métadonnées, transcodage MP3 et lecture en streaming. Sans état (aucune base de données).

Statut : Beta — opt-in officiel

forge-mvc-audio fournit une chaîne audio complète et sobre, calquée sur forge-mvc-video mais sans la machinerie à état (pas de table SQL, pas de suivi de jobs, pas de file de transcodage). C'est un choix délibéré : les opérations audio sont synchrones et la lecture retrouve les fichiers par uuid sur le disque.

ffmpeg / ffprobe sont des binaires système (pas des dépendances pip). Le module se branche sans eux (le service de lecture fonctionne), mais le sondage exige ffprobe et le transcodage exige ffmpeg. forge audio:doctor signale leur absence.

Installation (mode éditable depuis les sources) :

pip install -e packages/forge-mvc-audio/

Ce que contient le module

  • configAudioConfig + load_audio_config() (configuration depuis FORGE_AUDIO_*, valeurs par défaut sûres).
  • storage — disposition uuid-based des fichiers (le nom utilisateur n'apparaît jamais dans le chemin → anti-traversal par construction).
  • probeprobe_audio() via ffprobe : durée, codec, bitrate, sample rate, nombre de canaux, conteneur. Sert aussi de validation profonde (rejet d'un fichier sans flux audio).
  • ingestingest_audio(data, filename) : valide (taille, extension), stocke la source, retourne un enregistrement (uuid, chemin, taille, MIME).
  • transcodetranscode_to_mp3() via ffmpeg (profil MP3 192 kbps, stéréo, métadonnées d'origine retirées). Constructeurs de commande purs, runner injectable (testable sans ffmpeg).
  • httpregister_audio_routes(router) : route GET /audio/{uuid} servie en streaming HTTP Range (seek), Bearer token optionnel (FORGE_AUDIO_API_TOKEN).
  • cli.doctorforge audio:doctor : diagnostic statique (package, config, ffprobe, ffmpeg, routes).

Formats acceptés à l'upload

mp3, wav, ogg, flac, m4a, aac. La sortie de transcodage est MP3.

Sécurité

  • Invocation ffmpeg/ffprobe en liste d'arguments (jamais shell=True).
  • Chemins uuid-based : le uuid de l'URL n'est qu'une clé de lookup, validée comme un UUID — aucun path traversal.
  • Token Bearer optionnel sur la route de lecture (mode local ouvert par défaut).
  • L'auth vit dans ce module, jamais dans Forge Core.

Configuration (FORGE_AUDIO_*)

Variable Défaut Rôle
FORGE_AUDIO_FFMPEG_BIN ffmpeg binaire ffmpeg
FORGE_AUDIO_FFPROBE_BIN ffprobe binaire ffprobe
FORGE_AUDIO_STORAGE_ROOT storage/audio racine de stockage
FORGE_AUDIO_MAX_UPLOAD_MB 200 taille max d'upload
FORGE_AUDIO_MAX_DURATION_SECONDS 7200 durée max (2 h)
FORGE_AUDIO_API_TOKEN (absent) Bearer token de lecture (optionnel)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

forge_mvc_audio-1.0.0b17.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

forge_mvc_audio-1.0.0b17-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file forge_mvc_audio-1.0.0b17.tar.gz.

File metadata

  • Download URL: forge_mvc_audio-1.0.0b17.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for forge_mvc_audio-1.0.0b17.tar.gz
Algorithm Hash digest
SHA256 1ba2f7b8def1c41f1938dfbdb8ea4e8531af5612ada74217355cf973a9681f14
MD5 e7e1815de30eca8468140c0eed590498
BLAKE2b-256 38bfbf77eabe9c5628b91fc13f9bb059e14bcd843f0ebe753ae63e791812e0d9

See more details on using hashes here.

File details

Details for the file forge_mvc_audio-1.0.0b17-py3-none-any.whl.

File metadata

File hashes

Hashes for forge_mvc_audio-1.0.0b17-py3-none-any.whl
Algorithm Hash digest
SHA256 6c668d22bf019ef3f68919a40cc98506bac5bb2543e6ad2cfdb3c3e565e5caf0
MD5 a0197709054aabfaf7bee4ea3618b783
BLAKE2b-256 22f979a379c0b33766e1d55f0a20347b450168a9a9f4ce8b7c65f7786e637b19

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page