Kūrėjų API

Viena universali API visiems failų darbo procesams

Converter App suteikia kūrėjams didelio našumo failų apdorojimo sąsają. Pakeiskite atskirus įrankius viena API, skirta masteliui pritaikomam dokumentų konvertavimui, medijos apdorojimui, transkribavimui ir OCR.

Converter App API apžvalga

Converter App API suteikia kūrėjams sklandžią, universalią sąsają visiems failų apdorojimo poreikiams. Užuot integravus susiskaidžiusią atskirų įrankių visumą, jūsų programa gali kviesti vieną didelio našumo paslaugą. Galite tiesiogiai integruoti visą mūsų konvertavimo įrankių rinkinį į backend darbo eigas, kad būtų apdorojama viskas – nuo įprastų failų pakeitimų iki sudėtingų medijos užduočių.

Viešasis bazinis URL yra https://api.converter.app/. Šiame dokumente naudojami keliai remiasi šiuo išoriškai teikiamu API šakiniu adresu.

Visapusiška aprėptis

Per vieną supaprastintą integraciją pasiekite visą konvertavimo įrankių biblioteką.

Du apdorojimo režimai

Pasirinkite sinchronines užklausas, jei reikia momentinio atsakymo, arba asinchronines užduotis dideliems failams ir ilgai vykdomoms operacijoms.

Pritaikyta pagal jūsų poreikius

Susisiekite su mumis ir mes galime pasiūlyti pagal jūsų poreikius pritaikytą planą už neprilygstamą kainą.

Dokumentai Vaizdai Garsas Vaizdo įrašas Tekstas Archyvai

Atraskite palaikomus konvertavimus (rakto nereikia)

Naudokite viešą pairs galinį tašką kaip paprasčiausią ryšio testą. Jam nereikia API rakto ir jis grąžina visą platformoje pasiekiamų palaikomų konvertavimo porų sąrašą.

GAUTI /public/pairs

Šis galinis taškas yra atviras, todėl kūrėjai gali peržiūrėti universalų konvertavimo katalogą prieš prašydami arba konfigūruodami API raktą.

curl "https://api.converter.app/public/pairs"

JavaScript

const response = await fetch('https://api.converter.app/public/pairs');
const pairs = await response.json();
console.log(pairs.supported_pairs);

Python

import requests

response = requests.get('https://api.converter.app/public/pairs')
response.raise_for_status()
pairs = response.json()
print(pairs['supported_pairs'])

Pavyzdinis atsakymas

{
  "supported_pairs": [
    { "from": "mp3", "to": "text" },
    { "from": "mp4", "to": "mp3" },
    { "from": "mov", "to": "mp4" },
    { "from": "wav", "to": "mp3" },
    { "from": "mkv", "to": "mp4" }
  ]
}

Autentifikavimas ir prieigos kontrolė

Kūrėjai autentifikuojasi perduodami savo API raktą HTTP antraštėje X API Key. Viešasis /public/pairs galinis taškas yra vienintelis šiame puslapyje, kuriam nereikia rakto.

ValdymasKaip tai veikiaKūrėjo poveikis
X-API-KeySiųskite raktą kaip HTTP užklausos antraštę.Reikalinga /pairs, /convert/sync, /convert, /progress/{jobid} ir /download/{jobid}.
Naudojimo kvotosKiekvienas raktas turi skaitmeninę konvertavimo kvotą. Kvota mažėja, kai sukuriamos konvertavimo užduotys.-1 kvota suteikia neribotą konvertavimų skaičių. Kitos reikšmės rodo likusius leistinus konvertavimus.
Leidžiamos porosRaktai gali būti apriboti konkrečiais konvertavimo tipais, pvz., mp42mp3, arba suteikti prieigą prie visų all palaikomų porų./pairs grąžina tik tuos formatus, kuriuos Jūsų raktui leidžiama naudoti, o konvertavimo užklausos, esančios už šio sąrašo ribų, atmetamos.
curl "https://api.converter.app/pairs" \
  -H "X-API-Key: YOUR_API_KEY"

JavaScript

const response = await fetch('https://api.converter.app/pairs', {
  headers: {
    'X-API-Key': apiKey
  }
});

const pairs = await response.json();
console.log(pairs);

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
response = requests.get('https://api.converter.app/pairs', headers=headers)
response.raise_for_status()
print(response.json())

2. Sinchroninis konvertavimas

SKELBTI /convert/sync

Naudokite sinchroninį konvertavimą, kai norite gauti rezultatą iš karto tame pačiame HTTP atsakyme. Užklausa lieka atvira, kol API paleidžia konvertavimo užduotį ir laukia jos užbaigimo, iki 30 minučių.

Lauko formos elementasTipasAprašymas
target_formateilutėPrašomas išvesties failo plėtinys, pvz., pdf, docx, mp3 arba jpg.
filesfailas[]Vienas ar daugiau įkeltų šaltinio failų. API nustato šaltinio formatą pagal įkelto failo pavadinimą.
curl -X POST "https://api.converter.app/convert/sync" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "target_format=pdf" \
  -F "files=@/path/to/document.docx" \
  -o converted.pdf

JavaScript

const form = new FormData();
form.append('target_format', 'pdf');
form.append('files', fileInput.files[0]);

const response = await fetch('https://api.converter.app/convert/sync', {
  method: 'POST',
  headers: {
    'X-API-Key': apiKey
  },
  body: form
});

const convertedFile = await response.blob();

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
data = {'target_format': 'pdf'}

with open('/path/to/document.docx', 'rb') as document:
    files = {'files': document}
    response = requests.post(
        'https://api.converter.app/convert/sync',
        headers=headers,
        data=data,
        files=files
    )

response.raise_for_status()
with open('converted.pdf', 'wb') as output:
    output.write(response.content)

Atsakymas tiesiogiai perduoda konvertuotą failą. Jei konvertuojant sukuriami keli failai, API grąžina .zip archyvą.

3. Asinchroninis konvertavimas

PAKUOTĖS SKAIDINYMAS /convert

Naudokite asinchroninį konvertavimą dideliems failams, paketiniam apdorojimui, ilgai trunkančioms garso ar vaizdo užduotims arba gamybinėms programoms, kurios neturėtų laikyti įkėlimo užklausų atidarytų, kol vykdomas darbas.

Lauko formos TipasAprašymas
target_formateilutėPageidaujamas išvesties formatas. Šaltinio ir paskirties formatai sudaro konvertavimo porą, pavyzdžiui mp42mp3.
filesfailas[]Vienas ar keli konvertuotini failai.

cURL

curl -X POST "https://api.converter.app/convert" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "target_format=mp3" \
  -F "files=@/path/to/video.mp4"

JavaScript

const form = new FormData();
form.append('target_format', 'mp3');
form.append('files', fileInput.files[0]);

const response = await fetch('https://api.converter.app/convert', {
  method: 'POST',
  headers: {
    'X-API-Key': apiKey
  },
  body: form
});

const job = await response.json();
console.log(job.jobid, job.remaining_quota);

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
data = {'target_format': 'mp3'}

with open('/path/to/video.mp4', 'rb') as video:
    files = {'files': video}
    response = requests.post(
        'https://api.converter.app/convert',
        headers=headers,
        data=data,
        files=files
    )

response.raise_for_status()
job = response.json()
print(job['jobid'], job['remaining_quota'])

Sėkmingas atsakymas

{
  "status": "success",
  "jobid": "b3f6b2e8f5c34c4ab01c93c4d1b2f9e8",
  "pair": "mp42mp3",
  "remaining_quota": 42
}

4. Būsenos sekimas

GAUTI /progress/{jobid}

Po asinchroninės užduoties sukūrimo apklauskite šį galinį tašką. Jis grąžina užduoties būseną, skaitinę progreso reikšmę nuo 0.0 iki 1.0 ir klaidos informaciją, jei konvertavimas nepavyko.

AntraštėAprašymas
X-API-KeyJūsų kūrėjo API raktas.
curl "https://api.converter.app/progress/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8" \
  -H "X-API-Key: YOUR_API_KEY"

JavaScript

const response = await fetch('https://api.converter.app/progress/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8', {
  headers: {
    'X-API-Key': apiKey
  }
});

const progress = await response.json();
console.log(progress.status, progress.progress);

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
response = requests.get(
    'https://api.converter.app/progress/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8',
    headers=headers
)
response.raise_for_status()
progress = response.json()
print(progress['status'], progress['progress'])
{
  "jobid": "b3f6b2e8f5c34c4ab01c93c4d1b2f9e8",
  "progress": 1.0,
  "status": "completed",
  "error": null
}

Galimos būsenos yra processing, completed ir failed. Eigos rodiklis yra skaičius nuo 0.0 iki 1.0.

5. Failų gavimas

GAUTI /download/{jobid}

Kai asinchroninė užduotis pasiekia completed, gaukite konvertuotą išvestį naudodami tą patį API raktą, kuris buvo naudojamas užduočiai sukurti.

Rezultato tipasElgesys
Vienas išvesties failasAPI tiesiogiai perduoda konvertuotą failą.
resultfile manifestasJei užduotis pateikia rezultatų manifestą, API grąžina tame manifeste nurodytą failą.
Keli išvesties failaiAPI paketai sugeneruotus failus akimirksniu supakuoja į .zip archyvą.
curl -L "https://api.converter.app/download/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8" \
  -H "X-API-Key: YOUR_API_KEY" \
  -o converted-output.zip

JavaScript

const response = await fetch('https://api.converter.app/download/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8', {
  headers: {
    'X-API-Key': apiKey
  }
});

const file = await response.blob();

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
response = requests.get(
    'https://api.converter.app/download/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8',
    headers=headers
)
response.raise_for_status()

with open('converted-output.zip', 'wb') as output:
    output.write(response.content)

Kūrėjo darbo eigos santrauka

API palaiko du integravimo modelius, todėl kūrėjai gali pasirinkti tinkamą kiekvieno naudojimo atvejo veikimą.

SrautasUžklausos šablonasGeriausia skirta
Greitas sinchronizavimo srautasPOST /convert/sync grąžina konvertuotą failą tame pačiame atsakyme.Maži failai, komandinės eilutės scenarijai, prototipai ir paprastos serverio pusės automatizacijos.
Tvirta asinchroninė eigaPOST /convert, tada tikrinkite GET /progress/{jobid}, o tada kvieskite GET /download/{jobid}.Dideli vaizdo ar garso failai, paketinis konvertavimas, žiniatinklio programų užpakalinės sistemos ir gamybinės sistemos, pritaikytos pakartotiniams bandymams.

Asinchroninio srauto pavyzdys

# 1. Start the job
curl -X POST "https://api.converter.app/convert" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "target_format=mp3" \
  -F "files=@/path/to/video.mp4"

# 2. Poll until completed
curl "https://api.converter.app/progress/JOBID" \
  -H "X-API-Key: YOUR_API_KEY"

# 3. Download the finished output
curl -L "https://api.converter.app/download/JOBID" \
  -H "X-API-Key: YOUR_API_KEY" \
  -o result.mp3

JavaScript

const form = new FormData();
form.append('target_format', 'mp3');
form.append('files', fileInput.files[0]);

const createResponse = await fetch('https://api.converter.app/convert', {
  method: 'POST',
  headers: {
    'X-API-Key': apiKey
  },
  body: form
});
const job = await createResponse.json();

const progressResponse = await fetch(`https://api.converter.app/progress/${job.jobid}`, {
  headers: {
    'X-API-Key': apiKey
  }
});
const progress = await progressResponse.json();

if (progress.status === 'completed') {
  const downloadResponse = await fetch(`https://api.converter.app/download/${job.jobid}`, {
    headers: {
      'X-API-Key': apiKey
    }
  });
  const result = await downloadResponse.blob();
}

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
data = {'target_format': 'mp3'}

with open('/path/to/video.mp4', 'rb') as video:
    files = {'files': video}
    create_response = requests.post(
        'https://api.converter.app/convert',
        headers=headers,
        data=data,
        files=files
    )

create_response.raise_for_status()
job = create_response.json()

progress_response = requests.get(
    f"https://api.converter.app/progress/{job['jobid']}",
    headers=headers
)
progress_response.raise_for_status()
progress = progress_response.json()

if progress['status'] == 'completed':
    download_response = requests.get(
        f"https://api.converter.app/download/{job['jobid']}",
        headers=headers
    )
    download_response.raise_for_status()
    with open('result.mp3', 'wb') as output:
        output.write(download_response.content)

Klaidų atsakymai

Klaidos grąžinamos kaip JSON su detail lauku, naudojant standartinius HTTP būsenos kodus.

BūsenaDažna priežastis
400Trūksta failų, trūksta target_format, nepalaikomas užduoties ID formatas arba neteisingi užklausos duomenys.
401Trūksta X API Key arba jis neteisingas.
403API raktui neleidžiama naudoti prašomos konvertavimo poros.
404Prašomas uždavinys arba sugeneruotas rezultato failas nepasiekiamas.
409Konvertavimas vis dar apdorojamas, kai pateikiamas atsisiuntimo užklausimas.
429API raktui nebeliko kvotos.
500Konvertavimo nepavyko paruošti arba užbaigti dėl serverio apdorojimo klaidos.
{
  "detail": "This API key is not authorized for mp42mp3 conversions."
}