ConvertSW Docs

v1.0.0 API Reference

ConvertSW Developer Docs

Panduan komprehensif untuk mengintegrasikan bot WhatsApp Anda dengan layanan kompresi video HD dari ConvertSW.


Introduction

API ConvertSW dibangun khusus untuk memecahkan masalah umum pada bot WhatsApp: Video yang dikirim menjadi burik/pecah di sisi klien WhatsApp.

Dengan API ini, Anda cukup mengirim file MP4 mentah, lalu kami akan memprosesnya menggunakan parameter kompresi rahasia yang telah dioptimalkan agar WhatsApp mendeteksinya sebagai kualitas HD.

Kenapa butuh API terpisah?

Memproses kompresi video langsung di VPS bot Anda sangat membebani CPU, dapat menyebabkan bot crash atau lambat merespons pesan lain. Mendelegasikan tugas ini ke ConvertSW API membuat bot Anda tetap ringan dan cepat.

Authentication

Setiap permintaan (*request*) ke API kami harus diotentikasi menggunakan API Key. Anda bisa mendapatkan API Key dengan membeli paket di halaman Developer.

API Key harus disertakan pada HTTP Headers dengan key x-api-key.

Contoh Request Header

POST /api/v1/process-video HTTP/1.1 Host: convertsw.my.id x-api-key: dev_sk_abc123... Content-Type: multipart/form-data; boundary=---Boundary123

Process Video Endpoint

Endpoint utama untuk mengompres video menjadi HD.

POST https://convertsw.my.id/api/v1/process-video

Request Body (Form Data)

Field Tipe Wajib Keterangan
video File Ya File video mentah (MP4 disarankan). Maksimal ukuran file bergantung pada paket Anda (50MB/100MB).

Response: Sukses (200 OK)

Jika sukses, server akan mengembalikan langsung isi file (binary/buffer) dari video yang telah selesai diproses. Content-Type yang dikembalikan adalah video/mp4.

Penting!

Pastikan HTTP Client yang Anda gunakan di-set untuk menerima tipe ArrayBuffer atau Stream. Jika dibiarkan default (text/JSON), file video akan rusak (corrupt).

Response: Error (400 / 401 / 429 / 500)

Jika terjadi kesalahan, server akan merespons dalam bentuk format JSON.

{ "error": "API Key tidak valid atau tidak ditemukan" }

Integrasi dengan Baileys

Berikut adalah langkah integrasi paling umum untuk WhatsApp bot berbasis NodeJS (Baileys).

Kode Lengkap

const axios = require('axios'); const FormData = require('form-data'); // Asumsi 'msg' adalah objek pesan dari Baileys // Asumsi 'sock' adalah instance socket Baileys async function handleHDCommand(sock, jid, msg) { try { // 1. Download media dari chat menjadi buffer const buffer = await downloadMediaMessage( msg, 'buffer', {}, { logger, reuploadRequest: sock.updateMediaMessage } ); // 2. Bungkus ke dalam FormData const form = new FormData(); form.append('video', buffer, { filename: 'input.mp4' }); // Berikan reaksi "Sedang memproses" await sock.sendMessage(jid, { react: { text: "⏳", key: msg.key } }); // 3. Panggil API ConvertSW const response = await axios.post('https://convertsw.my.id/api/v1/process-video', form, { headers: { ...form.getHeaders(), 'x-api-key': 'API_KEY_ANDA_DI_SINI' // Ganti ini }, // PENTING: Response Type wajib arraybuffer responseType: 'arraybuffer' }); // 4. Kirim hasil kembalian (response.data) ke user await sock.sendMessage(jid, { video: response.data, caption: 'Video Anda sudah HD dan siap di-upload ke Status WA! 🚀' }, { quoted: msg }); // Berikan reaksi Sukses await sock.sendMessage(jid, { react: { text: "✅", key: msg.key } }); } catch (err) { // Handle error (bisa berupa timeout, limit habis, atau file terlalu besar) let errMsg = "Terjadi kesalahan sistem."; if (err.response && err.response.data) { // Jika error JSON dari ConvertSW API errMsg = err.response.data.error || errMsg; } await sock.sendMessage(jid, { text: `❌ Gagal: ${errMsg}` }, { quoted: msg }); await sock.sendMessage(jid, { react: { text: "❌", key: msg.key } }); } }