Lewati ke konten

Gambar, audio & video

Setiap endpoint di halaman ini hanya bisa dipakai dengan model yang punya fitur tersebut di AI → Katalog. Ukuran atau kualitas yang tidak punya tarif di katalog ditolak dengan LLM_UNIT_NOT_PRICED sebelum apa pun dikirim ke provider, jadi tidak ada yang ditagih.

POST https://api.satupod.com/v1/images/generations
import base64
result = client.images.generate(
model="NAMA_MODEL_GAMBAR",
prompt="Maskot robot biru di atas server, gaya ilustrasi datar",
size="1024x1024",
n=1,
)
with open("gambar.png", "wb") as f:
f.write(base64.b64decode(result.data[0].b64_json))
  • size berbentuk LEBARxTINGGI, bawaannya 1024x1024. auto ditolak, karena harga dihitung dari ukuran yang diminta.
  • n paling banyak 4. Yang ditagih hanya gambar yang benar-benar kembali.
  • Jawaban selalu b64_json. response_format: "url" ditolak.
  • Ditagih per gambar, sesuai tarif ukuran dan kualitas di katalog.
POST https://api.satupod.com/v1/audio/speech
response = client.audio.speech.create(
model="NAMA_MODEL_SUARA",
voice="ID_SUARA",
input="Selamat datang di Satupod.",
)
response.write_to_file("salam.mp3")
  • input paling banyak 4096 karakter.
  • voice adalah ID suara milik provider model itu.
  • response_format: mp3 (bawaan), opus, aac, flac, wav, atau pcm.
  • Jawabannya berkas audio, bukan JSON. Tidak ada streaming.
  • Ditagih per karakter yang dikirim.
POST https://api.satupod.com/v1/audio/transcriptions
with open("rapat.mp3", "rb") as f:
result = client.audio.transcriptions.create(
model="NAMA_MODEL_TRANSKRIPSI",
file=f,
language="id",
)
print(result.text)
  • Body berbentuk multipart/form-data. Berkas paling besar 25 MB; di atas itu ditolak dengan LLM_AUDIO_TOO_LARGE (HTTP 413).
  • Field: file (wajib), model, language, prompt, temperature, response_format (json bawaan, text, verbose_json, srt, atau vtt).
  • Ditagih per detik audio sesuai durasi yang dilaporkan provider. Berkasnya tidak disimpan.

Pembuatan video berjalan di latar belakang dalam tiga langkah.

POST https://api.satupod.com/v1/videos memulai pekerjaan
GET https://api.satupod.com/v1/videos/{id} membaca status
GET https://api.satupod.com/v1/videos/{id}/content mengunduh berkas mp4
  1. Mulai. Kirim model, prompt, seconds (bawaan 4), dan size (LEBARxTINGGI, bawaan 1280x720). Jawabannya objek pekerjaan dengan id.
  2. Tunggu. Baca status sampai completed atau failed. Statusnya: queued, in_progress, completed, atau failed.
  3. Unduh berkasnya dari /content, lalu simpan sendiri.

Yang perlu diketahui:

  • Video ditagih saat selesai. Pekerjaan yang gagal tidak ditagih.
  • Satupod tidak menyimpan video. Berkas hanya tersedia selama provider menyimpannya (lihat expires_at). Setelah itu jawabannya 410 VIDEO_EXPIRED.
  • Pekerjaan hanya terlihat oleh kunci milik akun yang membuatnya.