API di trascrizione video per qualsiasi video nella tua libreria

Invia file video o link di YouTube, Google Drive e Vimeo per ottenere trascrizioni ricercabili con etichette dei parlanti e timestamp in 75 lingue, con rilevamento automatico della lingua. Trascrivi un video o l'intera libreria, poi traduci trascrizioni e sottotitoli per un pubblico globale.
File e link video
Trascrizione in batch
REST + SDK Python
link in, transcript out
OAuth 2.0
# 1. send the video as a link - YouTube, Google Drive, Vimeo, S3 or direct URL
curl -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"link": "https://youtu.be/...", "name": "camera review"}'

# 2. create the project - the language of the video is detected automatically
curl -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"es-mx\"}"
GET /v2/projects/{project_id}/transcription
plain text
# The transcript as plain text with timestamps and speakers
curl -s https://api.rask.ai/v2/projects/$ID/transcription -H "Authorization: Bearer $TOKEN" \
  | jq -r '.segments[] | "\(.start) \(.speaker): \(.src.text)"'
Utilizzato da team in tutto il mondo
Funzionalità

Cosa fa l'API di trascrizione video

Invia file o link video per ottenere una trascrizione con parlanti e timestamp per ogni video della tua libreria. Lo stesso progetto trasforma ogni trascrizione in traduzioni, sottotitoli e una versione doppiata.

Trascrivi video da un file o da un link

Carica file video o inserisci un link diretto, di YouTube, Google Drive, Vimeo o S3. L'API recupera direttamente il video senza che tu debba scaricarlo.

Molteplici parlanti, etichettati

Interviste, tavole rotonde e webinar con più parlanti restituiscono un'etichetta per ogni segmento, così sai sempre chi ha detto cosa.

Rilevamento automatico della lingua

Trascrivi video in 75 lingue di origine, incluso l'inglese. Lascia il campo della lingua di origine vuoto per rilevarla automaticamente per ogni video.

Trascrizioni ricercabili

Ogni segmento ha un orario di inizio e di fine, consentendo agli utenti di cercare il contenuto testuale di un video e passare direttamente al momento in cui viene pronunciata una frase.

Trascrizioni in più lingue

Ogni segmento include anche la traduzione in oltre 135 lingue e opzioni regionali, così una sola trascrizione si rivolge a un pubblico globale in altre lingue.

Sottotitoli in formato .srt e .vtt

Ogni progetto restituisce anche file di sottotitoli nella lingua di arrivo, sincronizzati con i segmenti, per gli spettatori con problemi uditivi o che guardano i video senza audio.

Testo normale o dati strutturati

Leggi la trascrizione come segmenti JSON o unisci il testo in un formato normale per indici di ricerca, articoli, descrizioni e note degli episodi.

Correggi il gergo tecnico

Correggi nomi, termini di prodotti e gergo tecnico in qualsiasi segmento tramite l'API. Un glossario mantiene la coerenza dei termini durante la traduzione della trascrizione.

Cresci senza limiti

Nessun limite di frequenza, nessuna quota di concorrenza e nessuna limitazione per chiave. Esegui la trascrizione in batch su più video o sull'intera libreria in parallelo.
Guardalo in azione

Da una trascrizione a cinque versioni linguistiche

La trascrizione di questo video è stata resa disponibile in inglese, francese, tedesco, portoghese e spagnolo, ciascuna con sottotitoli e l'audio originale in sottofondo.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Flusso di lavoro

Tre passaggi dal link del video alla trascrizione

La creazione del progetto avvia la trascrizione, seguita dalla traduzione, dai sottotitoli e dalla versione doppiata in un'unica soluzione. Usa l'endpoint /generate dopo aver corretto la trascrizione.
1

Invia il video

Carica un file video come dati di un modulo multipart oppure inserisci un link diretto di YouTube, Google Drive, Vimeo o S3. Ottieni un ID multimediale e i dettagli del video prima di spendere qualsiasi importo.

POST /api/library/v1/media/link
2

Crea il progetto

Inserisci l'ID multimediale come video_id e indica una lingua di arrivo. Lascia vuota la lingua diorigine per il rilevamento automatico. La trascrizione si avvia subito.video_id

POST /v2/projects
3

Leggi la trascrizione

Leggi i segmenti della trascrizione non appena sono pronti, così puoi iniziare a indicizzare la registrazione mentre il contenuto continua l'elaborazione. Scarica i sottotitoli e i file multimediali a progetto completato.

GET /v2/projects/{id}/transcription
La trascrizione funziona su video registrati, non sulle dirette streaming. Il tempo di elaborazione varia in base alla durata del video e al numero di persone che parlano: in un test, un video di 3:47 è stato completato in 165 secondi.
Creato intorno a te

Hai bisogno di trascrivere grandi volumi o in una lingua non presente nel nostro elenco? Parla con il nostro team

Trascrizioni ad alto volume, una lingua di origine non inclusa nell'elenco, un formato di trascrizione specifico per la tua ricerca o la consegna sul tuo spazio di archiviazione: il nostro team analizza le tue esigenze e le opzioni disponibili.

Lingue e voci

Ti serve una lingua di origine che non si trova nel catalogo pubblico? Parla con il nostro team per scoprire le soluzioni adatte alle tue esigenze.

Consegna e integrazione

Webhook, invio nella tua coda, consegna diretta al tuo S3, endpoint personalizzati. Diteci come il vostro sistema si aspetta di ricevere i dati.

Volume e capacità

Le dimensioni dei lotti, le lingue di arrivo per azione e la priorità di elaborazione sono termini contrattuali, non limiti fissi del prodotto.

Sicurezza e hosting

La residenza dei dati, l'SSO e SAML, le regole di conservazione e il supporto per la revisione della sicurezza vengono gestiti durante l'attivazione per le aziende.
Casi d'uso

A chi è utile un'API di trascrizione video

Piattaforme con video integrati

Piattaforme di formazione e LMS, piattaforme per creatori e video, strumenti per webinar ed eventi virtuali, hosting video e workflow SaaS, piattaforme di adozione digitale e live shopping. Aggiungi trascrizioni ricercabili e sottotitoli ai video caricati come funzione del tuo prodotto.

Agenzie di localizzazione e produzione

Trascrivi i video dei clienti in blocco, offri ai revisori la trascrizione con i nomi dei parlanti e fornisci sottotitoli e traduzioni dallo stesso progetto.

Produzione video interna e continua

Retail internazionale e e-commerce, franchising globali, editori multimediali, università aziendali e content creator. Rendi ogni video ricercabile e accessibile, e riusa le trascrizioni per articoli e descrizioni.
Storie di clienti

Squadre vere, risultati tangibili

Come le aziende localizzano i video con Rask, attraverso i loro numeri.
freccia
freccia
Codice

Esempi di codice per l'API di trascrizione video

Un esempio completo per ogni lingua: invia video come link o file, attendi e salva le trascrizioni in testo semplice o cercali tramite timestamp.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

VIDEOS = ["https://youtu.be/aaa", "https://youtu.be/bbb", "https://vimeo.com/123"]

async def transcribe(client, i, link):
    media = await client.create_media_link(data=schemas.MediaCreateLink(link=link))
    while media.status is enums.MediaStatus.PROCESSING:
        await asyncio.sleep(5)
        media = await client.get_media(media_id=media.id)
    job = await client.create_project(data=schemas.ProjectCreate(video_id=media.id, dst_lang="en-us"))
    while job.status is not enums.ProjectStatus.MERGING_DONE:
        await asyncio.sleep(10)
        job = await client.get_project(project_id=job.id)
    t = await client.get_project_transcription(project_id=job.id)
    with open(f"video_{i}.txt", "w") as f:   # plain text, one segment per line
        f.write("\n".join(f"{s.speaker}: {s.src.text}" for s in t.segments))

async def main():
    client = clients.RaskSDKClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)
    await asyncio.gather(*(transcribe(client, i, v) for i, v in enumerate(VIDEOS)))   # no rate limits

asyncio.run(main())
github.com/braskai/rask-sdk
bulk, async
import os, time, requests

AUTH = "https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token"
API  = "https://api.rask.ai"

token = requests.post(AUTH, auth=(CLIENT_ID, CLIENT_SECRET),
                      data={"grant_type": "client_credentials"}).json()["access_token"]
h = {"Authorization": f"Bearer {token}"}

media = requests.post(f"{API}/api/library/v1/media/link", headers=h,
                      json={"link": "https://youtu.be/..."}).json()

project = requests.post(f"{API}/v2/projects", headers=h,
                        json={"video_id": media["id"], "dst_lang": "es-mx"}).json()

while project["status"] != "merging_done":
    time.sleep(10)
    project = requests.get(f"{API}/v2/projects/{project['id']}", headers=h).json()

print(project["translated_video"])
requests
no SDK required
// no dependencies, Node 18+ global fetch
const API = 'https://api.rask.ai';
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
const auth = await fetch('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token', {
  method: 'POST',
  headers: { Authorization: 'Basic ' + btoa(`${CLIENT_ID}:${CLIENT_SECRET}`) },
  body: new URLSearchParams({ grant_type: 'client_credentials' }),
}).then((r) => r.json());
const h = { Authorization: `Bearer ${auth.access_token}`, 'Content-Type': 'application/json' };
const call = (method, path, body) => fetch(API + path, { method, headers: h, body: body && JSON.stringify(body) }).then((r) => r.json());

let media = await call('POST', '/api/library/v1/media/link', { link: 'https://drive.google.com/file/d/...' });
while (media.status === 'processing') { await sleep(5000); media = await call('GET', `/api/library/v1/media/${media.id}`); }

let p = await call('POST', '/v2/projects', { video_id: media.id, dst_lang: 'fr-fr' });
while (p.status !== 'merging_done') { await sleep(10000); p = await call('GET', `/v2/projects/${p.id}`); }

const { segments } = await call('GET', `/v2/projects/${p.id}/transcription`);
const index = segments.map((s) => ({ t: s.start, speaker: s.speaker, text: s.src.text, fr: s.dst.text }));
console.log(JSON.stringify(index, null, 2));   // ready for your search index
fetch, Node 18+
plain HTTP
# 1. token (valid 1 hour - cache and reuse it)
TOKEN=$(curl -s -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" -d "grant_type=client_credentials" | jq -r .access_token)

# 2. upload a local video file
VIDEO_ID=$(curl -s -X POST "https://api.rask.ai/api/library/v1/media?kind=video" \
  -H "Authorization: Bearer $TOKEN" -F "[email protected]" | jq -r .id)

# 3. create the project once the media status is ready
ID=$(curl -s -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"de-de\", \"num_speakers\": 3}" | jq -r .id)

# 4. when status is merging_done, save the transcript as plain text
curl -s https://api.rask.ai/v2/projects/$ID/transcription -H "Authorization: Bearer $TOKEN" \
  | jq -r '.segments[].src.text' > webinar.txt
local video file
multipart upload
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);
$json = fn($r) => json_decode($r->getBody(), true);
$auth = $json((new Client)->post('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret], 'form_params' => ['grant_type' => 'client_credentials']]));
$h = ['Authorization' => 'Bearer ' . $auth['access_token']];

$media = $json($http->post('/api/library/v1/media/link', ['headers' => $h, 'json' => [
    'link' => 'https://vimeo.com/123456']]));
while ($media['status'] === 'processing') {
    sleep(5);
    $media = $json($http->get("/api/library/v1/media/{$media['id']}", ['headers' => $h]));
}

$p = $json($http->post('/v2/projects', ['headers' => $h, 'json' => [
    'video_id' => $media['id'], 'dst_lang' => 'pt-br']]));
while ($p['status'] !== 'merging_done') {
    sleep(10);
    $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
}

$t = $json($http->get("/v2/projects/{$p['id']}/transcription", ['headers' => $h]));
file_put_contents('video.txt', implode("\n", array_map(fn($s) => $s['src']['text'], $t['segments'])));
Guzzle 7
plain HTTP
Python è l'SDK ufficiale. Le schede Node, PHP e cURL mostrano semplici esempi HTTP sugli stessi endpoint.
Avanzamento

Come un progetto di trascrizione video mostra l'avanzamento

Ogni video diventa un progetto con stati chiari, per monitorare i progressi di ogni singolo file in un'elaborazione di gruppo. Ti basta gestire tre gruppi.

Operazione riuscita, fermati qui

merging_done
Il video finale e i file dei sottotitoli sono pronti. Puoi leggere e indicizzare la trascrizione in anticipo, non appena i segmenti sono disponibili.

In corso, continua a verificare

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
In più la corrispondenza _done stati. Questi si adattano perfettamente a un'interfaccia a fasi.

Errore, interruzione e segnalazione

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words and forbidden_link are specific enough to show directly to your own user, for example a video without speech.
Plain text transcript, two speakers
jq -r on /transcription
00:00:00,320  SPEAKER_00  Welcome back. Today we test three cameras in low light.
00:00:06,180  SPEAKER_01  I brought the footage from last week's night shoot.
00:00:10,940  SPEAKER_00  Let's start with the smallest sensor, the hardest case.
00:00:15,500  SPEAKER_01  At ISO 6400 the noise is visible, but the colors hold up.

Oppure salta del tutto il controllo

Indica un endpoint webhook e ogni transizione di stato arriverà come richiesta POST, così la tua coda potrà reagire a ogni cambiamento nel momento stesso in cui si verifica. La consegna tramite webhook fa parte dell'onboarding per le aziende.
Leggi la documentazione
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Output

Cosa ricevi per ogni video

Ogni progetto completato offre la trascrizione come segmenti JSON, file di sottotitoli in formato SRT e VTT nella lingua di arrivo, oltre al video e all'audio tradotti. I link per il download sono protetti e validi per un'ora.
Campo
Formato
Cosa contiene
/transcription
JSON
Nome del parlante, timestamp, testo originale e traduzione per ogni singolo segmento
translation_srt_path
.srt
Sottotitoli nella lingua di arrivo, sincronizzati con i segmenti
translation_vtt_path
.vtt
Gli stessi sottotitoli in formato WebVTT, adatti ai player web
translated_video
MP4
Il video tradotto con il doppiaggio
translated_audio
WAV
Voce tradotta unita all'audio di sottofondo originale
original_video
MP4
Il video originale salvato, come riferimento
Controllo

Correggi nomi e termini specifici nella trascrizione

La trascrizione automatica gestisce la maggior parte di un video. A volte però i nomi, gli accenti e il gergo tecnico richiedono l'intervento umano. Correggi il testo, la tempistica o il parlante di un segmento con una sola richiesta, quindi rigenera la versione tradotta, fatturata in base ai segmenti modificati con un minimo di un minuto per esecuzione.

Modifica per singoli segmenti

Modifica per singoli segmenti
Ogni progetto espone la sua trascrizione come segmenti modificabili, quindi un nome capito male richiede una semplice modifica anziché una trascrizione manuale.
Scarica la trascrizione e i suoi segmenti
Modifica il testo originale e noi penseremo a ritradurlo
Modifica direttamente il testo tradotto per usare le parole che preferisci
Modifica i tempi, aggiungi segmenti o cancellane altri
Cambia la voce associata a qualsiasi speaker

Glossari per la terminologia

Glossari per la terminologia
Allega un glossario per fare in modo che i nomi dei prodotti e i termini tecnici rimangano uguali in ogni trascrizione tradotta, o mantieni deliberatamente la lingua originale.

Un glossario copre una coppia di lingue e si applica a tutte le varianti regionali di quella lingua, così un unico glossario in spagnolo è utile per es-mx e es-es allo stesso modo. Il progetto registra glossary_version, così le modifiche successive non alterano mai inaspettatamente il lavoro completato.
Input

Formati di file supportati

Trascrivi file video in sette formati e registrazioni audio in quattro, oppure invia un link da una delle principali piattaforme come YouTube, Google Drive o Vimeo. I file non supportati vengono rifiutati prima che venga addebitato alcun minuto.

Video

7 formati
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

Audio

4 formati
.mp3
.wav
.flac
.m4a

Tutte le informazioni prima di iniziare

L'endpoint multimediale restituisce durata, dimensioni del file, codec video, frequenza dei fotogrammi, risoluzione, codec audio, frequenza di campionamento e layout dei canali. Valida un file e stima i costi in anticipo, poiché i progetti vengono fatturati al minuto di video.
Sicurezza e conformità

I tuoi video e le tue trascrizioni protetti da controlli verificati

Brask Inc possiede la certificazione SOC 2 Tipo II, opera nel rispetto del GDPR e pubblica lo stato dei controlli in tempo reale nel suo Centro Affidabilità per il tuo team di sicurezza.

Certificazioni

SOC 2 Tipo II
GDPR
Membro CAI e C2PA

Crittografia

TLS 1.2 in transito
AES-256 a riposo
Chiavi gestite SSE-S3
Rotazione delle chiavi almeno ogni 12 mesi

I tuoi contenuti

Ambiente di intelligenza artificiale chiuso
Mai utilizzato per addestrare modelli generali
Esportazione completa, senza vincoli

Accesso

SSO e SAML
Controllo degli accessi basato sui ruoli
Credenziali client OAuth 2.0

Enterprise

Opzioni di localizzazione dei dati
SLA personalizzati
Account manager dedicato

Diritti sulle voci

Voci sintetiche con diritti di utilizzo
Clonazione vocale basata sul consenso
Controlli di sicurezza dell'IA, supervisione umana
Confronto

Rask API a confronto con un flusso di lavoro di trascrizione assemblato con vari componenti

La trascrizione di un video raramente rappresenta il risultato finale. I team hanno bisogno anche di etichette per i parlanti, didascalie e altre lingue. Ecco lo stesso lavoro, svolto in due modi diversi.
Ciò di cui hai bisogno
Rask API
Assemblato da componenti
Link video da YouTube, Drive, Vimeo o S3
Accettati direttamente
Prima scarica e converti
Etichette per identificare più parlanti
Incluso
Un componente aggiuntivo per la diarizzazione o tag manuali
La lingua di ogni video
Rilevata automaticamente
Impostata per file o rilevata separatamente
Trascrizioni in altre lingue
Oltre 135 lingue e varianti regionali
Un'API di traduzione per ciascuna lingua
Sottotitoli in formato .srt e .vtt
Incluso
Uno strumento per i sottotitoli o un generatore di file personalizzato
Correzione del gergo tecnico
Una richiesta di modifica per segmento
Modifica le copie in ogni strumento
Una versione doppiata del video
Incluso nello stesso progetto
Un fornitore TTS unito al tuo mixaggio
Limiti di velocità
Nessuno
A seconda di ciò che richiede ciascun provider
Sottotitoli in tempo reale per riunioni dal vivo
Usa un'API di riconoscimento vocale in streaming
Integrato in alcuni provider
Una lingua che nessuno supporta ancora
Lo creiamo noi
Non disponibile
Domande frequenti

API di trascrizione video: domande frequenti

Non riesci a trovare quello che cerchi? Contatta l'ufficio vendite.

Rask dispone di un'API per la trascrizione video?

Posso trascrivere un video di YouTube o un link video?

Posso trascrivere più video contemporaneamente?

Come gestisce la presenza di più speaker?

Quali lingue sono supportate?

Quanto è accurata la trascrizione?

Posso ottenere la trascrizione come semplice testo?

Genera riassunti tramite intelligenza artificiale, argomenti chiave o analisi del sentiment?

Può trascrivere le riunioni?

C'è una dimensione massima per i file?

Come viene fatturata la trascrizione video?

È prevista una versione gratuita?

Come posso ottenere l'accesso alle API e una chiave API?

Inizia a doppiare in un solo pomeriggio

Fai la tua prima prova oggi e contattaci se hai bisogno di tariffe per grandi volumi o di una lingua che nessun altro offre.