

วิธี Batch สร้างชุดบัตรคำศัพท์ 100 ชุดด้วย 2Slides API (Content Factory Playbook ปี 2026)
เมื่อคุณ validate เวิร์กโฟลว์มือ — สร้างชุดบัตรคำศัพท์หนึ่งชุด narrate และส่งออกชิ้นงาน — ขั้นต่อไปคือปริมาณ โรงเรียนสอนภาษาที่มี 12 ระดับและ 30 ธีมรายสัปดาห์ ต้องการ 360 ชุดต่อปี ช่อง TikTok faceless ที่โพสต์ทุกวันต้องการ 365 ชุดบวกอัตราส่วนต่าง ทีมคอนเทนต์ที่บริษัท EdTech ต้องการชุดหลายร้อยชุดแบ่งตามคู่ L1/L2
คุณไม่ได้สร้าง 360 ชุดด้วยมือ คุณสร้าง content factory
คู่มือนี้คือ playbook ปฏิบัติประจำปี 2026 สำหรับการ batch สร้างชุดบัตรคำศัพท์ (และคอนเทนต์ slide อื่น ๆ) ด้วย 2Slides API การตัดสินใจสถาปัตยกรรมที่สำคัญที่สุด — และที่ผิดบ่อยที่สุด — คือ เลือก endpoint การสร้างที่ถูกต้อง
เลือก endpoint ที่ถูกต้องก่อน (จุดที่ factory ส่วนใหญ่พังตรงนี้)
2Slides เปิด flow การสร้างที่ต่างกันสองแบบผ่าน API มีเพียงอันเดียวที่ผลิตชุดที่ narrate ภายหลังได้
| Endpoint | สิ่งที่ผลิต | เพิ่ม narration ได้ไหม? | Credits |
|---|---|---|---|
POST /api/v1/slides/generate | Fast PPT — PPTX จาก template ต้องมี themeId | ❌ ไม่ได้ endpoint narration ปฏิเสธ job ที่สร้างที่นี่อย่างชัดเจน | 10 / page |
POST /api/v1/slides/create-pdf-slides | Nano Banana — slide ที่สร้างจากภาพจาก text prompt engine เดียวกับ Workspace | ✅ ได้ | 10 (planning) + 100 / slide (1K/2K) หรือ 200 / slide (4K) |
POST /api/v1/slides/create-like-this | Nano Banana — slide ที่สร้างจากภาพให้คล้ายกับภาพอ้างอิง | ✅ ได้ | เหมือนข้างต้น |
สำหรับ content factory ของบัตรคำศัพท์ที่มี narration และเสียงส่งออกได้ ใช้ create-pdf-slidescreate-like-this
/api/v1/slides/generateถ้า factory ของคุณต้องการแค่ PPTX เงียบ (ไม่มี audio ไม่มีวิดีโอ) Fast PPT ผ่าน
/api/v1/slides/generateสถาปัตยกรรมในไดอะแกรมเดียว
[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]
ข้อมูลต้นทาง → orchestrator → API → ZIP ของ pages + voices → distribution การประกอบ MP4 เป็นทางเลือกและ ไม่ ใช่ public API endpoint ในปี 2026 — เป็นฟีเจอร์ Workspace UI ที่ใช้ FFmpeg.wasm ใน browser API equivalent คือ ZIP ของ pages และ voices ซึ่งคุณสามารถประกอบกับ
ffmpegขั้นที่ 1 — ออกแบบ source schema ก่อน
การกระทำที่ทรงพลังที่สุดคือ กำหนด schema ของข้อมูลต้นทางก่อนการเรียก API ใด ๆ ชุดที่สร้างจาก schema สะอาดทำซ้ำได้ ชุดที่สร้างจาก prompt เฉพาะกิจไม่ได้
แถวข้อมูลต้นทางสำหรับชุดบัตรคำศัพท์ที่ scale:
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
object นั้นคือหน่วยของงาน ทุกอย่างปลายน้ำใช้มัน
สร้าง source schema ในสิ่งที่คุณมีอยู่แล้ว: Google Sheet สำหรับทีมที่ไม่ใช่เทคนิค, Postgres table สำหรับทีม engineering, CMS พร้อมฟิลด์มีโครงสร้างสำหรับทีมคอนเทนต์ หลีกเลี่ยงการสร้างใน Markdown ธรรมดา — Markdown ดีสำหรับการเขียนของมนุษย์แต่ไม่ดีสำหรับ batch automation
ขั้นที่ 2 — Authenticate
ขอ API key จาก หน้าจัดการ API รูปแบบคือ:
sk-2slides-{64-character-hex-string}
คำขอทั้งหมดใช้ bearer auth:
Authorization: Bearer sk-2slides-...
Rate limit ต่อ endpoint อยู่ใน 2slides.com/api.md สำหรับการผลิต batch:
- และ
create-pdf-slides: ออกแบบคิวของคุณรอบขีดจำกัด concurrency พร้อม exponential backoff สำหรับ 429create-like-this - (poll): เคารพ cadence การ poll ด้านล่าง — 20–30 วินาที ไม่ก้าวร้าว
jobs/{id} - : ฟรีและเร็วกว่า แต่ยัง rate-limited
download-slides-pages-voices
ขั้นที่ 3 — ส่ง job การสร้าง Nano Banana
บัตรคำศัพท์ทำงานดีที่สุดในโหมด async (การสร้างภาพต่อ slide ใช้เวลา 1–3 นาทีสำหรับชุด 30 บัตร)
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" }'
response มี
jobIdcurl -X GET "https://2slides.com/api/v1/jobs/{jobId}" \ -H "Authorization: Bearer sk-2slides-..."
cadence การ poll: ทุก 20–30 วินาที อย่า poll เร็วกว่านี้ — เอกสาร API ระบุชัดและการ poll ก้าวร้าวเป็นสาเหตุพบบ่อยที่สุดของ 429 ชุดส่วนใหญ่เสร็จใน 1–3 นาที
เมื่อ
status: "success"downloadUrlขั้นที่ 4 — สร้าง prompt template ที่ยืนได้ใน scale
ความแตกต่างที่ใหญ่ที่สุดระหว่าง factory ที่ไม่เสถียรกับเสถียรคือ prompt template อย่าเขียน prompt ตอน runtime ต่อชุด กำหนด template ต่อประเภทชุดและแทนค่า
template ของชุดบัตรคำศัพท์ (
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.
สไตล์ภาพควบคุมโดยพารามิเตอร์
designStyleขั้นที่ 5 — เพิ่ม narration
เมื่อ job การสร้างมี
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 }'
จากนั้น poll
/api/v1/jobs/{jobId}มีสอง pattern เสียงที่ใช้ได้ดีสำหรับบัตรคำศัพท์:
- กับเสียงเดียว — อ่านคำ + IPA + ประโยคแบบตรงไปตรงมา
mode: "single" - กับสองเสียง — ประโยคตัวอย่างแบ่งระหว่างผู้พูด เหมาะสำหรับกริยาและสำนวน
mode: "multi"
catalog เสียงเผยแพร่ที่
/tts_sample_voices/PuckAoedeCharonKoreสำคัญ: endpoint เดียวนี้สร้างทั้ง voice text และ voice audio อย่าเรียก endpoint แยก "voice text" และ "voice audio" — ไม่มี public API สำหรับขั้นตอนเหล่านั้นแยกกัน ตั้งคำขอ narration ครั้งเดียวและ API ทำทั้งสอง
ขั้นที่ 6 — ส่งออก pages และ voices (ฟรี)
เมื่อ narration เสร็จ ดึงทรัพย์สินทั้งหมดใน 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" }'
response มี
downloadUrlpages/ page_01.png page_02.png ... voices/ page_01.wav page_02.wav ... transcript.txt
การส่งออกนี้ ฟรี — ไม่ใช้ credit ดาวน์โหลด ZIP และเก็บทรัพย์สินใน object store ของคุณเอง URL presigned หมดอายุหลัง 1 ชั่วโมง
ขั้นที่ 7 — (ทางเลือก) ประกอบ MP4 ฝั่ง server
2Slides API ปัจจุบันไม่เปิด endpoint ประกอบ MP4 — การสร้าง MP4 อยู่ใน Workspace UI ผ่าน FFmpeg.wasm ใน browser สำหรับ content factory ประกอบ MP4 ฝั่ง server ด้วย
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
จังหวะเสียงต่อหน้าคือสิ่งที่ generator narration ผลิต — โดยทั่วไป 5–12 วินาทีต่อ slide สำหรับบัตรคำศัพท์ ผลลัพธ์คือ MP4 เดียวกับที่ผู้ใช้จะดาวน์โหลดจาก Workspace UI แต่ผลิตแบบ headless ใน factory ของคุณ
ถ้าคุณต้องการเวอร์ชันแนวตั้ง (9:16) และแนวนอน (16:9) ของชุดเดียวกัน ทางที่สะอาดที่สุดคือ สร้างชุดสองครั้ง ที่อัตราส่วนต่างกันในขั้นการสร้าง slide (
aspectRatio: "9:16""16:9"ขั้นที่ 8 — สร้าง orchestrator
orchestrator ขั้นต่ำจัดการห้าลูป:
# 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)
รันสิ่งนี้บน worker box พร้อมคิว สำหรับ 100 ชุดต่อวัน worker หนึ่งก็เพียงพอ สำหรับ 1,000+ ขยายไปยัง worker pool เล็ก ๆ — แต่ตรวจให้แน่ใจว่า pool เคารพ rate limit ของแต่ละ API endpoint ไม่ใช่แค่จำนวน worker
ขั้นที่ 9 — รูปแบบการกระจาย
distribution layer เปลี่ยน artifact เป็นมูลค่าทางธุรกิจ:
- LMS: อัปโหลด MP4 ที่ประกอบแล้วไป Canvas / Moodle / Blackboard / Google Classroom ผ่าน API ของแต่ละแห่ง
- TikTok / Reels / Shorts: คิว MP4 9:16 ไปยังเครื่องมือโพสต์ (Buffer, Later, scheduler ของแพลตฟอร์ม) วันละหนึ่ง
- Newsletter: ฝัง PDF compilation (จาก ของ job การสร้างต้นทาง) เป็นลิงก์ดาวน์โหลดในฉบับรายสัปดาห์
downloadUrl - Sales / lead magnet: อัปโหลด PDF ไปยังหน้า Stan Store / Gumroad; carousel teaser ดูดทราฟฟิก
อย่าพยายามคิดค้น distribution ใช้ API พื้นเมืองของแพลตฟอร์มและให้ orchestrator วางแถวใน scheduler ของคุณ
คณิตศาสตร์ต้นทุน (ส่วนที่ต้องวางแผนก่อน)
สำหรับชุด Nano Banana พร้อม narration credit สะสมเร็วกว่าราคา Fast PPT ที่ผู้อ่านบางคนอาจเคยเห็น คณิตศาสตร์ต่อชุด 30 บัตร (ความละเอียด 1K/2K พร้อม narration):
- การวางแผน: 10 credits
- การสร้าง slide: 30 × 100 = 3,000 credits
- Narration (text + audio): 30 × 210 = 6,300 credits
- ส่งออก pages + voices: 0 credits (ฟรี)
- รวม: ~9,310 credits ต่อชุด 30 บัตร narrated
ไม่มี narration ชุดเดียวกันใช้ ~3,010 credits ที่ความละเอียด 4K เพิ่มส่วน slide-generation เป็นสองเท่า: 30 × 200 = 6,000 → ~12,310 credits พร้อม narration
สำหรับ factory 100 ชุด/เดือน: 100 × 9,310 = ~931,000 credits/เดือน เปรียบเทียบกับ หน้าราคา เพื่อเลือก tier — และตั้งงบประมาณ 4K เฉพาะเมื่อ output จะไปยังบริบทที่ได้ประโยชน์ (จอใหญ่ วิดีโอพรีเมียม) สำหรับคลิปทบทวน TikTok / Reels 1K หรือ 2K เพียงพอ
รูปแบบการดำเนินงานที่ป้องกันไฟไหม้
Idempotency
การส่งชุดทุกครั้งควร idempotent บน
deck_id(deck_id, status)pending → generating → narrating → exporting → composed → distributedQuality gates
อย่าแจกจ่ายอัตโนมัติ ก่อนผลักไป TikTok หรือ Canvas ทำ machine-readable quality check บน artifact:
- จำนวน page ตรงกับที่ขอ
- ZIP มีจำนวนไฟล์ และ
pages/page_NN.pngตามที่คาดvoices/page_NN.wav - ระยะเวลาเสียงต่อหน้าระหว่าง 3 ถึง 15 วินาที (บัตร 30 วินาทีเกือบเสมอหมายถึงสคริปต์ที่หลอนยาว)
- ไม่ว่างและบรรจุคำเป้าหมาย
transcript.txt
สำหรับ 50 batch แรก ทำ manual spot check ของ 1 ใน 10 ชุดด้วย 50 batch แรกคือที่ที่ปัญหา prompt เชิงระบบโผล่มา
Versioning
ทุก artifact เก็บ: prompt template version, image model version (
gemini-3-pro-image-previewgemini-3.1-flash-image-previewCost telemetry
แต่ละชุดมี credit cost ที่ทราบ (ดูคณิตศาสตร์ข้างบน) ติดตาม credit ที่ใช้ต่อชุด เมื่อการใช้ credit ต่อชุดเพิ่มขึ้นสองเท่าโดยไม่คาดคิด มีอะไรเปลี่ยน (page count drift, retries, สลับเป็น 4K) หาก่อนค่า credit จะมาช็อกคุณ
การจัดการความล้มเหลว
job ล้มเหลวเป็นเรื่องปกติ — network blip, model load, 5xx ที่หายาก retry หนึ่งครั้งหลัง backoff หลังสองความล้มเหลว ดันชุดไปยังคิว
needs_humanBuild vs buy: เมื่อใดที่ควรใช้ API เลย
API คือคำตอบที่ถูกต้องเมื่อ:
- คุณผลิต >10 ชุด/สัปดาห์
- คุณมีข้อมูลต้นทางมีโครงสร้าง
- คุณต้องการ MP4 narrated ที่จะประกอบฝั่ง server และแจกจ่าย
- คุณ integrate กับ LMS, scheduler, หรือ CMS
- คุณต้องการความสามารถทำซ้ำภายใต้ prompt versioning
API เกินจำเป็นเมื่อ:
- คุณผลิต 1 ชุดต่อสัปดาห์และปรับด้วยภาพทุกครั้ง
- คุณเป็นผู้เรียนสร้างชุดสำหรับเรียนส่วนตัว (UI เร็วกว่า — และ Workspace UI ก็ทำการประกอบ MP4 ให้คุณด้วย)
- คุณเป็นครูที่สร้างหนึ่งชุดต่อบทเรียน (ใช้ Create Slides from File หรือ Create Slides Like This และข้าม orchestration)
คำถามที่พบบ่อย
ขอ API key ได้ที่ไหน?
2slides.com/api Key อยู่ในแท็บจัดการ API
ทำไมเพิ่ม narration ใส่ job /api/v1/slides/generate ไม่ได้?
/api/v1/slides/generateendpoint
generatecreate-pdf-slidescreate-like-thisส่งออก MP4 จาก API ตรง ๆ ได้ไหม?
ไม่ได้ในปี 2026 การส่งออก MP4 เป็นฟีเจอร์ Workspace UI ที่ implement ฝั่ง client ด้วย FFmpeg.wasm API equivalent คือ
download-slides-pages-voicesffmpegAPI รองรับภาษาอะไรบ้างสำหรับการสร้าง?
22+ ภาษา รวมถึงสเปน ฝรั่งเศส เยอรมัน อาหรับ ญี่ปุ่น เกาหลี ฮินดี เวียดนาม รัสเซีย โปแลนด์ อิตาลี โปรตุเกส อินโดนีเซีย ไทย ตุรกี และจีน (ตัวย่อ/ตัวเต็ม) ส่งผ่าน
responseLanguageต้นทุน credit เป็นอย่างไร?
สำหรับชุด Nano Banana: 10 (planning) + 100/slide ที่ 1K/2K (หรือ 200/slide ที่ 4K) สำหรับการสร้าง slide บวก 210/page (10 text + 200 audio) สำหรับ narration ส่งออก pages + voices ฟรี ชุด 30 บัตร narrated ที่ 2K คือ ~9,310 credits ดู หน้าราคา และส่วนคณิตศาสตร์ต้นทุนข้างบน
จัดการ rate limit 429 อย่างไร?
Exponential backoff เริ่มที่ 1 วินาที เพิ่มเป็นสองเท่าจนถึง 60 วินาที หลัง 429 ติดต่อกันสามครั้ง ลดจำนวน worker concurrent ของคุณลงครึ่ง อย่า poll
/api/v1/jobs/{id}Integrate กับ Zapier / Make / n8n ได้ไหม?
ได้ — เครื่องมือใดที่ทำคำขอ HTTP authenticated ได้ก็สามารถขับ 2Slides API n8n ยอดนิยมเป็นพิเศษสำหรับ content factory เพราะจัดการ pattern ของ polling และคิวพื้นเมือง
ป้องกันชุดที่สร้างไม่ให้ถูก index สาธารณะอย่างไร?
ชุดที่สร้างผ่าน API เป็น private กับบัญชีของคุณโดย default การแชร์สาธารณะเป็นการกระทำชัดเจนแยกต่างหาก
สร้างชุดเดียวกันเวอร์ชันแนวตั้ง (9:16) และแนวนอน (16:9) อย่างไร?
สร้างชุดสองครั้ง — ครั้งหนึ่งด้วย
aspectRatio: "9:16"aspectRatio: "16:9"ข้อสรุป
Content factory คือ ข้อมูลต้นทางมีโครงสร้าง + orchestrator เสถียร + endpoint API ที่ถูกต้อง 2Slides API คือชิ้นที่สาม คุณรับผิดชอบสองชิ้นแรก ความล้มเหลวของ factory ที่พบบ่อยที่สุดคือใช้
/api/v1/slides/generatecreate-pdf-slidescreate-like-thisgenerate-narrationdownload-slides-pages-voicesffmpegสำหรับฝั่งมือของเวิร์กโฟลว์เดียวกัน ดู คู่มือบัตรคำศัพท์ และ คู่มือเวิร์กโฟลว์ครีเอเตอร์ Pattern UI ที่นั่นเป็น pattern เดียวกับที่คุณกำลัง automate ด้วย API; การเข้าใจ flow มือก่อนทำให้การ integrate API เร็วขึ้นมาก
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free