Επισκόπηση API: Converter App
Το API Converter App παρέχει στους προγραμματιστές μια απρόσκοπτη, καθολική διεπαφή για κάθε ανάγκη επεξεργασίας αρχείων. Αντί να ενσωματώνετε μια κατακερματισμένη συλλογή από ξεχωριστά εργαλεία, η εφαρμογή σας μπορεί να καλεί μία ενιαία υπηρεσία υψηλών επιδόσεων. Μπορείτε να ενσωματώσετε ολόκληρη τη σουίτα μετατροπής μας απευθείας στις ροές εργασίας backend, για να διαχειρίζεστε τα πάντα, από τυπικές αλλαγές αρχείων έως απαιτητικές εργασίες πολυμέσων.
Η δημόσια βασική διεύθυνση URL είναι https://api.converter.app/. Οι διαδρομές σε αυτό το έγγραφο χρησιμοποιούν αυτό το εξωτερικά παρεχόμενο ριζικό σημείο του API.
Καθολική κάλυψη
Αποκτήστε πρόσβαση σε μια πλήρη βιβλιοθήκη εργαλείων μετατροπής μέσω μίας απλοποιημένης ενοποίησης.
Δύο λειτουργίες επεξεργασίας
Επιλέξτε σύγχρονες αιτήσεις για άμεσες αποκρίσεις ή ασύγχρονες εργασίες για μεγάλα αρχεία και μακρόχρονες διεργασίες.
Προσαρμοσμένο στις ανάγκες σας
Επικοινωνήστε μαζί μας και μπορούμε να σας προσφέρουμε ένα σχέδιο προσαρμοσμένο στις ανάγκες σας σε ασυναγώνιστη τιμή.
Έγγραφα
Εικόνες
Ήχος
Βίντεο
Κείμενο
Αρχεία συμπίεσης
Ανακαλύψτε τις υποστηριζόμενες μετατροπές (Δεν απαιτείται κλειδί)
Χρησιμοποιήστε το δημόσιο endpoint pairs ως την απλούστερη δοκιμή συνδεσιμότητας. Δεν απαιτεί κλειδί API και επιστρέφει την πλήρη λίστα των υποστηριζόμενων ζευγών μετατροπής που είναι διαθέσιμα στην πλατφόρμα.
ΛΗΨΗ
/public/pairs
Αυτό το τελικό σημείο είναι ανοιχτό, ώστε οι προγραμματιστές να μπορούν να εξετάσουν τον καθολικό κατάλογο μετατροπών πριν ζητήσουν ή ρυθμίσουν ένα κλειδί API.
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'])
Παράδειγμα απάντησης
{
"supported_pairs": [
{ "from": "mp3", "to": "text" },
{ "from": "mp4", "to": "mp3" },
{ "from": "mov", "to": "mp4" },
{ "from": "wav", "to": "mp3" },
{ "from": "mkv", "to": "mp4" }
]
}
Authentication & Access Control
Οι προγραμματιστές πραγματοποιούν ταυτοποίηση περνώντας το κλειδί API τους στην κεφαλίδα HTTP X API Key. Το δημόσιο endpoint /public/pairs είναι το μόνο endpoint σε αυτήν τη σελίδα που δεν απαιτεί κλειδί.
| Έλεγχος | Πώς λειτουργεί | Επίπτωση για προγραμματιστές |
X-API-Key | Αποστείλετε το κλειδί ως κεφαλίδα αιτήματος HTTP. | Απαιτείται για /pairs, /convert/sync, /convert, /progress/{jobid} και /download/{jobid}. |
| Όρια χρήσης | Κάθε κλειδί έχει ένα αριθμητικό όριο μετατροπών. Το όριο μειώνεται όταν δημιουργούνται εργασίες μετατροπής. | Μια ποσόστωση -1 παρέχει απεριόριστες μετατροπές. Οι άλλες τιμές αντιπροσωπεύουν τις μετατροπές που απομένουν και επιτρέπονται. |
| Επιτρεπόμενα ζεύγη | Τα κλειδιά μπορούν να περιοριστούν σε συγκεκριμένους τύπους μετατροπής, όπως το mp42mp3, ή να τους δοθεί πρόσβαση σε όλα τα υποστηριζόμενα ζεύγη μέσω του all. | /pairs επιστρέφει μόνο τα ζεύγη στα οποία το κλειδί σας έχει εξουσιοδότηση να χρησιμοποιεί, και τα αιτήματα μετατροπής εκτός αυτής της λίστας απορρίπτονται. |
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. Σύγχρονη μετατροπή
POST
/convert/sync
Χρησιμοποιήστε σύγχρονη μετατροπή όταν θέλετε άμεσο αποτέλεσμα στην ίδια απόκριση HTTP. Το αίτημα παραμένει ανοιχτό ενώ το API ξεκινά την εργασία μετατροπής και περιμένει την ολοκλήρωσή της, έως και 30 λεπτά.
| Πεδίο φόρμας | Τύπος | Περιγραφή |
target_format | string | Η ζητούμενη επέκταση εξόδου, όπως pdf, docx, mp3 ή jpg. |
files | αρχείο[] | Ένα ή περισσότερα μεταφορτωμένα αρχεία προέλευσης. Το API καθορίζει τη μορφή προέλευσης από το όνομα του μεταφορτωμένου αρχείου. |
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)
Η απάντηση μεταδίδει απευθείας το μετατρεπόμενο αρχείο. Εάν η μετατροπή παράγει πολλά αρχεία, το API επιστρέφει ένα αρχείο .zip.
3. Ασύγχρονη μετατροπή
ΔΗΜΟΣΙΕΥΣΗ
/convert
Χρησιμοποιήστε ασύγχρονη μετατροπή για μεγάλα αρχεία, μαζική επεξεργασία, εργασίες ήχου ή βίντεο μεγάλης διάρκειας ή εφαρμογές παραγωγής που δεν πρέπει να διατηρούν ανοιχτά τα αιτήματα μεταφόρτωσης όσο εκτελείται η εργασία.
| Πεδίο φόρμας | Τύπος | Περιγραφή |
target_format | string | Η επιθυμητή μορφή εξόδου. Η πηγή και ο προορισμός αποτελούν το ζεύγος μετατροπής, για παράδειγμα mp42mp3. |
files | αρχείο[] | Ένα ή περισσότερα αρχεία για μετατροπή. |
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'])
Απόκριση επιτυχίας
{
"status": "success",
"jobid": "b3f6b2e8f5c34c4ab01c93c4d1b2f9e8",
"pair": "mp42mp3",
"remaining_quota": 42
}
4. Παρακολούθηση κατάστασης
ΛΗΨΗ
/progress/{jobid}
Κάντε polling σε αυτό το endpoint μετά τη δημιουργία μιας ασύγχρονης εργασίας. Επιστρέφει την κατάσταση της εργασίας, μια αριθμητική τιμή προόδου από 0.0 έως 1.0 και λεπτομέρειες σφάλματος αν η μετατροπή απέτυχε.
| Κεφαλίδα | Περιγραφή |
X-API-Key | Το κλειδί API προγραμματιστή σας. |
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
}
Οι δυνατές καταστάσεις είναι processing, completed και failed. Η πρόοδος είναι ένας αριθμός μεταξύ 0.0 και 1.0.
5. Ανάκτηση αρχείων
ΛΗΨΗ
/download/{jobid}
Μόλις μια ασύγχρονη εργασία φτάσει στην κατάσταση completed, ανακτήστε το μετατρεπόμενο αποτέλεσμα με το ίδιο API key που χρησιμοποιήθηκε για τη δημιουργία της εργασίας.
| Τύπος αποτελέσματος | Συμπεριφορά |
| Ένα μόνο αρχείο εξόδου | Το API μεταδίδει το μετατρεπόμενο αρχείο απευθείας. |
resultfile μανιφέστο | Εάν η εργασία παρέχει ένα manifest αποτελεσμάτων, το API επιστρέφει το αρχείο που καθορίζεται από αυτό το manifest. |
| Πολλαπλά αρχεία εξόδου | Τα πακέτα API συμπιέζουν τα δημιουργημένα αρχεία σε ένα αρχείο .zip άμεσα. |
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)
Σύνοψη της ροής εργασίας προγραμματιστή
Το API υποστηρίζει δύο πρότυπα ενσωμάτωσης, ώστε οι προγραμματιστές να μπορούν να επιλέγουν τη σωστή συμπεριφορά για κάθε περίπτωση χρήσης.
| Ροή | Πρότυπο αιτήματος | Ιδανικό για |
| Γρήγορη ροή συγχρονισμού | POST /convert/sync επιστρέφει το μετατρεπόμενο αρχείο στην ίδια απάντηση. | Μικρά αρχεία, σενάρια γραμμής εντολών, πρωτότυπα και απλές αυτοματοποιήσεις στην πλευρά του διακομιστή. |
| Ισχυρή ασύγχρονη ροή | POST /convert, στη συνέχεια κάντε polling στο GET /progress/{jobid}, και μετά καλέστε το GET /download/{jobid}. | Μεγάλα αρχεία βίντεο ή ήχου, μαζική μετατροπή, backends διαδικτυακών εφαρμογών και συστήματα παραγωγής φιλικά προς τις επαναλήψεις. |
Παράδειγμα ασύγχρονης ροής
# 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)
Απαντήσεις σφαλμάτων
Τα σφάλματα επιστρέφονται ως JSON με ένα πεδίο detail, χρησιμοποιώντας τυπικούς κωδικούς κατάστασης HTTP.
| Κατάσταση | Συνήθης αιτία |
400 | Λείπουν αρχεία, λείπει το target_format, μη υποστηριζόμενη μορφή αναγνωριστικού εργασίας ή μη έγκυρη είσοδος αιτήματος. |
401 | Λείπει ή είναι μη έγκυρο το X API Key. |
403 | Το κλειδί API δεν επιτρέπεται να χρησιμοποιεί το ζητούμενο ζεύγος μετατροπής. |
404 | Το ζητούμενο έργο ή το παραγόμενο αρχείο αποτελέσματος δεν είναι διαθέσιμο. |
409 | Η μετατροπή εξακολουθεί να βρίσκεται σε εξέλιξη όταν ζητηθεί λήψη. |
429 | Το κλειδί API δεν έχει υπόλοιπο διαθέσιμο όριο. |
500 | Η μετατροπή δεν μπόρεσε να προετοιμαστεί ή να ολοκληρωθεί λόγω σφάλματος επεξεργασίας στην πλευρά του διακομιστή. |
{
"detail": "This API key is not authorized for mp42mp3 conversions."
}