API for videotranskripsjon og notater
Send en lyd- eller videofil fra serveren din, og få tilbake en transkripsjon med tidsstempler, KI-notater og ferdige nedlastinger. API-et bruker den samme behandlingen som nettstedet og Chrome-utvidelsen.
- Basis-URL
https://api.video-to-notes.com- Autentisering
- API-nøkkel som bearer-token
- Format
- JSON over HTTPS; filer går rett til lagringen via signerte URL-er
- Tilgang
- Inkludert i aktive Basic- og Plus-abonnementer; bruker abonnementstimene dine
Hurtigstart
Disse trinnene tar en fil fra disken din til en transkripsjon og notater. Du trenger et aktivt Basic- eller Plus-abonnement, en terminal og, for eksempelklienten, Python 3.12 eller nyere.
1. Opprett en API-nøkkel
Logg inn på nettstedet (for eksempel på prissiden), åpne API-nøkler i kontolinjen, gi nøkkelen et navn og angi eventuelt en utløpsdato. Kopier hemmeligheten når den vises: den vises bare én gang. Opptil tre nøkler kan være aktive samtidig.
2. Lagre nøkkelen i en miljøvariabel
Hold nøkkelen unna kildekode, kommandolinjeargumenter og logger. Eksemplene leser nøkkelen fra VTN_API_KEY og basis-URL-en fra VTN_API_BASE.
export VTN_API_BASE="https://api.video-to-notes.com"
read -rs VTN_API_KEY && export VTN_API_KEY # paste the key, press Enter$env:VTN_API_BASE = "https://api.video-to-notes.com"
$env:VTN_API_KEY = Read-Host "API key" -MaskInput3. Sjekk kontoen din
Dette kallet bekrefter at nøkkelen virker, og returnerer abonnementet ditt, de gjenværende abonnementssekundene, de støttede formatene og de gjeldende grensene.
# Sends the key through stdin, so it never appears in the process list.
vtn() {
printf 'header = "Authorization: Bearer %s"\n' "$VTN_API_KEY" |
curl -s --config - "$@"
}
vtn "$VTN_API_BASE/api/v1/account"$headers = @{ Authorization = "Bearer $env:VTN_API_KEY" }
Invoke-RestMethod "$env:VTN_API_BASE/api/v1/account" -Headers $headers |
ConvertTo-Json -Depth 54. Transkriber en fil
Last ned eksempelklienten i Python. Den trenger bare standardbiblioteket. Den laster opp filen i deler, starter jobben, venter på den og lagrer hver resultatside.
python client.py run meeting.mp4 --state meeting.state.json \
--output meeting.jsonl --download meeting-filesVil du bare behandle en del av et opptak, legger du til --start og --end i sekunder fra starten av filen. --audio-language gir et språkhint, og --notes-language velger språket for notatene. Uten disse valgene behandles hele filen, og språkene gjenkjennes automatisk.
python client.py run lecture.webm --state lecture.state.json \
--start 30 --end 3630 --audio-language ru --notes-language enTilstandsfilen lagrer opplastings-ID-en og identiteten til forespørselen, aldri nøkkelen. Hvis kommandoen stopper, kjører du den på nytt med den samme tilstandsfilen: den finner den samme jobben, og du blir ikke belastet to ganger. Bruk en ny tilstandsfil for hver nye jobb.
5. Les resultatene
meeting.jsonl inneholder én JSON-resultatside per linje: transkripsjonstekst med tider, notater i Markdown, hull og advarsler. meeting-files inneholder nedlastingene, for eksempel transkripsjonen som TXT og notatene som Markdown, HTML og PDF. Klienten har også disse kommandoene:
python client.py account
python client.py status JOB_ID
python client.py result JOB_ID --output results.jsonl --download files
python client.py cancel JOB_ID
python client.py resume JOB_IDForetrekker du curl? Bash-hurtigstarten kjører de samme trinnene for opplasting, jobb og resultat med curl og jq.
bash quickstart.sh meeting.mp4Slik fungerer en jobb
Alle integrasjoner følger de samme seks trinnene. API-referansen viser hvert kall med et eksempel på forespørsel og svar.
- Sjekk kontoen.
GET /api/v1/accountreturnerer abonnementet ditt, gjenværende sekunder, støttede formater og grenser. - Opprett en opplasting.
POST /api/v1/uploadsmed filstørrelsen i byte og filtypen. Svaret oppgir størrelsen på delene og antall deler. - Last opp delene. Hent signerte URL-er med
POST /api/v1/uploads/{upload_id}/parts, send hver del med en HTTP-PUTrett til lagringen, ta vare på hverETagog kall deretterPOST /api/v1/uploads/{upload_id}/complete. - Start jobben.
POST /api/v1/jobsmed opplastings-ID-en og enIdempotency-Key-header. Serveren sjekker den faktiske filen, planlegger arbeidet og reserverer tiden i abonnementet ditt. - Spør etter status.
GET /api/v1/jobs/{job_id}til tilstanden er endelig, og vent minstpoll_after_secondsmellom kallene. - Les resultatet.
GET /api/v1/jobs/{job_id}/result, og følgnext_cursortil den er null. Last ned filene iartifactsfør lenkene deres utløper.
En jobb ender som completed, completed_with_gaps, interrupted, cancelled, failed eller expired. charged_seconds viser hvor mye av abonnementet ditt jobben brukte.
God praksis
Disse vanene beskytter nøklene dine, hindrer dobbel belastning og gjør lange jobber pålitelige.
Hold nøklene hemmelige
- Kall API-et bare fra en server eller et skript du selv kontrollerer. Legg aldri en nøkkel i nettleserkode, en mobilapp, en URL eller versjonskontroll.
- Last inn nøkkelen fra en miljøvariabel eller en hemmelighetsbehandler, og hold den unna logger, feilrapporter og kommandolinjeargumenter.
- Bruk én nøkkel per integrasjon med en utløpsdato, slik at du kan bytte ut eller tilbakekalle én nøkkel uten å røre de andre.
- For å bytte nøkkel oppretter du den nye, tar den i bruk og tilbakekaller deretter den gamle. Jobber som allerede har startet, fortsetter.
- Hvis en nøkkel kan ha lekket, for eksempel i en chat, en sak eller en commit, tilbakekaller du den straks i panelet API-nøkler.
Gjør det trygt å gjenta oppretting av jobber
- Generer en tilfeldig
Idempotency-Key, for eksempel en UUID, for hver nye jobb, og lagre den sammen med opplastings-ID-en før du sender forespørselen. - Hvis svaret går tapt, sender du den samme forespørselen med den samme nøkkelen på nytt. Du får den opprinnelige jobben tilbake og betaler ikke to ganger.
- Bruk aldri en nøkkel på nytt for en annen fil eller andre valg: API-et svarer da med 409
IDEMPOTENCY_CONFLICT.
Spør med måte og håndter grenser
- Vent minst fem sekunder mellom statuskall, og lenger når
poll_after_secondsber om det. - Ved 429 eller 503 venter du som angitt i headeren
Retry-Aftereller ierror.retry_after_seconds, og prøver så igjen med en liten tilfeldig forsinkelse. - Gjenta en forespørsel uendret bare når
error.retryableer true. Ellers retter du forespørselen først. - En konto kjører én opplasting og én jobb om gangen. Sett filene dine i kø, og send den neste når den gjeldende jobben er ferdig.
Styr hvor mange timer du bruker
- Sjekk
remaining_secondsfør du laster opp. En jobb som trenger mer tid enn du har, mislykkes medINSUFFICIENT_BALANCE; API-et forkorter aldri utvalget ditt for at det skal passe. - Send et
rangenår du bare trenger en del av et opptak. Bare den valgte lyden belastes. - Avbryt jobber du ikke lenger trenger. Ferdige deler forblir tilgjengelige, og reservert tid som ikke ble brukt, gis tilbake.
- Avbryt opplastinger du ikke kommer til å bruke, slik at den neste opplastingen kan starte.
Hent komplette resultater
- Følg
next_cursortil den er null. En side inneholder maksimalt 32 elementer. - Behandle
gap-elementer som lyd som ikke kunne behandles, ikke som stillhet, og sjekkwarnings. - Last ned filene i
artifactsmens lenkene er gyldige (opptil ti minutter); hent siden på nytt for å få nye lenker. - Lagre det du trenger: resultatfiler oppbevares i omtrent 24 timer og gjenoppretting av transkripsjonen i omtrent 48 timer.
- Les feltene du trenger, og ignorer resten.
Vanlige spørsmål
Hvem kan bruke API-et?
Alle med et aktivt Basic- eller Plus-abonnement. API-tilgang er inkludert i begge abonnementene og har ingen egen pris. Uten et aktivt abonnement avvises nye jobber med PLAN_REQUIRED. Se abonnementer og priser.
Hvordan telles bruken av API-et?
API-jobber bruker de samme abonnementstimene som nettstedet og Chrome-utvidelsen. Serveren måler den faktiske lengden på den valgte lyden; charged_seconds i jobbstatusen og på hver resultatside viser nøyaktig mengde. For en jobb med hull som ikke kan gjenopprettes, forklarer vilkårene hvordan den manglende lyden belastes.
Hvilke filformater og filstørrelser støttes?
Video: MP4, M4V, MOV, WebM, MKV, OGV, AVI, WMV, ASF, FLV, MPG, MPEG, VOB, TS, MTS, M2TS, 3GP, 3G2 og MXF. Lyd: MP3, M4A, AAC, WAV, FLAC, OGG, OGA, OPUS, WMA, AMR, AIFF, AIF, CAF og AC3. En fil kan være opptil 8 GiB. Den må inneholde et lydspor som kan dekodes; kopibeskyttede filer kan ikke leses.
Hvilke språk kan jeg bruke?
Automatisk gjenkjenning er standard. Du kan også gi et hint om språket i lyden eller velge språket for notatene med en av mer enn 60 språkkoder, for eksempel en, de, es, fr, ja eller zh. Kontokallet viser alle verdiene som godtas akkurat nå.
Hvor lang tid tar en jobb?
Det avhenger av lengden på den valgte lyden og av den aktuelle belastningen. Jobber kjører i bakgrunnen, så du kan laste opp et langt opptak og se innom senere. completed_units og total_units i jobbstatusen viser fremdriften.
Kan jeg kalle API-et fra en nettleser eller en mobilapp?
Nei. En API-nøkkel gir tilgang til abonnementstimene dine, så den må bli på en server du selv kontrollerer. For en nett- eller mobilapp sender du filene til din egen backend og kaller API-et derfra.
Kan jeg sende en YouTube-lenke eller en annen URL?
Nei. API-et behandler filer du laster opp; det laster ikke ned URL-er eller YouTube-videoer.
Finnes det webhooks eller e-postvarsler?
Nei. Spør etter jobbstatus, og overhold poll_after_seconds. API-jobber sender ikke e-post.
Hva skjer hvis tilkoblingen min brytes?
Hvis en del ikke blir lastet opp, ber du om en ny signert URL for den delen og sender den på nytt før opplastingen utløper. Hvis svaret på opprettingen av jobben går tapt, gjentar du forespørselen med den samme Idempotency-Key og får den samme jobben tilbake. En jobb som kjører, er ikke avhengig av tilkoblingen din.
Hvor lenge oppbevares resultatene?
Resultatsider og nedlastingsfiler oppbevares i omtrent 24 timer etter at jobben er ferdig, og transkripsjonen kan gjenopprettes i omtrent 48 timer. Hvert svar oppgir nøyaktig tidspunkt i expires_at, så lagre det du trenger før det.
Hva skjer hvis jeg tilbakekaller en nøkkel eller abonnementet mitt avsluttes?
Å tilbakekalle en nøkkel stopper ikke jobber som allerede har startet; les resultatene deres med en annen nøkkel. Når abonnementet ditt avsluttes, kan en gyldig nøkkel fortsatt lese status og resultater og avbryte jobber til innholdet utløper, men nye opplastinger, nye jobber og gjenopptakelse krever et aktivt abonnement.
Hva skjer med filene jeg laster opp?
Vi tar sikte på å slette opplastede kildefiler innen 24 timer etter opplasting. Slettingen kan ta lengre tid. Personvernerklæringen forklarer hva som lagres, og hvor lenge.
Finnes det et SDK eller en OpenAPI-fil?
Det finnes ingen SDK-pakke. Bruk OpenAPI 3.1-filen til å generere en klient eller importere API-et i et verktøy som Postman eller Insomnia, eller ta utgangspunkt i eksemplene i Python og curl.
Hvilke hastighetsgrenser gjelder?
En konto kjører én opplasting og én jobb om gangen, kan starte opptil 10 opplastinger på til sammen 20 GiB per UTC-døgn, opprette 12 jobber per minutt og sende 60 andre forespørsler per minutt med alle nøklene sine samlet. Kontokallet returnerer verdiene som gjelder for deg.
Filer og eksempler
Eksemplene og kontraktfilene publiseres sammen med nettstedet og samsvarer med API-et i drift.
- client.py: eksempelklient for Python 3.12+, bare standardbiblioteket
- quickstart.sh: Bash-eksempel med curl og jq
- openapi.json: OpenAPI 3.1-beskrivelse av hvert endepunkt, med eksempler
- paid-api.schema.json: JSON Schema for hver forespørsel og hvert svar
Hjelp
Er noe uklart, eller virker det ikke? Kontakt oss, og oppgi request_id fra feilsvaret, tidspunktet og endepunktet. Send aldri API-nøkkelen din til oss.