APIs

Générer une transcription

Pour transcrire un enregistrement audio, envoyez votre fichier via l’endpoint get-upload-url. Celui-ci génère une URL présignée vous permettant de téléverser votre fichier directement vers notre stockage sécurisé. Une fois le téléversement complété, la transcription est lancée automatiquement et le résultat est transmis à votre webhook.

1 Obtenir une URL présignée

POSThttps://plumeia.api.ca/get-upload-url

Paramètre

Type

Description

Content-Type (header)

string

Doit être application/json

x-api-key (header)

string

Clé API fournie par Plume

filename

string

Nom du fichier à téléverser

username

string

Identifiant de l’utilisateur

language

string

Langue de l’enregistrement (fr ou en)

webhook (optionnel)

string

URL de rappel appelée lorsque la transcription est disponible. Si absente, le webhook par défaut configuré lors de l’intégration est utilisé.

Exemple

response = requests.post(
    'https://plumeia.api.ca/get-upload-url',
    headers={
        'Content-Type': 'application/json',
        'x-api-key': API_KEY
    },
    json={
        'filename': file_path,
        'username': username,
        'language': language,
        'webhook': 'https://votre-serveur.com/webhook'
    }
)

Réponse

Champ

Type

Description

upload_url

string

URL présignée pour le téléversement

headers

object

En-têtes à inclure lors du téléversement

2 Téléverser le fichier

Utilisez l’URL et les en-têtes retournés à l’étape précédente pour téléverser votre fichier. La transcription sera automatiquement lancée et le résultat sera transmis à votre webhook.

PUT{upload_url}

Paramètre

Type

Description

headers

object

En-têtes retournés par get-upload-url

data

binary

Contenu binaire du fichier audio

Exemple

with open(file, 'rb') as f:
    upload_response = requests.put(
        data['upload_url'],
        data=f,
        headers=data['headers']
    )
3 Recevoir la transcription

Une fois le téléversement complété, la transcription est lancée automatiquement. Le résultat est transmis à votre webhook sous forme d’objet JSON.

Champ

Type

Description

user_id

string

Identifiant de l’utilisateur

status

string

Statut de la transcription (SUCCESS ou ERREUR)

transcription

string

Texte transcrit, ou message d’erreur si la transcription a échoué

Réponse — succès

{
    "user_id": "user01",
    "status": "SUCCESS",
    "timestamp": "timestamp",
    "transcription": "Voici le contenu de l'enregistrement."
}

Réponse — erreur

{
    "user_id": "user01",
    "status": "ERREUR",
    "timestamp": "timestamp",
    "transcription": "ERREUR: [description de l'erreur]"
}

Exemple de code

import requests

API_KEY = 'votre_clé_api'

def upload_file(file_path, username, language, webhook):
    response = requests.post(
        'https://plumeia.api.ca/get-upload-url',
        headers={
            'Content-Type': 'application/json',
            'x-api-key': API_KEY
        },
        json={
            'filename': file_path,
            'username': username,
            'language': language,
            'webhook': webhook
        }
    )

    if response.status_code != 200:
        raise Exception(f"Erreur : {response.status_code} : {response.text}")

    data = response.json()

    with open(file_path, 'rb') as f:
        upload_response = requests.put(
            data['upload_url'],
            data=f,
            headers=data['headers']
        )

    if upload_response.status_code != 200:
        raise Exception(f"{upload_response.status_code} : {upload_response.text}")
    else:
        print("Upload successful")

if __name__ == "__main__":
    try:
        upload_file("docs/myfile.wav", "user01", "fr")
    except Exception as e:
        print(f"Erreur : {e}")