ConvertSW Docs

v1.0.0 API Reference

API Documentation

Panduan komprehensif untuk mengintegrasikan bot WhatsApp Anda dengan layanan kompresi video HD otomatis 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). Maks ukuran file bergantung paket (50MB/100MB).

Response: Sukses (200 OK)

Jika sukses, server akan mengembalikan langsung isi file (binary/buffer) dari video yang telah 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 (4xx / 500)

Jika terjadi kesalahan, server merespons dengan format JSON.

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

Integrasi dengan Baileys

Langkah integrasi paling umum untuk WhatsApp bot berbasis NodeJS (Baileys).

Kode Lengkap (NodeJS)

const axios = require('axios'); const FormData = require('form-data'); // Asumsi 'msg' = objek pesan Baileys, 'sock' = instance socket async function handleHDCommand(sock, jid, msg) { try { // 1. Download media jadi buffer const buffer = await downloadMediaMessage(msg, 'buffer', {}, { logger, reuploadRequest: sock.updateMediaMessage }); // 2. Bungkus form data const form = new FormData(); form.append('video', buffer, { filename: 'input.mp4' }); await sock.sendMessage(jid, { react: { text: "⏳", key: msg.key } }); // 3. Panggil API (Wajib arraybuffer) const response = await axios.post('https://convertsw.my.id/api/v1/process-video', form, { headers: { ...form.getHeaders(), 'x-api-key': 'API_KEY_ANDA' }, responseType: 'arraybuffer' }); // 4. Kirim hasil buffer (response.data) ke user await sock.sendMessage(jid, { video: response.data, caption: 'Video Anda sudah HD! 🚀' }, { quoted: msg }); } catch (err) { let errMsg = "Error sistem."; if (err.response && err.response.data) errMsg = err.response.data.error || errMsg; await sock.sendMessage(jid, { text: \`❌ Gagal: \${errMsg}\` }, { quoted: msg }); } }