

2Slides API로 100개 단어 덱 일괄 생성하기 (2026 콘텐츠 팩토리 플레이북)
수동 워크플로우 — 단어 덱 하나 생성, 내레이션 추가, 자산 내보내기 — 를 검증한 후의 다음 병목은 볼륨입니다. 12개 레벨과 30개 주간 테마를 갖춘 어학원은 연 360개 덱이 필요합니다. 매일 게시하는 페이스리스 TikTok 채널은 연 365개 덱과 비율 변형이 필요합니다. EdTech 회사의 콘텐츠 팀은 L1/L2 쌍별로 분할된 수백 개 덱이 필요합니다.
360개 덱은 수작업으로 만들지 않습니다. 콘텐츠 팩토리를 만듭니다.
이 가이드는 2Slides API로 단어 덱(과 모든 슬라이드 콘텐츠)을 일괄 생성하기 위한 2026년 실전 플레이북입니다. 가장 중요한 아키텍처 결정 — 그리고 가장 자주 잘못 내려지는 결정 — 은 올바른 생성 엔드포인트를 선택하는 것입니다.
먼저 올바른 엔드포인트 선택 (대부분의 팩토리가 여기서 망가집니다)
2Slides는 API를 통해 두 가지 별개의 생성 흐름을 노출합니다. 그중 하나만 이후에 내레이션을 추가할 수 있는 덱을 생성합니다.
| 엔드포인트 | 결과물 | 내레이션 가능? | 크레딧 |
|---|---|---|---|
POST /api/v1/slides/generate | Fast PPT — 템플릿 기반 PPTX. 템플릿 라이브러리에서 themeId | ❌ 불가. 내레이션 엔드포인트가 여기서 생성된 작업을 명시적으로 거부합니다. | 10 / 페이지 |
POST /api/v1/slides/create-pdf-slides | Nano Banana — 텍스트 프롬프트에서 이미지 생성된 슬라이드. Workspace와 같은 엔진. | ✅ 가능 | 10 (기획) + 100 / 슬라이드 (1K/2K) 또는 200 / 슬라이드 (4K) |
POST /api/v1/slides/create-like-this | Nano Banana — 참조 이미지를 매칭하는 이미지 생성 슬라이드. | ✅ 가능 | 위와 동일 |
내레이션과 내보낼 수 있는 오디오가 있는 단어 카드 콘텐츠 팩토리에는 create-pdf-slidescreate-like-this
/api/v1/slides/generate팩토리가 무음 PPTX(오디오 없음, 영상 없음)만 필요하다면
/api/v1/slides/generate한 다이어그램으로 보는 아키텍처
[원본 데이터] [오케스트레이터] [2Slides API] [출력] │ │ │ │ 단어 ──프롬프트──▶ 작업 큐 ──POST──▶ /api/v1/slides/create-pdf-slides ──▶ jobId (UUID) 스프레드시트 (Cron/스크립트) │ │ │ │ │ │ 폴링 ──GET──▶ /api/v1/jobs/{jobId} ◀─────────────────────────────┘ 20-30초마다 status: success │ │ ▼ │ [pages 슬라이드 PNG · downloadUrl PDF] │ ▶ POST /api/v1/slides/generate-narration │ (jobId, voice, mode 등) — async only │ 폴링 ──GET──▶ /api/v1/jobs/{jobId} message: "Voice narration generation in progress" → success │ ▶ POST /api/v1/slides/download-slides-pages-voices │ (무료; ZIP 반환) ▼ pages/*.png + voices/*.{wav,mp3} + transcript.txt │ ▼ (선택) 클라이언트 측 MP4 합성 FFmpeg 사용, 또는 Workspace UI 사용 │ ▼ [LMS / TikTok / 뉴스레터 / S3]
원본 데이터 → 오케스트레이터 → API → pages + voices ZIP → 배포. MP4 합성은 선택이며 2026년 현재 공개 API 엔드포인트가 아닙니다 — 브라우저에서 FFmpeg.wasm을 사용하는 Workspace UI 기능입니다. API 등가물은 pages-and-voices ZIP이며, 팩토리에서 MP4가 필요하다면 서버 측에서
ffmpegStep 1 — 원본 스키마부터 설계
가장 큰 레버리지의 동작은 API 호출 전에 원본 데이터 스키마를 정의하는 것입니다. 깨끗한 스키마에서 만들어진 덱은 재현 가능합니다. 즉석 프롬프트로 만들어진 덱은 그렇지 않습니다.
확장 가능한 단어 덱 원본 행:
deck_id: vocab-b1-travel-2026-w14 source_l1: en # 학습자 모국어 target_l2: es # 학습 대상 언어 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" # 숏폼 복습용 세로 resolution: "2K" page_count: 30 content_detail: "concise" narration: enabled: true voice: "Puck" # 카탈로그는 /tts_sample_voices 참고 mode: "single" distribution: social: [tiktok, reels, shorts] newsletter: monday-2026-w14
이 객체가 작업 단위입니다. 다운스트림 모든 것이 이를 소비합니다.
이미 가진 것에 원본 스키마를 만드세요: 비기술 팀은 Google Sheet, 엔지니어링 팀은 Postgres 테이블, 콘텐츠 팀은 구조화된 필드를 가진 CMS. 일반 Markdown 파일에 만들지 마세요 — Markdown은 사람의 글쓰기에는 좋지만 일괄 자동화에는 나쁩니다.
Step 2 — 인증
API 관리 페이지에서 API 키를 받으세요. 형식:
sk-2slides-{64-character-hex-string}
모든 요청은 베어러 인증을 사용합니다.
Authorization: Bearer sk-2slides-...
엔드포인트별 속도 제한은 2slides.com/api.md에 문서화되어 있습니다. 일괄 생산을 위해:
- 와
create-pdf-slides: 동시성 한도 주변에 큐를 설계하고 429에 지수 백오프 적용create-like-this - (폴링): 아래 폴링 케이던스를 존중 — 20~30초, 공격적이지 않게
jobs/{id} - : 무료이며 더 빠르지만 여전히 속도 제한이 있음
download-slides-pages-voices
Step 3 — Nano Banana 생성 작업 제출
단어 카드는 비동기 모드에서 가장 잘 작동합니다(30장 덱의 슬라이드별 이미지 생성은 1~3분 소요).
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" }'
응답에는
jobIdcurl -X GET "https://2slides.com/api/v1/jobs/{jobId}" \ -H "Authorization: Bearer sk-2slides-..."
폴링 케이던스: 20~30초마다. 더 빠르게 폴링하지 마세요 — API 문서가 명시적으로 언급하며, 공격적 폴링이 429의 가장 흔한 원인입니다. 대부분의 덱은 1~3분 안에 완료됩니다.
status: "success"downloadUrlStep 4 — 규모에서도 견디는 프롬프트 템플릿 만들기
흔들리는 팩토리와 신뢰할 수 있는 팩토리의 가장 큰 차이는 프롬프트 템플릿입니다. 덱마다 런타임에 프롬프트를 작성하지 마세요. 덱 유형별로 템플릿을 정의하고 값을 대체하세요.
단어 덱 템플릿 (
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.
시각 스타일은
designStyleStep 5 — 내레이션 추가
생성 작업이
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 }'
그런 다음 같은
/api/v1/jobs/{jobId}단어 카드에 잘 작동하는 두 가지 음성 패턴:
- 음성 하나로 — 단순한 단어 + IPA + 문장 낭독
mode: "single" - 두 음성으로 — 화자 사이에 분할된 예문, 동사와 관용 표현에 이상적
mode: "multi"
음성 카탈로그는
/tts_sample_voices/PuckAoedeCharonKore중요: 이 단일 엔드포인트가 음성 텍스트와 음성 오디오를 모두 생성합니다. "음성 텍스트"와 "음성 오디오"의 별도 엔드포인트를 호출하지 마세요 — 그 단계들에 대한 독립적인 공개 API가 없습니다. 내레이션 요청을 한 번 구성하면 API가 둘 다 처리합니다.
Step 6 — pages와 voices 내보내기 (무료)
내레이션이 완료되면 모든 자산을 단일 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" }'
응답에는 다음을 포함하는 ZIP에 대한
downloadUrlpages/ page_01.png page_02.png ... voices/ page_01.wav page_02.wav ... transcript.txt
이 내보내기는 무료입니다 — 크레딧 소비 없음. ZIP을 다운로드하고 자체 객체 저장소에 자산을 저장하세요. 사전 서명된 URL은 1시간 후 만료됩니다.
Step 7 — (선택) 서버 측 MP4 합성
2Slides API는 현재 MP4 합성 엔드포인트를 노출하지 않습니다 — MP4 생성은 브라우저의 FFmpeg.wasm을 통해 Workspace UI에 있습니다. 콘텐츠 팩토리의 경우
ffmpeg# 각 페이지에 대해 (이미지 정지) + (음성 오디오) 클립 생성. 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 # 모든 페이지별 클립을 최종 MP4로 연결. ffmpeg -f concat -safe 0 -i clip_list.txt -c copy final.mp4
페이지당 오디오 케이던스는 내레이션 생성기가 생성한 것입니다 — 일반적으로 단어 카드의 경우 슬라이드당 5~12초. 결과는 사용자가 Workspace UI에서 다운로드할 수 있는 MP4와 같지만 팩토리 파이프라인에서 헤드리스로 생성됩니다.
같은 덱의 세로(9:16)와 가로(16:9) 변형을 원한다면 가장 깔끔한 경로는 슬라이드 생성 단계에서 다른 종횡비로 두 번 덱을 생성하는 것입니다(
aspectRatio: "9:16""16:9"Step 8 — 오케스트레이터 만들기
최소 오케스트레이터는 다섯 가지 루프를 처리합니다.
# 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)
큐가 있는 워커 박스에서 실행하세요. 하루 100개 덱이면 한 워커로 충분합니다. 1,000개 이상이면 작은 워커 풀로 팬아웃하되 — 풀이 워커 수가 아닌 각 API 엔드포인트의 속도 제한을 존중하도록 하세요.
Step 9 — 배포 패턴
배포 레이어가 산출물을 비즈니스 가치로 바꿉니다.
- LMS: 합성된 MP4를 각 API를 통해 Canvas / Moodle / Blackboard / Google Classroom에 업로드
- TikTok / Reels / Shorts: 9:16 MP4를 게시 도구(Buffer, Later, 네이티브 스케줄러)에 큐, 일일 한 개
- 뉴스레터: 원본 생성 작업의 에서 PDF 컴파일을 주간 호의 다운로드 링크로 임베드
downloadUrl - 세일즈 / 리드 마그넷: PDF를 Stan Store / Gumroad 페이지에 업로드; 캐러셀 티저가 트래픽을 유도
배포를 발명하려고 하지 마세요. 플랫폼 네이티브 API를 사용하고 오케스트레이터가 스케줄러에 행을 떨어뜨리도록 하세요.
비용 계산 (먼저 계획해야 할 부분)
내레이션이 있는 Nano Banana 덱의 경우, 일부 독자가 이전에 본 Fast PPT 가격보다 크레딧이 더 빠르게 누적됩니다. 30카드 덱당 계산(1K/2K 해상도, 내레이션 포함):
- 기획: 10 크레딧
- 슬라이드 생성: 30 × 100 = 3,000 크레딧
- 내레이션 (텍스트 + 오디오): 30 × 210 = 6,300 크레딧
- pages + voices 내보내기: 0 크레딧 (무료)
- 합계: 내레이션 포함 30카드 덱당 약 9,310 크레딧
내레이션 없이는 같은 덱이 약 3,010 크레딧입니다. 4K 해상도에서는 슬라이드 생성 부분이 두 배가 됩니다: 30 × 200 = 6,000 → 내레이션 포함 약 12,310 크레딧.
월 100덱 팩토리: 100 × 9,310 = 약 931,000 크레딧/월. 가격 페이지와 비교해 등급을 선택하세요 — 그리고 4K는 결과물이 그것에 이익을 보는 맥락(대형 화면, 프리미엄 영상)으로 갈 때만 예산을 잡으세요. TikTok / Reels 복습 영상에는 1K나 2K가 충분합니다.
화재를 막는 운영 패턴
멱등성
모든 덱 제출은
deck_id(deck_id, status)pending → generating → narrating → exporting → composed → distributed품질 게이트
자동 배포하지 마세요. TikTok이나 Canvas에 푸시하기 전에 산출물에 대해 기계 판독 가능 품질 검사를 실행하세요.
- 페이지 수가 요청한 수와 일치
- ZIP에 예상한 수의 와
pages/page_NN.png파일 포함voices/page_NN.wav - 페이지당 오디오 길이가 3~15초 사이 (30초짜리 카드는 거의 항상 환각된 긴 스크립트를 의미)
- 가 비어 있지 않고 목표 단어를 포함
transcript.txt
처음 50개 배치는 또한 10개 중 1개의 수동 점검도 하세요. 처음 50개 배치가 시스템적 프롬프트 문제가 표면화되는 곳입니다.
버전 관리
모든 산출물은 다음을 저장합니다: 프롬프트 템플릿 버전, 이미지 모델 버전(
gemini-3-pro-image-previewgemini-3.1-flash-image-preview비용 텔레메트리
각 덱은 알려진 크레딧 비용이 있습니다(위 계산 참고). 덱당 소비된 크레딧을 추적하세요. 덱당 크레딧 사용량이 예기치 않게 두 배가 되면 무언가 변경되었습니다(페이지 수 드리프트, 재시도, 4K로 전환). 크레딧 청구서가 당신을 놀라게 하기 전에 찾으세요.
실패 처리
실패한 작업은 정상입니다 — 네트워크 깜박임, 모델 부하, 드문 5xx. 백오프 후 한 번 재시도. 두 번 실패한 후 덱을
needs_human빌드 vs 구매: 언제 API를 사용할 것인가
API가 옳은 답은 다음과 같을 때입니다.
- 주당 10개 이상 덱을 생성
- 구조화된 원본 데이터가 있음
- 서버 측에서 합성하고 배포할 내레이션 MP4가 필요
- LMS, 스케줄러, CMS와 통합
- 프롬프트 버전 관리에서 재현성을 원함
API가 과한 경우:
- 주당 1개 덱을 생성하고 매번 시각적으로 조정 (UI가 더 빠르며 — Workspace UI도 MP4 합성을 처리)
- 개인 학습용 덱을 만드는 학습자
- 수업당 1개 덱을 만드는 교사 (Create Slides from File이나 Create Slides Like This 사용)
자주 묻는 질문
API 키는 어디서 받나요?
2slides.com/api. 키는 API 관리 탭에 있습니다.
/api/v1/slides/generate 작업에 내레이션을 추가할 수 없는 이유는?
/api/v1/slides/generategeneratecreate-pdf-slidescreate-like-thisAPI에서 직접 MP4를 내보낼 수 있나요?
아니요, 2026년 현재. MP4 내보내기는 클라이언트 측에서 FFmpeg.wasm으로 구현되는 Workspace UI 기능입니다. API 등가물은 슬라이드 이미지·오디오 파일·전사를 반환하는 ZIP인
download-slides-pages-voicesffmpegAPI가 생성에 어떤 언어를 지원하나요?
스페인어, 프랑스어, 독일어, 아랍어, 일본어, 한국어, 힌디어, 베트남어, 러시아어, 폴란드어, 이탈리아어, 포르투갈어, 인도네시아어, 태국어, 터키어, 중국어(간체/번체)를 포함한 22개 이상의 언어.
responseLanguage크레딧 비용은?
Nano Banana 덱: 슬라이드 생성에 10 (기획) + 100/슬라이드 (1K/2K) 또는 200/슬라이드 (4K), 내레이션에 210/페이지 (10 텍스트 + 200 오디오). pages + voices 내보내기는 무료. 2K에서 30카드 내레이션 덱은 약 9,310 크레딧. 가격 페이지와 위 비용 계산 섹션 참고.
429 속도 제한은 어떻게 처리하나요?
지수 백오프. 1초에서 시작해 60초까지 두 배. 연속 3번의 429 후 동시 워커 수를 절반으로 줄이세요.
/api/v1/jobs/{id}Zapier / Make / n8n과 통합할 수 있나요?
네 — 인증된 HTTP 요청을 만들 수 있는 어떤 도구든 2Slides API를 구동할 수 있습니다. 특히 n8n은 폴링과 큐 패턴을 네이티브로 처리하기 때문에 콘텐츠 팩토리에서 인기 있습니다.
생성된 덱이 공개적으로 색인되지 않게 하려면?
API를 통해 생성된 덱은 기본적으로 계정에 비공개입니다. 공개 공유는 별개의 명시적 동작입니다.
같은 덱의 세로(9:16)와 가로(16:9) 버전을 어떻게 생성하나요?
덱을 두 번 생성 — 한 번은
aspectRatio: "9:16"aspectRatio: "16:9"결론
콘텐츠 팩토리는 구조화된 원본 데이터 + 안정된 오케스트레이터 + 올바른 API 엔드포인트입니다. 2Slides API는 세 번째 조각이고, 처음 두 가지는 당신의 책임입니다. 가장 흔한 팩토리 실패는
/api/v1/slides/generatecreate-pdf-slidescreate-like-thisgenerate-narrationdownload-slides-pages-voicesffmpeg같은 워크플로우의 수동 측면은 단어 카드 가이드와 크리에이터 워크플로우 가이드를 참고하세요. 거기 있는 UI 패턴은 API로 자동화하는 것과 같은 패턴입니다. 수동 흐름을 먼저 이해하면 API 통합이 훨씬 빠릅니다.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free