2Slides Logo
Cara Menghasilkan 100 Deck Kosakata Secara Batch dengan 2Slides API (Playbook Pabrik Konten 2026)
2Slides Team
14 min read

Cara Menghasilkan 100 Deck Kosakata Secara Batch dengan 2Slides API (Playbook Pabrik Konten 2026)

Setelah Anda memvalidasi alur kerja manual β€” menghasilkan satu deck kosakata, menarasikannya, mengekspor aset β€” bottleneck berikutnya adalah volume. Sekolah bahasa dengan 12 level dan 30 tema mingguan butuh 360 deck per tahun. Channel TikTok faceless yang memposting harian butuh 365 deck plus varian rasio aspek. Tim konten di perusahaan EdTech butuh ratusan deck yang disegmentasi berdasarkan pasangan L1/L2.

Anda tidak membangun 360 deck dengan tangan. Anda membangun pabrik konten.

Panduan ini adalah playbook praktis 2026 untuk menghasilkan deck kosakata (dan konten slide lainnya) secara batch dengan 2Slides API. Keputusan arsitektur paling penting β€” dan yang paling sering salah β€” adalah memilih endpoint generasi yang tepat.

Pilih endpoint yang tepat dulu (di sinilah sebagian besar pabrik gagal)

2Slides mengekspos dua alur generasi yang berbeda melalui API. Hanya salah satunya yang menghasilkan deck yang bisa selanjutnya dinarasikan.

EndpointApa yang dihasilkanNarasi mungkin?Kredit
POST /api/v1/slides/generate
Fast PPT β€” PPTX berbasis template. Membutuhkan
themeId
dari pustaka template.
❌ Tidak. Endpoint narasi secara eksplisit menolak job yang dibuat di sini.10 / halaman
POST /api/v1/slides/create-pdf-slides
Nano Banana β€” slide yang dihasilkan gambar dari prompt teks. Engine yang sama dengan Workspace.βœ… Ya10 (planning) + 100 / slide (1K/2K) atau 200 / slide (4K)
POST /api/v1/slides/create-like-this
Nano Banana β€” slide yang dihasilkan gambar yang cocok dengan gambar referensi.βœ… YaSama seperti di atas

Untuk pabrik konten kartu kosakata dengan narasi dan audio yang dapat diekspor, gunakan

create-pdf-slides
(atau
create-like-this
jika Anda memiliki layout referensi).
Jangan gunakan
/api/v1/slides/generate
β€” itu adalah endpoint Fast PPT dan Anda tidak bisa menambahkan narasi padanya.

Jika pabrik Anda hanya butuh PPTX bisu (tanpa audio, tanpa video), Fast PPT via

/api/v1/slides/generate
adalah jalur termurah. Sisa playbook ini mengasumsikan alur kerja bernarasi.

Arsitektur dalam satu diagram

[Source data] [Orchestrator] [2Slides API] [Outputs] β”‚ β”‚ β”‚ β”‚ vocabulary ──prompt──▢ Job queue ──POST──▢ /api/v1/slides/create-pdf-slides ──▢ jobId (UUID) spreadsheet (Cron/script) β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Poll ──GET──▢ /api/v1/jobs/{jobId} β—€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ every 20-30s status: success β”‚ β”‚ β–Ό β”‚ [pages slides PNG Β· downloadUrl PDF] β”‚ β–Ά POST /api/v1/slides/generate-narration β”‚ (jobId, voice, mode, etc.) β€” async only β”‚ Poll ──GET──▢ /api/v1/jobs/{jobId} message: "Voice narration generation in progress" β†’ success β”‚ β–Ά POST /api/v1/slides/download-slides-pages-voices β”‚ (free; returns ZIP) β–Ό pages/*.png + voices/*.{wav,mp3} + transcript.txt β”‚ β–Ό (Optional) compose MP4 client-side with FFmpeg, or use the Workspace UI β”‚ β–Ό [LMS / TikTok / newsletter / S3]

Source data β†’ orchestrator β†’ API β†’ ZIP berisi pages + voices β†’ distribusi. Komposisi MP4 opsional dan bukan endpoint API publik per 2026 β€” ini adalah fitur UI Workspace menggunakan FFmpeg.wasm di browser. Padanan API adalah ZIP pages-and-voices, yang bisa Anda komposisikan dengan

ffmpeg
server-side jika butuh MP4 di pabrik.

Langkah 1 β€” Desain skema sumber dulu

Langkah dengan leverage tertinggi adalah mendefinisikan skema data sumber sebelum panggilan API mana pun. Deck yang dibangun dari skema bersih dapat direproduksi; deck yang dibangun dari prompt ad-hoc tidak.

Baris sumber deck kosakata yang berskala:

deck_id: vocab-b1-travel-2026-w14 source_l1: en # learner's native language target_l2: es # language being learned cefr_level: B1 theme: travel words: - { word: "boarding pass", ipa: "/ˈbɔːrdΙͺΕ‹ pΓ¦s/", pos: noun, l1: "tarjeta de embarque" } - { word: "layover", ipa: "/ˈleΙͺoʊvΙ™r/", pos: noun, l1: "escala" } - { word: "to delay", ipa: "/dΙͺˈleΙͺ/", pos: verb, l1: "retrasar" } # ... 27 more generation: endpoint: create-pdf-slides aspect_ratio: "9:16" # vertical for short-form review resolution: "2K" page_count: 30 content_detail: "concise" narration: enabled: true voice: "Puck" # see /tts_sample_voices for the catalog mode: "single" distribution: social: [tiktok, reels, shorts] newsletter: monday-2026-w14

Objek itu adalah unit kerja. Semuanya hilir mengonsumsinya.

Bangun skema sumber di apa pun yang sudah Anda miliki: Google Sheet untuk tim non-teknis, tabel Postgres untuk tim engineering, CMS dengan field terstruktur untuk tim konten. Hindari membangunnya dalam file Markdown polos β€” Markdown bagus untuk penulisan manusia tapi buruk untuk otomatisasi batch.

Langkah 2 β€” Autentikasi

Dapatkan API key dari halaman manajemen API. Formatnya:

sk-2slides-{64-character-hex-string}

Semua request menggunakan bearer auth:

Authorization: Bearer sk-2slides-...

Rate limit per endpoint didokumentasikan di 2slides.com/api.md. Untuk produksi batch:

  • create-pdf-slides
    dan
    create-like-this
    : desain antrean Anda di sekitar batas konkurensinya dengan exponential backoff pada 429
  • jobs/{id}
    (poll): hormati cadence polling di bawah β€” 20–30s, tidak agresif
  • download-slides-pages-voices
    : gratis dan lebih cepat, tapi tetap ada rate limit

Langkah 3 β€” Submit job generasi Nano Banana

Kartu kosakata bekerja paling baik di mode async (generasi gambar per slide butuh 1–3 menit untuk deck 30 kartu).

curl -X POST "https://2slides.com/api/v1/slides/create-pdf-slides" \ -H "Authorization: Bearer sk-2slides-..." \ -H "Content-Type: application/json" \ -d '{ "userInput": "<your deck-shaped prompt β€” see Step 4>", "responseLanguage": "en", "aspectRatio": "9:16", "resolution": "2K", "page": 30, "contentDetail": "concise", "mode": "async" }'

Respons berisi

jobId
(UUID). Poll untuk penyelesaian:

curl -X GET "https://2slides.com/api/v1/jobs/{jobId}" \ -H "Authorization: Bearer sk-2slides-..."

Cadence polling: setiap 20–30 detik. Jangan polling lebih cepat β€” dokumentasi API secara eksplisit menyebutkan ini, dan polling agresif adalah penyebab paling umum 429. Sebagian besar deck selesai dalam 1–3 menit.

Saat

status: "success"
, job memiliki gambar slide tersimpan di R2 dan
downloadUrl
untuk kompilasi PDF. Gambar slide itu sendiri yang nanti akan Anda gabungkan dengan audio.

Langkah 4 β€” Bangun template prompt yang bertahan di skala

Perbedaan terbesar antara pabrik yang labil dan yang dapat diandalkan adalah template prompt. Jangan tulis prompt saat runtime per deck. Definisikan template per tipe deck dan substitusi nilai.

Template deck kosakata (

userInput
):

Generate a {{cefr_level}}-level vocabulary deck for {{source_l1}}-speaking learners of {{target_l2}}. Theme: {{theme}}. Number of cards: {{word_count}}. For each card, output exactly: - Target word (in {{target_l2}}) - Part of speech - IPA transcription - Translation in {{source_l1}} - Two example sentences in natural {{theme}} context, B1 syntax, 8–14 words each Words to include: {{word_list_yaml}} End with a 3-card recap of the most useful 3 words from the deck.

Gaya visual dikontrol oleh parameter

designStyle
(custom prompt) atau dibiarkan default ("clean infographic, no photographs, balanced typography"). Jaga prompt versioning di git. Saat prompt berubah, log versi dengan setiap deck yang dihasilkan agar Anda bisa mengkorelasikan regresi kualitas dengan perubahan prompt.

Langkah 5 β€” Tambahkan narasi

Setelah job generasi

status: "success"
, mulai narasi. Narasi hanya async dan beroperasi pada
jobId
yang sama:

curl -X POST "https://2slides.com/api/v1/slides/generate-narration" \ -H "Authorization: Bearer sk-2slides-..." \ -H "Content-Type: application/json" \ -d '{ "jobId": "550e8400-e29b-41d4-a716-446655440000", "mode": "single", "voice": "Puck", "speakerName": "Vocabulary Coach", "contentMode": "concise", "includeIntro": true }'

Lalu poll

/api/v1/jobs/{jobId}
yang sama hingga pesan beralih dari "Voice narration generation in progress" ke status sukses.

Dua pola suara bekerja baik untuk kartu kosakata:

  • mode: "single"
    dengan satu suara β€” pembacaan kata + IPA + kalimat yang lugas
  • mode: "multi"
    dengan dua suara β€” contoh kalimat dibagi antara pembicara, ideal untuk verba dan idiom

Katalog suara dipublikasikan di

/tts_sample_voices/
. Pilihan umum termasuk
Puck
,
Aoede
,
Charon
,
Kore
. Konfirmasi dukungan dengan dokumentasi API terbaru sebelum mengunci suara spesifik di produksi.

Penting: endpoint tunggal ini menghasilkan teks suara dan audio suara. Jangan panggil endpoint terpisah "voice text" dan "voice audio" β€” tidak ada API publik untuk langkah-langkah itu secara independen. Konfigurasikan request narasi sekali dan API melakukan keduanya.

Langkah 6 β€” Ekspor pages dan voices (gratis)

Setelah narasi selesai, ambil semua aset dalam satu ZIP:

curl -X POST "https://2slides.com/api/v1/slides/download-slides-pages-voices" \ -H "Authorization: Bearer sk-2slides-..." \ -H "Content-Type: application/json" \ -d '{ "jobId": "550e8400-e29b-41d4-a716-446655440000" }'

Respons menyertakan

downloadUrl
(valid selama 1 jam) untuk ZIP yang berisi:

pages/ page_01.png page_02.png ... voices/ page_01.wav page_02.wav ... transcript.txt

Ekspor ini gratis β€” tidak ada kredit yang dikonsumsi. Unduh ZIP dan simpan aset di object store Anda sendiri. URL presigned kedaluwarsa setelah 1 jam.

Langkah 7 β€” (Opsional) Komposisikan MP4 server-side

2Slides API saat ini tidak mengekspos endpoint komposisi MP4 β€” generasi MP4 hidup di UI Workspace via FFmpeg.wasm di browser. Untuk pabrik konten, komposisikan MP4 server-side dengan

ffmpeg
:

# For each page, build a clip of (image still) + (voice audio). ffmpeg -loop 1 -i pages/page_01.png -i voices/page_01.wav \ -c:v libx264 -tune stillimage -c:a aac -b:a 192k \ -pix_fmt yuv420p -shortest clips/page_01.mp4 # Concatenate all per-page clips into the final MP4. ffmpeg -f concat -safe 0 -i clip_list.txt -c copy final.mp4

Cadence audio per halaman adalah apa pun yang dihasilkan generator narasi β€” biasanya 5–12 detik per slide untuk kartu kosakata. Hasilnya adalah MP4 yang sama dengan yang akan diunduh pengguna dari UI Workspace, tapi diproduksi tanpa head di pipeline pabrik Anda.

Jika Anda menginginkan varian vertikal (9:16) dan horizontal (16:9) dari deck yang sama, jalur terbersih adalah menghasilkan deck dua kali pada rasio aspek berbeda di tahap generasi slide (

aspectRatio: "9:16"
vs
"16:9"
). Pemotongan FFmpeg setelah fakta sering menghasilkan hasil yang jelek karena slide dilayout untuk aspek tertentu.

Langkah 8 β€” Bangun orchestrator

Orchestrator minimal menangani lima loop:

# Pseudocode while there_is_work(): deck = pull_one_pending_deck_from_source() if not deck: sleep(60); continue # 1. Generate slides via Nano Banana endpoint job = post("/api/v1/slides/create-pdf-slides", body=build_payload(deck)) deck_artifact = poll_until_complete(job.data.jobId) # 2. Narrate (async only) if deck.narration.enabled: post("/api/v1/slides/generate-narration", body={ "jobId": deck_artifact.id, "voice": deck.narration.voice, "mode": deck.narration.mode, }) poll_until_narration_complete(deck_artifact.id) # 3. Export pages + voices ZIP (free) zip_url = post("/api/v1/slides/download-slides-pages-voices", body={"jobId": deck_artifact.id}) # 4. Download and store assets in your object store download_to_s3(zip_url, deck.id) # 5. (Optional) compose MP4 with ffmpeg, then distribute if deck.distribution.social: compose_mp4(deck.id) distribute(deck)

Jalankan ini di worker box dengan antrean. Untuk 100 deck per hari, satu worker cukup. Untuk 1.000+, fan out ke pool worker kecil β€” tapi pastikan pool menghormati rate limit setiap endpoint API, bukan hanya jumlah worker.

Langkah 9 β€” Pola distribusi

Lapisan distribusi mengubah artefak menjadi nilai bisnis:

  • LMS: upload MP4 yang dikomposisi ke Canvas / Moodle / Blackboard / Google Classroom via API masing-masing
  • TikTok / Reels / Shorts: antrekan MP4 9:16 ke alat posting (Buffer, Later, scheduler native), satu per hari
  • Newsletter: sematkan kompilasi PDF (dari
    downloadUrl
    job generasi asli) sebagai link unduh di edisi mingguan
  • Sales / lead magnet: upload PDF ke halaman Stan Store / Gumroad; teaser carousel mendorong lalu lintas

Jangan coba menemukan distribusi. Gunakan API native platform dan biarkan orchestrator Anda menjatuhkan baris di scheduler.

Matematika biaya (bagian yang harus direncanakan dulu)

Untuk deck Nano Banana dengan narasi, kredit terakumulasi lebih cepat daripada penetapan harga Fast PPT yang mungkin pernah dilihat beberapa pembaca. Matematika per deck 30 kartu (resolusi 1K/2K, dengan narasi):

  • Planning: 10 kredit
  • Generasi slide: 30 Γ— 100 = 3,000 kredit
  • Narasi (teks + audio): 30 Γ— 210 = 6,300 kredit
  • Ekspor pages + voices: 0 kredit (gratis)
  • Total: ~9,310 kredit per deck 30 kartu bernarasi

Tanpa narasi, deck yang sama ~3.010 kredit. Pada resolusi 4K, gandakan porsi generasi slide: 30 Γ— 200 = 6,000 β†’ ~12,310 kredit dengan narasi.

Untuk pabrik 100 deck/bulan: 100 Γ— 9,310 = ~931,000 kredit/bulan. Bandingkan dengan halaman pricing untuk memilih tier β€” dan anggarkan untuk 4K hanya saat output akan ke konteks yang manfaat darinya (layar besar, video premium). Untuk video review TikTok / Reels, 1K atau 2K cukup.

Pola operasional yang mencegah kebakaran

Idempotensi

Setiap submisi deck harus idempoten pada

deck_id
. Jika worker Anda crash di tengah batch, memulai ulang antrean tidak boleh menghasilkan deck duplikat. Pola terbersih: simpan
(deck_id, status)
di baris database; transisikan status (
pending β†’ generating β†’ narrating β†’ exporting β†’ composed β†’ distributed
).

Gerbang kualitas

Jangan auto-distribusi. Sebelum mendorong ke TikTok atau Canvas, jalankan pemeriksaan kualitas yang dapat dibaca mesin pada artefak:

  • Jumlah halaman cocok dengan jumlah yang diminta
  • ZIP berisi jumlah file
    pages/page_NN.png
    dan
    voices/page_NN.wav
    yang diharapkan
  • Durasi audio per halaman antara 3 dan 15 detik (kartu 30 detik hampir selalu berarti skrip panjang yang dihalusinasikan)
  • transcript.txt
    tidak kosong dan berisi kata target

Untuk 50 batch pertama, lakukan juga spot check manual 1 dari 10 deck. 50 batch pertama adalah tempat masalah prompt sistemik muncul.

Versioning

Setiap artefak menyimpan: versi template prompt, versi model gambar (

gemini-3-pro-image-preview
vs
gemini-3.1-flash-image-preview
), suara narasi, timestamp generasi. Saat model meningkat atau prompt berubah, Anda dapat menjalankan ulang hanya deck yang terdampak.

Telemetri biaya

Setiap deck memiliki biaya kredit yang diketahui (lihat matematika di atas). Lacak kredit yang dikonsumsi per deck. Saat penggunaan kredit per deck berlipat ganda secara tak terduga, sesuatu berubah (drift jumlah halaman, retry, beralih ke 4K). Temukan sebelum tagihan kredit menangkap Anda lengah.

Penanganan kegagalan

Job yang gagal adalah normal β€” hiccup jaringan, beban model, 5xx langka. Coba lagi sekali setelah backoff. Setelah dua kegagalan, dorong deck ke antrean

needs_human
. Jangan loop tanpa henti.

Build vs buy: kapan menggunakan API sama sekali

API adalah jawaban yang tepat saat:

  • Anda memproduksi >10 deck/minggu
  • Anda memiliki data sumber terstruktur
  • Anda butuh MP4 bernarasi yang akan Anda komposisikan server-side dan distribusikan
  • Anda berintegrasi dengan LMS, scheduler, atau CMS
  • Anda menginginkan reproduksibilitas di bawah versioning prompt

API berlebihan saat:

  • Anda memproduksi 1 deck per minggu dan menyetel secara visual setiap kali
  • Anda adalah pelajar yang membangun deck untuk studi pribadi (UI lebih cepat β€” dan UI Workspace juga melakukan komposisi MP4 untuk Anda)
  • Anda adalah guru yang membangun satu deck per pelajaran (gunakan Create Slides from File atau Create Slides Like This dan lewati orkestrasi)

Pertanyaan yang Sering Diajukan

Di mana saya mendapatkan API key?

2slides.com/api. Key tinggal di tab manajemen API.

Mengapa saya tidak bisa menambahkan narasi ke job
/api/v1/slides/generate
?

Endpoint

generate
adalah Fast PPT β€” PPTX berbasis template. Outputnya adalah file .pptx yang sudah selesai, bukan job slide-image-plus-text yang bisa dibaca generator narasi. Generator narasi secara eksplisit hanya menerima job dari
create-pdf-slides
atau
create-like-this
, yang menghasilkan job slide nano banana dengan konten per halaman yang terstruktur.

Bisakah saya mengekspor MP4 langsung dari API?

Tidak, tidak per 2026. Ekspor MP4 adalah fitur UI Workspace yang diimplementasikan client-side dengan FFmpeg.wasm. Padanan API adalah

download-slides-pages-voices
yang mengembalikan ZIP berisi gambar slide, file audio, dan transkrip β€” Anda komposisikan MP4 sendiri dengan
ffmpeg
jika butuhnya di pipeline pabrik konten. Lihat Langkah 7.

Bahasa apa yang didukung API untuk generasi?

22+ bahasa termasuk Spanyol, Prancis, Jerman, Arab, Jepang, Korea, Hindi, Vietnam, Rusia, Polandia, Italia, Portugis, Indonesia, Thailand, Turki, dan China (Sederhana/Tradisional). Kirim via

responseLanguage
.

Berapa biaya kreditnya?

Untuk deck Nano Banana: 10 (planning) + 100/slide pada 1K/2K (atau 200/slide pada 4K) untuk generasi slide, plus 210/halaman (10 teks + 200 audio) untuk narasi. Ekspor pages + voices gratis. Deck 30 kartu bernarasi pada 2K adalah ~9,310 kredit. Lihat halaman pricing dan bagian matematika biaya di atas.

Bagaimana saya menangani rate limit 429?

Exponential backoff. Mulai pada 1s, gandakan hingga 60s. Setelah tiga 429 berturut-turut, perlambat jumlah worker konkuren Anda hingga setengahnya. Jangan polling

/api/v1/jobs/{id}
lebih cepat dari setiap 20 detik β€” itu penyebab paling umum 429.

Bisakah saya berintegrasi dengan Zapier / Make / n8n?

Ya β€” alat apa pun yang dapat membuat request HTTP terotentikasi dapat menggerakkan 2Slides API. n8n khususnya populer untuk pabrik konten karena menangani pola polling dan antrean secara native.

Bagaimana saya mencegah deck yang dihasilkan diindeks secara publik?

Deck yang dihasilkan via API privat untuk akun Anda secara default. Berbagi publik adalah aksi terpisah yang eksplisit.

Bagaimana saya menghasilkan versi vertikal (9:16) dan horizontal (16:9) dari deck yang sama?

Hasilkan deck dua kali β€” sekali dengan

aspectRatio: "9:16"
dan sekali dengan
aspectRatio: "16:9"
. Slide dilayout per rasio aspek pada waktu generasi, jadi pemotongan post-hoc jarang terlihat bagus. Ya, ini berarti menggandakan biaya kredit; itu tradeoff yang disengaja untuk visual yang bersih.

Kesimpulan

Pabrik konten adalah data sumber terstruktur + orchestrator stabil + endpoint API yang tepat. 2Slides API adalah bagian ketiga; Anda bertanggung jawab untuk dua bagian pertama. Kegagalan pabrik paling umum adalah menggunakan

/api/v1/slides/generate
(Fast PPT) lalu mencoba menarasikannya β€” jalur itu tertutup. Gunakan
create-pdf-slides
atau
create-like-this
sebagai gantinya, narasikan dengan
generate-narration
, ekspor dengan
download-slides-pages-voices
, dan komposisikan MP4 server-side dengan
ffmpeg
.

Untuk sisi manual dari alur kerja yang sama, lihat panduan kartu kosakata dan panduan alur kerja kreator. Pola UI di sana adalah pola yang sama yang Anda otomatisasi dengan API; memahami alur manual dulu membuat integrasi API jauh lebih cepat.

About 2Slides

Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.

Try For Free