use reqwest::Client;
use serde::{Deserialize, Serialize};
use std::error::Error;
#[derive(Serialize)]
struct TranscriptionRequest {
audio_url: String,
}
#[derive(Deserialize)]
struct TranscriptionResponse {
transcription: String,
}
pub async fn transcribe(audio_url: &str, api_key: &str) -> Result<String, Box<dyn Error>> {
let client = Client::new();
let request = TranscriptionRequest {
audio_url: audio_url.to_string(),
};
let response = client
.post("https://safi.insolify.com/transcription")
.json(&request)
.bearer_auth(api_key)
.send()
.await?;
let transcription_response: TranscriptionResponse = response.json().await?;
Ok(transcription_response.transcription)
}