This release is a pre-release and may not be stable for production use.
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).
Un opt-in officiel
Cet opt-in suit la version du cœur de Forge et n'a pas de cycle de maturité
propre : sa version est celle du pyproject.toml racine (OPTINS-MATURITY-FOLLOWS-CORE-001).
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
ffprobeet le transcodage exigeffmpeg.forge audio:doctorsignale leur absence.
Installation (mode éditable depuis les sources) :
pip install -e packages/forge-mvc-audio/
Ce que contient le module
config—AudioConfig+load_audio_config()(configuration depuisFORGE_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).probe—probe_audio()viaffprobe: durée, codec, bitrate, sample rate, nombre de canaux, conteneur. Sert aussi de validation profonde (rejet d'un fichier sans flux audio).ingest—ingest_audio(data, filename): valide (taille, extension), stocke la source, retourne un enregistrement (uuid, chemin, taille, MIME).transcode—transcode_to_mp3()viaffmpeg(profil MP3 192 kbps, stéréo, métadonnées d'origine retirées). Constructeurs de commande purs, runner injectable (testable sans ffmpeg).http—register_audio_routes(router): routeGET /audio/{uuid}servie en streaming HTTP Range (seek), Bearer token optionnel (FORGE_AUDIO_API_TOKEN).cli.doctor—forge 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/ffprobeen liste d'arguments (jamaisshell=True). - Chemins uuid-based : le
uuidde 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) |
Metadata
Release files for forge-mvc-audio 1.0.0rc9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| forge_mvc_audio-1.0.0rc9.tar.gz | 32.7 kB | Without provenance | Details for forge_mvc_audio-1.0.0rc9.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| forge_mvc_audio-1.0.0rc9-py3-none-any.whl | Python 3 | none | any | Details for forge_mvc_audio-1.0.0rc9-py3-none-any.whl |
Total release size: 59.4 kB
Release files / forge_mvc_audio-1.0.0rc9.tar.gz
| Download URL | forge_mvc_audio-1.0.0rc9.tar.gz |
|---|---|
| Size | 32.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
288477854408110d3bc4a0242340e42833acf363e8e5b3ede3ded54e75a6d110
|
|
BLAKE2b-256 checksum How to use checksums |
0e560492a7b22d4fdcbf80266e4ce49e3df09e228c6a8e37a0e1787b952f0e95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / forge_mvc_audio-1.0.0rc9-py3-none-any.whl
| Download URL | forge_mvc_audio-1.0.0rc9-py3-none-any.whl |
|---|---|
| Size | 26.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
233e07ee103d8e9f7acf3b4910ad2eae888b085221b89434c0ef1b03313d82b9
|
|
BLAKE2b-256 checksum How to use checksums |
e64ced3026922c47365e5302bfe9b77f037e74e18aa312757e7c6008c07e884c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Security for forge-mvc-audio 1.0.0rc9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.