Zpět
8 min čtení
Pokročilé funkce

API Integrace

Kompletní dokumentace VoxScriber API pro vývojáře. Koncové body, autentizace a příklady kódu.

API Integrace

Kompletní dokumentace REST API VoxScriber pro vývojáře. Seznamte se s autentizací, hlavními koncovými body, webhooky a tím, jak integrovat automatický přepis do vašich systémů.

Funkce API

Autentizace tokenem

Bezpečný autentizační systém pomocí API tokenů.

  • Unikátní tokeny pro každou aplikaci
  • Možnost automatického obnovení
  • Granulární kontrola oprávnění
  • Vlastní omezení rychlosti

Programové nahrávání

Automatizované odesílání souborů k přepisu.

  • Podpora více formátů
  • Přímé nahrání nebo pomocí URL
  • Asynchronní zpracování
  • Zpětná volání v reálném čase

Chytré webhooky

Automatická oznámení o průběhu.

  • Konfigurovatelné události
  • Automatické opakování při selhání
  • Bezpečnostní podpis
  • Více koncových bodů na událost

Autentizace

Získání API klíče

Přístup na dashboard

Přihlaste se do VoxScriber

Nastavení API

Přejděte na Nastavení -> API -> Klíče

Vygenerovat nový klíč

Klikněte na „Nový API klíč“ a nastavte oprávnění

Zkopírovat a uložit

Zkopírujte vygenerovaný klíč a bezpečně ho uložte

Nikdy nesdílejte svůj API klíč veřejně. Ukládejte jej do proměnných prostředí a nikdy do zdrojového kódu pod správou verzí.

Použití API klíče

Do hlavičky Authorization všech požadavků vložte svůj API klíč:

curl -X POST https://api.vozparatexto.com.br/v1/transcribe \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F "file=@audio.mp3"

Hlavní koncové body

Nahrání souboru

POST /v1/upload
Content-Type: multipart/form-data

Parametry:

  • file (povinný) - Zvukový/video soubor
  • language (volitelný) - Kód jazyka (např. „en-US“)
  • engine (volitelný) - Přepisovací engine („ASSEMBLYAI“, „WHISPER“, „ELEVENLABS“)
  • speaker_detection (volitelný) - Povolit identifikaci mluvčích (boolean)

Odpověď:

{
  "id": "upload_abc123",
  "status": "UPLOADED",
  "duration": 120.5,
  "fileSize": 2048000
}

Spuštění přepisu

POST /v1/transcribe
Content-Type: application/json

Tělo:

{
  "uploadId": "upload_abc123",
  "engine": "ASSEMBLYAI",
  "speakerDetection": true,
  "language": "en-US"
}

Kontrola stavu

GET /v1/transcription/{id}/status

Odpověď:

{
  "id": "trans_xyz789",
  "status": "COMPLETED",
  "progress": 100,
  "text": "Přepsaný text...",
  "duration": 120.5,
  "creditsUsed": 8
}

Stažení výsledku

GET /v1/transcription/{id}/export?format=json

Dostupné formáty: json, txt, srt, vtt, docx, pdf

Omezení rychlosti

| Koncový bod | Limit | Okno | |---|---|---| | Nahrání | 10 požadavků | 60 sekund | | Přepis | 10 požadavků | 60 sekund | | Dotaz | 60 požadavků | 60 sekund | | Export | 30 požadavků | 60 sekund |

Ke sledování stavu přepisu používejte webhooky místo dotazování (polling). Tím výrazně snížíte počet požadavků a zvýšíte efektivitu integrace.

Příklady integrace

Node.js

const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');

const API_KEY = process.env.VOXSCRIBER_API_KEY;
const BASE_URL = 'https://api.vozparatexto.com.br/v1';

async function transcribeFile(filePath) {
  // 1. Upload
  const form = new FormData();
  form.append('file', fs.createReadStream(filePath));

  const upload = await axios.post(`${BASE_URL}/upload`, form, {
    headers: {
      'Authorization': `Bearer ${API_KEY}`,
      ...form.getHeaders()
    }
  });

  // 2. Transcribe
  const transcription = await axios.post(`${BASE_URL}/transcribe`, {
    uploadId: upload.data.id,
    engine: 'ASSEMBLYAI',
    speakerDetection: true
  }, {
    headers: { 'Authorization': `Bearer ${API_KEY}` }
  });

  return transcription.data;
}

Python

import requests
import os

API_KEY = os.environ['VOXSCRIBER_API_KEY']
BASE_URL = 'https://api.vozparatexto.com.br/v1'

def transcribe_file(file_path):
    headers = {'Authorization': f'Bearer {API_KEY}'}

    # 1. Upload
    with open(file_path, 'rb') as f:
        upload = requests.post(
            f'{BASE_URL}/upload',
            headers=headers,
            files={'file': f}
        )

    # 2. Transcribe
    transcription = requests.post(
        f'{BASE_URL}/transcribe',
        headers=headers,
        json={
            'uploadId': upload.json()['id'],
            'engine': 'ASSEMBLYAI',
            'speakerDetection': True
        }
    )

    return transcription.json()

Ošetření chyb

| Kód | Význam | Doporučená akce | |---|---|---| | 400 | Chybný požadavek | Zkontrolujte parametry | | 401 | Neověřeno | Zkontrolujte svůj API klíč | | 403 | Zakázáno | Zkontrolujte oprávnění tokenu | | 429 | Překročen limit rychlosti | Počkejte a zkuste znovu | | 500 | Interní chyba | Zkuste znovu po 30 sekundách |

Bezpečnost

  • Pro všechny požadavky používejte HTTPS
  • API klíče ukládejte do proměnných prostředí
  • Klíče pravidelně obměňujte
  • Používejte minimální potřebná oprávnění
  • Implementujte ověřování podpisu pro webhooky

Pokračujte v učení