

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.
| Endpoint | Apa yang dihasilkan | Narasi mungkin? | Kredit |
|---|---|---|---|
POST /api/v1/slides/generate | Fast PPT β PPTX berbasis template. Membutuhkan themeId | β 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. | β Ya | 10 (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. | β Ya | Sama seperti di atas |
Untuk pabrik konten kartu kosakata dengan narasi dan audio yang dapat diekspor, gunakan create-pdf-slidescreate-like-this
/api/v1/slides/generateJika pabrik Anda hanya butuh PPTX bisu (tanpa audio, tanpa video), Fast PPT via
/api/v1/slides/generateArsitektur 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
ffmpegLangkah 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:
- dan
create-pdf-slides: desain antrean Anda di sekitar batas konkurensinya dengan exponential backoff pada 429create-like-this - (poll): hormati cadence polling di bawah β 20β30s, tidak agresif
jobs/{id} - : gratis dan lebih cepat, tapi tetap ada rate limit
download-slides-pages-voices
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
jobIdcurl -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"downloadUrlLangkah 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 (
userInputGenerate 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
designStyleLangkah 5 β Tambahkan narasi
Setelah job generasi
status: "success"jobIdcurl -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}Dua pola suara bekerja baik untuk kartu kosakata:
- dengan satu suara β pembacaan kata + IPA + kalimat yang lugas
mode: "single" - dengan dua suara β contoh kalimat dibagi antara pembicara, ideal untuk verba dan idiom
mode: "multi"
Katalog suara dipublikasikan di
/tts_sample_voices/PuckAoedeCharonKorePenting: 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
downloadUrlpages/ 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""16:9"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 job generasi asli) sebagai link unduh di edisi mingguan
downloadUrl - 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(deck_id, status)pending β generating β narrating β exporting β composed β distributedGerbang 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 dan
pages/page_NN.pngyang diharapkanvoices/page_NN.wav - Durasi audio per halaman antara 3 dan 15 detik (kartu 30 detik hampir selalu berarti skrip panjang yang dihalusinasikan)
- tidak kosong dan berisi kata target
transcript.txt
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-previewgemini-3.1-flash-image-previewTelemetri 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_humanBuild 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?
/api/v1/slides/generateEndpoint
generatecreate-pdf-slidescreate-like-thisBisakah 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-voicesffmpegBahasa 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
responseLanguageBerapa 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}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"aspectRatio: "16:9"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/generatecreate-pdf-slidescreate-like-thisgenerate-narrationdownload-slides-pages-voicesffmpegUntuk 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