Accédez à Redigeo depuis vos propres applications — transcription, récupération de résultats et gestion des crédits.
Toutes les requêtes vers /api/v1/ doivent inclure votre token dans le header HTTP :
Authorization: Bearer rd_votre_token_ici
Les tokens sont générés depuis l'interface Redigeo : Paramètres → Clés API → Générer. Le token n'est affiché qu'une seule fois à la création — conservez-le en lieu sûr.
https://redigeo.jcde.fr/api/v1/
Chaque heure de transcription coûte 1 crédit (arrondi au-dessus). Les crédits sont déduits à la fin du traitement.
{
"credits": 5.0,
"storage_used_mb": 128.4,
"storage_quota_mb": 500.0
}
| Paramètre | Type | Description |
|---|---|---|
| status | string | Filtrer par statut : pending, processing, completed, failed |
| page | integer | Numéro de page (défaut : 1) |
| page_size | integer | Résultats par page (max : 100, défaut : 20) |
{
"count": 42,
"page": 1,
"page_size": 20,
"results": [
{
"id": 123,
"filename": "reunion.mp3",
"status": "completed",
"status_label": "Terminé",
"language": "fr",
"duration": 3612.5,
"credits_used": 1,
"created_at": "2026-04-20T10:30:00Z",
"completed_at": "2026-04-20T10:42:15Z"
}
]
}
{
"id": 123,
"filename": "reunion.mp3",
"status": "completed",
"language": "fr",
"duration": 3612.5,
"credits_used": 1,
"result_file": {
"segments": [
{
"start": 0.0,
"end": 4.2,
"text": "Bonjour à tous.",
"speaker": "SPEAKER_00",
"words": [
{ "word": "Bonjour", "start": 0.0, "end": 0.8, "score": 0.98 },
{ "word": "à", "start": 0.9, "end": 1.1, "score": 0.97 },
{ "word": "tous.", "start": 1.2, "end": 1.7, "score": 0.99 }
]
}
]
}
}
| Champ | Type | Description |
|---|---|---|
| audio_file requis | File | Fichier audio (mp3, wav, m4a, flac, ogg, webm, mp4, aac — max 500 Mo — max 3h) |
| language | string | Code langue ISO 639-1 (défaut : fr). Ex : en, es, de |
| min_speakers | integer | Nombre minimum de locuteurs (défaut : 1) |
| max_speakers | integer | Nombre maximum de locuteurs (défaut : 2) |
| force_speakers | boolean | Forcer le nombre exact de locuteurs (défaut : false) |
curl -X POST https://redigeo.jcde.fr/api/v1/transcriptions/ \
-H "Authorization: Bearer rd_votre_token" \
-F "audio_file=@reunion.mp3" \
-F "language=fr" \
-F "min_speakers=2" \
-F "max_speakers=4"
{
"id": 124,
"filename": "reunion.mp3",
"status": "pending",
"language": "fr",
"created_at": "2026-04-20T11:00:00Z"
}
curl -X POST https://redigeo.jcde.fr/api/v1/transcriptions/ \
-H "Authorization: Bearer rd_votre_token" \
-H "Content-Type: application/json" \
-d '{
"youtube_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"language": "en"
}'
Range pour la lecture partielle.curl -O -J https://redigeo.jcde.fr/api/v1/transcriptions/123/audio/ \
-H "Authorization: Bearer rd_votre_token"
Le traitement est asynchrone. Après soumission, interrogez périodiquement l'endpoint de détail jusqu'à ce que status passe à completed ou failed.
import time, requests
TOKEN = "rd_votre_token"
BASE = "https://redigeo.jcde.fr/api/v1"
HEADERS = {"Authorization": f"Bearer {TOKEN}"}
# 1. Soumettre
r = requests.post(f"{BASE}/transcriptions/",
headers=HEADERS,
files={"audio_file": open("fichier.mp3", "rb")},
data={"language": "fr"})
tx_id = r.json()["id"]
# 2. Attendre
while True:
r = requests.get(f"{BASE}/transcriptions/{tx_id}/", headers=HEADERS)
data = r.json()
if data["status"] == "completed":
print(data["result_file"])
break
if data["status"] == "failed":
raise RuntimeError(data.get("error_message"))
print(f"En attente… ({data['status']})")
time.sleep(10)
| Code | Signification |
|---|---|
| 200 | Succès |
| 201 | Transcription créée (en file d'attente) |
| 204 | Suppression réussie |
| 400 | Paramètre manquant ou invalide |
| 401 | Token manquant, invalide ou révoqué |
| 402 | Crédits insuffisants |
| 403 | Compte non Premium |
| 404 | Ressource non trouvée |
| 429 | Trop de jobs simultanés |
| 503 | Service temporairement indisponible |
Les tokens peuvent également être gérés via l'API avec votre session JWT (connexion depuis l'interface).
{"name": "Mon script"}. La clé est retournée une seule fois.