import requests
import time
def check_transcription_status(run_id, job_data):
headers = {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
status_data = {
"runId": run_id,
"cost": job_data.get('cost'),
"paymentSource": job_data.get('paymentSource'),
"isApiRequest": True,
"fileName": job_data.get('fileName'),
"fileSize": job_data.get('fileSize'),
"chargedDuration": job_data.get('chargedDuration'),
"diarize": job_data.get('diarize', False)
}
response = requests.post(
"https://nano-gpt.com/api/transcribe/status",
headers=headers,
json=status_data
)
return response.json()
def wait_for_completion(run_id, job_data, max_attempts=60):
for attempt in range(max_attempts):
result = check_transcription_status(run_id, job_data)
status = result.get('status')
if status == 'completed':
return result
elif status == 'failed':
raise Exception(f"Transcription failed: {result.get('error')}")
print(f"Status: {status} (attempt {attempt + 1}/{max_attempts})")
time.sleep(5)
raise Exception("Transcription timed out")
# Usage
job_data = {"runId": "abc123", "cost": 0.075, "paymentSource": "USD"}
result = wait_for_completion("abc123", job_data)
print(result['transcription'])