

Cách tạo hàng loạt 100 bộ slide từ vựng với API 2Slides (Playbook nhà máy nội dung 2026)
Khi đã xác thực quy trình thủ công — tạo một bộ slide từ vựng, thuyết minh, xuất tài sản — nút thắt tiếp theo là khối lượng. Một trường ngôn ngữ với 12 cấp độ và 30 chủ đề hàng tuần cần 360 bộ slide một năm. Một kênh TikTok faceless đăng hàng ngày cần 365 bộ slide cộng các biến thể tỷ lệ khung hình. Một đội ngũ nội dung tại công ty EdTech cần hàng trăm bộ slide phân đoạn theo cặp L1/L2.
Bạn không xây 360 bộ slide bằng tay. Bạn xây nhà máy nội dung.
Hướng dẫn này là playbook thực tế 2026 để tạo hàng loạt bộ slide từ vựng (và bất kỳ nội dung slide nào khác) với API 2Slides. Quyết định kiến trúc quan trọng nhất — và cái thường bị làm sai — là chọn endpoint tạo phù hợp.
Chọn endpoint phù hợp trước (đây là nơi hầu hết nhà máy đổ vỡ)
2Slides phơi bày hai luồng tạo riêng biệt qua API. Chỉ một trong số chúng tạo bộ slide có thể được thuyết minh sau đó.
| Endpoint | Sản phẩm tạo ra | Có thể thuyết minh? | Credit |
|---|---|---|---|
POST /api/v1/slides/generate | Fast PPT — PPTX dựa trên template. Yêu cầu themeId | ❌ Không. Endpoint thuyết minh từ chối rõ ràng các job tạo ở đây. | 10 / trang |
POST /api/v1/slides/create-pdf-slides | Nano Banana — slide tạo bằng hình ảnh từ prompt văn bản. Cùng engine với Workspace. | ✅ Có | 10 (lập kế hoạch) + 100 / slide (1K/2K) hoặc 200 / slide (4K) |
POST /api/v1/slides/create-like-this | Nano Banana — slide tạo bằng hình ảnh khớp với hình ảnh tham chiếu. | ✅ Có | Cùng như trên |
Cho nhà máy nội dung thẻ từ vựng có thuyết minh và âm thanh xuất được, hãy dùng create-pdf-slidescreate-like-this
/api/v1/slides/generateNếu nhà máy của bạn chỉ cần PPTX im lặng (không âm thanh, không video), Fast PPT qua
/api/v1/slides/generateKiến trúc trong một sơ đồ
[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]
Dữ liệu nguồn → orchestrator → API → ZIP của pages + voices → phân phối. Tổng hợp MP4 là tùy chọn và không phải endpoint API công khai từ 2026 — đó là tính năng UI Workspace dùng FFmpeg.wasm trong trình duyệt. Tương đương API là ZIP pages-and-voices, mà bạn có thể tổng hợp với
ffmpegBước 1 — Thiết kế schema nguồn trước
Động thái có đòn bẩy cao nhất là xác định schema dữ liệu nguồn trước bất kỳ lệnh gọi API nào. Bộ slide xây từ schema sạch là tái lập được; bộ slide xây từ prompt tùy biến thì không.
Một hàng nguồn bộ slide từ vựng mở rộng được:
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
Đối tượng đó là đơn vị công việc. Mọi thứ phía sau tiêu thụ nó.
Xây schema nguồn trong bất cứ thứ gì bạn đã có: Google Sheet cho nhóm phi kỹ thuật, bảng Postgres cho nhóm kỹ thuật, CMS với trường có cấu trúc cho nhóm nội dung. Tránh xây trong tệp Markdown thuần — Markdown ổn cho viết người nhưng tệ cho tự động hóa hàng loạt.
Bước 2 — Xác thực
Lấy API key từ trang quản lý API. Định dạng là:
sk-2slides-{64-character-hex-string}
Tất cả request dùng bearer auth:
Authorization: Bearer sk-2slides-...
Giới hạn tỷ lệ theo endpoint được tài liệu hóa tại 2slides.com/api.md. Cho sản xuất hàng loạt:
- và
create-pdf-slides: thiết kế hàng đợi quanh giới hạn đồng thời với exponential backoff trên 429create-like-this - (poll): tôn trọng nhịp poll bên dưới — 20–30s, không hung hăng
jobs/{id} - : miễn phí và nhanh hơn, nhưng vẫn có giới hạn tỷ lệ
download-slides-pages-voices
Bước 3 — Gửi job tạo Nano Banana
Thẻ từ vựng hoạt động tốt nhất ở chế độ async (tạo hình ảnh từng slide mất 1–3 phút cho bộ 30 thẻ).
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" }'
Phản hồi chứa
jobIdcurl -X GET "https://2slides.com/api/v1/jobs/{jobId}" \ -H "Authorization: Bearer sk-2slides-..."
Nhịp poll: mỗi 20–30 giây. Đừng poll nhanh hơn — tài liệu API nêu rõ điều này, và poll hung hăng là nguyên nhân phổ biến nhất của 429. Hầu hết bộ slide hoàn thành trong 1–3 phút.
Khi
status: "success"downloadUrlBước 4 — Xây template prompt giữ vững ở quy mô
Khác biệt lớn nhất giữa nhà máy không ổn định và đáng tin cậy là template prompt. Đừng viết prompt khi runtime mỗi bộ slide. Định nghĩa template cho mỗi loại bộ slide và thay thế giá trị.
Template bộ slide từ vựng (
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.
Phong cách trực quan được điều khiển bởi tham số
designStyleBước 5 — Thêm thuyết minh
Khi job tạo là
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 }'
Sau đó poll cùng
/api/v1/jobs/{jobId}Hai mẫu giọng hoạt động tốt cho thẻ từ vựng:
- với một giọng — đọc thẳng từ + IPA + câu
mode: "single" - với hai giọng — câu ví dụ chia giữa người nói, lý tưởng cho động từ và thành ngữ
mode: "multi"
Danh mục giọng được công bố tại
/tts_sample_voices/PuckAoedeCharonKoreQuan trọng: endpoint duy nhất này tạo cả văn bản giọng và âm thanh giọng. Đừng gọi các endpoint "voice text" và "voice audio" riêng — không có API công khai cho các bước đó độc lập. Cấu hình request thuyết minh một lần và API làm cả hai.
Bước 6 — Xuất pages và voices (miễn phí)
Khi thuyết minh hoàn thành, lấy tất cả tài sản trong một ZIP duy nhất:
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" }'
Phản hồi bao gồm
downloadUrlpages/ page_01.png page_02.png ... voices/ page_01.wav page_02.wav ... transcript.txt
Xuất này miễn phí — không tiêu thụ credit. Tải ZIP và lưu tài sản vào kho đối tượng của bạn. URL ký trước hết hạn sau 1 giờ.
Bước 7 — (Tùy chọn) Tổng hợp MP4 phía server
API 2Slides hiện không phơi bày endpoint tổng hợp MP4 — tạo MP4 sống trong UI Workspace qua FFmpeg.wasm trong trình duyệt. Cho nhà máy nội dung, tổng hợp MP4 phía server với
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
Nhịp âm thanh mỗi trang là bất kỳ điều gì trình tạo thuyết minh sản xuất — thường 5–12 giây mỗi slide cho thẻ từ vựng. Kết quả là cùng MP4 người dùng tải xuống từ UI Workspace, nhưng được sản xuất không đầu trong pipeline nhà máy của bạn.
Nếu bạn muốn biến thể dọc (9:16) và ngang (16:9) của cùng bộ slide, con đường sạch nhất là tạo bộ slide hai lần ở các tỷ lệ khung hình khác nhau ở giai đoạn tạo slide (
aspectRatio: "9:16""16:9"Bước 8 — Xây orchestrator
Một orchestrator tối thiểu xử lý năm vòng:
# 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)
Chạy điều này trên một worker box với hàng đợi. Cho 100 bộ slide mỗi ngày, một worker là đủ. Cho 1,000+, fan out đến pool worker nhỏ — nhưng đảm bảo pool tôn trọng giới hạn tỷ lệ của mỗi endpoint API, không chỉ số worker.
Bước 9 — Mẫu phân phối
Lớp phân phối biến tài sản thành giá trị kinh doanh:
- LMS: tải MP4 đã tổng hợp lên Canvas / Moodle / Blackboard / Google Classroom qua các API của họ
- TikTok / Reels / Shorts: xếp hàng MP4 9:16 vào công cụ đăng (Buffer, Later, scheduler native), một mỗi ngày
- Newsletter: nhúng bản tổng hợp PDF (từ của job tạo gốc) dưới dạng liên kết tải xuống trong số hàng tuần
downloadUrl - Bán / lead magnet: tải PDF lên trang Stan Store / Gumroad; teaser carousel dẫn lưu lượng
Đừng cố phát minh phân phối. Dùng API native của nền tảng và để orchestrator của bạn thả một hàng vào scheduler.
Toán chi phí (phần lập kế hoạch trước)
Cho bộ slide Nano Banana có thuyết minh, credit cộng nhanh hơn giá Fast PPT mà một số người đọc có thể đã thấy trước đây. Toán mỗi bộ 30 thẻ (độ phân giải 1K/2K, có thuyết minh):
- Lập kế hoạch: 10 credit
- Tạo slide: 30 × 100 = 3,000 credit
- Thuyết minh (văn bản + âm thanh): 30 × 210 = 6,300 credit
- Xuất pages + voices: 0 credit (miễn phí)
- Tổng: ~9,310 credit mỗi bộ 30 thẻ có thuyết minh
Không có thuyết minh, cùng bộ slide là ~3,010 credit. Ở 4K, gấp đôi phần tạo slide: 30 × 200 = 6,000 → ~12,310 credit với thuyết minh.
Cho nhà máy 100 bộ/tháng: 100 × 9,310 = ~931,000 credit/tháng. So với trang giá để chọn bậc — và lập ngân sách cho 4K chỉ khi đầu ra đi đến ngữ cảnh có lợi từ nó (màn hình lớn, video cao cấp). Cho video ôn TikTok / Reels, 1K hoặc 2K là đủ.
Mẫu vận hành ngăn cháy
Idempotency
Mỗi lần gửi bộ slide nên idempotent trên
deck_id(deck_id, status)pending → generating → narrating → exporting → composed → distributedCổng chất lượng
Đừng tự động phân phối. Trước khi đẩy lên TikTok hoặc Canvas, chạy kiểm tra chất lượng máy đọc được trên tài sản:
- Số trang khớp số yêu cầu
- ZIP chứa số tệp và
pages/page_NN.pngmong đợivoices/page_NN.wav - Thời lượng âm thanh mỗi trang nằm giữa 3 và 15 giây (thẻ 30 giây hầu như luôn nghĩa là kịch bản dài bị ảo giác)
- không trống và chứa từ mục tiêu
transcript.txt
Cho 50 lô đầu tiên, cũng làm kiểm tra điểm thủ công 1 trong 10 bộ slide. 50 lô đầu là nơi vấn đề prompt hệ thống xuất hiện.
Phiên bản hóa
Mỗi tài sản lưu: phiên bản template prompt, phiên bản model hình ảnh (
gemini-3-pro-image-previewgemini-3.1-flash-image-previewĐo lường chi phí
Mỗi bộ slide có chi phí credit đã biết (xem toán trên). Theo dõi credit tiêu thụ mỗi bộ slide. Khi sử dụng credit mỗi bộ slide tăng gấp đôi bất ngờ, có gì đó đã thay đổi (trôi số trang, retry, chuyển sang 4K). Tìm trước khi hóa đơn credit bất ngờ.
Xử lý lỗi
Job thất bại là bình thường — trục trặc mạng, tải model, 5xx hiếm. Retry một lần sau backoff. Sau hai thất bại, đẩy bộ slide vào hàng đợi
needs_humanBuild vs buy: khi nào dùng API
API là câu trả lời đúng khi:
- Bạn sản xuất >10 bộ slide/tuần
- Bạn có dữ liệu nguồn có cấu trúc
- Bạn cần MP4 có thuyết minh sẽ tổng hợp phía server và phân phối
- Bạn tích hợp với LMS, scheduler hoặc CMS
- Bạn muốn tái lập dưới phiên bản hóa prompt
API là quá mức khi:
- Bạn sản xuất 1 bộ slide một tuần và điều chỉnh trực quan mỗi lần
- Bạn là người học xây bộ slide cho học cá nhân (UI nhanh hơn — và UI Workspace cũng làm tổng hợp MP4 cho bạn)
- Bạn là giáo viên xây một bộ slide mỗi bài học (dùng Create Slides from File hoặc Create Slides Like This và bỏ qua orchestration)
Câu hỏi thường gặp
Tôi lấy API key ở đâu?
2slides.com/api. Key sống trong tab quản lý API.
Vì sao tôi không thể thêm thuyết minh vào job /api/v1/slides/generate?
/api/v1/slides/generateEndpoint
generatecreate-pdf-slidescreate-like-thisTôi có thể xuất MP4 trực tiếp từ API không?
Không, không phải từ năm 2026. Xuất MP4 là tính năng UI Workspace triển khai phía client với FFmpeg.wasm. Tương đương API là
download-slides-pages-voicesffmpegAPI hỗ trợ ngôn ngữ nào để tạo?
22+ ngôn ngữ bao gồm tiếng Tây Ban Nha, Pháp, Đức, Ả Rập, Nhật, Hàn, Hindi, Việt, Nga, Ba Lan, Ý, Bồ Đào Nha, Indonesia, Thái, Thổ Nhĩ Kỳ, và tiếng Trung (Giản thể/Phồn thể). Truyền qua
responseLanguageChi phí credit là bao nhiêu?
Cho bộ slide Nano Banana: 10 (lập kế hoạch) + 100/slide ở 1K/2K (hoặc 200/slide ở 4K) cho tạo slide, cộng 210/trang (10 văn bản + 200 âm thanh) cho thuyết minh. Xuất pages + voices miễn phí. Bộ 30 thẻ có thuyết minh ở 2K là ~9,310 credit. Xem trang giá và phần toán chi phí trên.
Tôi xử lý giới hạn tỷ lệ 429 như thế nào?
Exponential backoff. Bắt đầu ở 1s, gấp đôi đến 60s. Sau ba 429 liên tiếp, giảm số worker đồng thời một nửa. Đừng poll
/api/v1/jobs/{id}Tôi có thể tích hợp với Zapier / Make / n8n không?
Có — bất kỳ công cụ nào có thể gửi request HTTP đã xác thực có thể điều khiển API 2Slides. n8n đặc biệt phổ biến cho nhà máy nội dung vì nó xử lý mẫu poll và hàng đợi native.
Tôi ngăn bộ slide tạo ra khỏi bị đánh chỉ mục công khai như thế nào?
Bộ slide tạo qua API mặc định riêng tư với tài khoản của bạn. Chia sẻ công khai là hành động riêng biệt rõ ràng.
Tôi tạo phiên bản dọc (9:16) và ngang (16:9) của cùng bộ slide như thế nào?
Tạo bộ slide hai lần — một lần với
aspectRatio: "9:16"aspectRatio: "16:9"Kết luận
Một nhà máy nội dung là dữ liệu nguồn có cấu trúc + orchestrator ổn định + endpoint API đúng. API 2Slides là phần thứ ba; bạn chịu trách nhiệm cho hai phần đầu. Thất bại nhà máy phổ biến nhất là dùng
/api/v1/slides/generatecreate-pdf-slidescreate-like-thisgenerate-narrationdownload-slides-pages-voicesffmpegCho phía thủ công của cùng quy trình, xem hướng dẫn thẻ từ vựng và hướng dẫn quy trình creator. Mẫu UI ở đó là cùng mẫu bạn đang tự động hóa với API; hiểu luồng thủ công trước làm tích hợp API nhanh hơn nhiều.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free