

Cómo generar 100 presentaciones de vocabulario en lote con la API de 2Slides (Playbook 2026)
Una vez validado el flujo manual — generar una presentación, narrarla, exportar los assets — el siguiente cuello de botella es el volumen. Una escuela de idiomas con 12 niveles y 30 temas semanales necesita 360 presentaciones al año. Un canal TikTok faceless diario necesita 365 más variantes de aspecto. Un equipo de contenido EdTech necesita cientos segmentadas por L1/L2.
No construyes 360 presentaciones a mano. Construyes una fábrica de contenido.
Esta guía es el playbook práctico 2026 para generar presentaciones de vocabulario en lote con la API de 2Slides. La decisión arquitectónica más importante — y la que más se hace mal — es elegir el endpoint de generación correcto.
Elige el endpoint correcto primero (aquí se rompe la mayoría de fábricas)
La API expone dos flujos de generación distintos. Solo uno produce presentaciones a las que se les puede añadir narración después.
| Endpoint | Salida | ¿Narración posible? | Créditos |
|---|---|---|---|
POST /api/v1/slides/generate | Fast PPT — PPTX por plantilla. Requiere themeId | ❌ No. El endpoint de narración rechaza explícitamente jobs creados aquí. | 10 / página |
POST /api/v1/slides/create-pdf-slides | Nano Banana — slides con imágenes generadas desde prompt. Mismo motor que Workspace. | ✅ Sí | 10 (planificación) + 100 / slide (1K/2K) o 200 / slide (4K) |
POST /api/v1/slides/create-like-this | Nano Banana — coincidiendo con un imagen de referencia | ✅ Sí | Igual |
Para una fábrica de tarjetas de vocabulario con narración y audio exportable, usa create-pdf-slides
create-like-this/api/v1/slides/generateSi tu fábrica solo necesita PPTX silencioso (sin audio, sin video),
/api/v1/slides/generateArquitectura
[Datos fuente] [Orquestador] [API 2Slides] [Salidas] │ │ │ │ hoja vocab ──prompt──▶ Cola jobs ──POST──▶ /api/v1/slides/create-pdf-slides ──▶ jobId (UUID) (Cron / script) │ │ │ │ │ │ Polling ──GET──▶ /api/v1/jobs/{jobId} ◀────────────────────────────┘ cada 20-30s status: success │ │ ▼ │ [pages PNG · downloadUrl PDF] │ ▶ POST /api/v1/slides/generate-narration │ (jobId, voice, mode etc.) — solo async │ Polling ──GET──▶ /api/v1/jobs/{jobId} message: "Voice narration ... in progress" → success │ ▶ POST /api/v1/slides/download-slides-pages-voices │ (gratis; devuelve ZIP) ▼ pages/*.png + voices/*.{wav,mp3} + transcript.txt │ ▼ (Opcional) componer MP4 con ffmpeg o usar el Workspace UI │ ▼ [LMS / TikTok / newsletter / S3]
Datos → orquestador → API → ZIP de pages + voices → distribución. La composición MP4 es opcional y no es un endpoint público de la API en 2026 — es una funcionalidad del Workspace UI usando FFmpeg.wasm en el navegador. El equivalente API es el ZIP pages-and-voices, que puedes componer con
ffmpegPaso 1 — Diseña el schema fuente primero
deck_id: vocab-b1-travel-2026-w14 source_l1: es # idioma nativo target_l2: en # idioma a aprender 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 más generation: endpoint: create-pdf-slides aspect_ratio: "9:16" resolution: "2K" page_count: 30 content_detail: "concise" narration: enabled: true voice: "Puck" mode: "single" distribution: social: [tiktok, reels, shorts] newsletter: monday-2026-w14
Paso 2 — Autenticación
Página de gestión API. Bearer auth:
Authorization: Bearer sk-2slides-...
Rate limits por endpoint en 2slides.com/api.md. Para
create-pdf-slidescreate-like-thisjobs/{id}Paso 3 — Enviar job de generación Nano Banana
Modo async (la generación de imagen por slide tarda 1–3 min para deck de 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": "<prompt forma deck>", "responseLanguage": "en", "aspectRatio": "9:16", "resolution": "2K", "page": 30, "contentDetail": "concise", "mode": "async" }'
Devuelve
jobIdcurl -X GET "https://2slides.com/api/v1/jobs/{jobId}" \ -H "Authorization: Bearer sk-2slides-..."
Cadencia: cada 20–30 segundos. No más rápido — la documentación lo dice explícitamente, polling agresivo es la causa más común de 429. La mayoría completan en 1–3 minutos.
Cuando
status: "success"downloadUrlPaso 4 — Plantillas de prompt que aguantan a escala
Genera presentación vocabulario nivel {{cefr_level}} para aprendices {{source_l1}} de {{target_l2}}. Tema: {{theme}}. Número tarjetas: {{word_count}}. Cada tarjeta: - Palabra objetivo ({{target_l2}}) - Categoría gramatical - Transcripción IPA - Traducción {{source_l1}} - Dos frases ejemplo en contexto natural {{theme}}, sintaxis B1, 8–14 palabras Palabras a incluir: {{word_list_yaml}} Termina con recap 3 tarjetas de las 3 más útiles.
Estilo visual con
designStylePaso 5 — Añadir narración
Una vez
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 }'
Polling al mismo
/api/v1/jobs/{jobId}Dos patrones de voz:
- — una voz lee palabra + IPA + frases
mode: "single" - — frases divididas entre dos voces, ideal para verbos y modismos
mode: "multi"
Catálogo de voces en
/tts_sample_voices/PuckAoedeCharonKoreImportante: este único endpoint genera tanto el texto como el audio. No llames endpoints separados de "voice text" y "voice audio" — no existe esa API pública. Una sola petición, la API hace ambos pasos.
Paso 6 — Exportar pages y voices (gratis)
Tras narración, recupera todos los assets en un solo 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" }'
downloadUrlpages/ page_01.png page_02.png ... voices/ page_01.wav page_02.wav ... transcript.txt
Esta exportación es gratis — sin créditos consumidos. Descarga y guarda en tu object store. La URL prefirmada expira en 1 hora.
Paso 7 — (Opcional) Componer MP4 server-side
La API de 2Slides no expone endpoint de composición MP4 — la generación MP4 vive en el Workspace UI vía FFmpeg.wasm. En la fábrica, componer con
ffmpeg# Por cada página: clip de (imagen still) + (audio voz) 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 # Concatenar clips en MP4 final ffmpeg -f concat -safe 0 -i clip_list.txt -c copy final.mp4
Duración por página = lo que generó el narrador — típicamente 5–12s/slide para vocabulario. Resultado idéntico al MP4 que descarga un usuario desde el Workspace UI, pero producido headless en la fábrica.
Si quieres variantes vertical (9:16) y horizontal (16:9) de la misma presentación, lo más limpio es generar la presentación dos veces con distintos
aspectRatioPaso 8 — Construir el orquestador
while there_is_work(): deck = pull_one_pending_deck_from_source() if not deck: sleep(60); continue # 1. Generar slides via Nano Banana job = post("/api/v1/slides/create-pdf-slides", body=build_payload(deck)) deck_artifact = poll_until_complete(job.data.jobId) # 2. Narración (solo async) 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. Exportar ZIP pages + voices (gratis) zip_url = post("/api/v1/slides/download-slides-pages-voices", body={"jobId": deck_artifact.id}) # 4. Descargar a tu object store download_to_s3(zip_url, deck.id) # 5. (Opcional) componer MP4 con ffmpeg, distribuir if deck.distribution.social: compose_mp4(deck.id) distribute(deck)
Un worker para 100 decks/día. 1,000+: pool pequeño respetando rate limits por endpoint.
Paso 9 — Patrones de distribución
- LMS: subir MP4 compuesto a Canvas / Moodle / Blackboard / Google Classroom
- TikTok / Reels / Shorts: cola de 9:16 MP4 a Buffer / Later / scheduler nativo
- Newsletter: PDF compilado (del original) como descarga
downloadUrl - Lead magnet: PDF a Stan Store / Gumroad
Matemáticas de coste (a planificar primero)
Las presentaciones Nano Banana narradas suman créditos más rápido que el precio Fast PPT. Por presentación de 30 tarjetas (1K/2K, narración):
- Planificación: 10 créditos
- Generación slides: 30 × 100 = 3,000 créditos
- Narración (texto + audio): 30 × 210 = 6,300 créditos
- Exportación pages + voices: 0 (gratis)
- Total: ~9,310 créditos por presentación narrada de 30 tarjetas
Sin narración la misma presentación es ~3,010 créditos. A 4K resolución: 30 × 200 = 6,000 → ~12,310 créditos con narración.
Fábrica de 100 decks/mes: 100 × 9,310 = ~931,000 créditos/mes. Compara con precios. 4K solo cuando el output va a contexto que se beneficia (pantallas grandes, video premium). Para revisión TikTok / Reels, 1K o 2K basta.
Patrones operativos
Idempotencia
Cada submit idempotente en
deck_id(deck_id, status)pending → generating → narrating → exporting → composed → distributedQuality gates
Antes de TikTok / Canvas: verificar conteo de páginas, que el ZIP tiene
pages/page_NN.pngvoices/page_NN.wavtranscript.txtVersionado
Cada artefacto guarda: versión prompt, versión modelo (
gemini-3-pro-image-previewgemini-3.1-flash-image-previewTelemetría de coste
Coste conocido por presentación. Si dobla, algo cambió.
Manejo de fallas
Backoff y 1 reintento. Tras 2 fallas, push a
needs_humanBuild vs buy
API correcto cuando: >10 presentaciones/semana, datos estructurados, MP4 narrado server-side, integras LMS/scheduler/CMS, reproducibilidad bajo versionado prompt.
API overkill cuando: 1/semana ajustando visualmente (UI más rápida — Workspace UI también compone MP4), aprendiz personal, profesor 1/lección.
Preguntas frecuentes
¿Dónde obtengo API key?
2slides.com/api, tab gestión API.
¿Por qué no puedo añadir narración a un job de /api/v1/slides/generate?
/api/v1/slides/generategeneratecreate-pdf-slidescreate-like-this¿Puedo exportar MP4 directamente desde la API?
No, no en 2026. Export MP4 es feature del Workspace UI implementada client-side con FFmpeg.wasm. El equivalente API es
download-slides-pages-voicesffmpeg¿Qué idiomas soporta?
22+ idiomas vía
responseLanguage¿Coste en créditos?
Nano Banana: 10 (planificación) + 100/slide a 1K/2K (o 200/slide a 4K) + narración 210/página (10 texto + 200 audio). Export pages+voices gratis. Deck de 30 narrado a 2K ~9,310 créditos. Precios.
¿429 rate limits?
Backoff exponencial. 1s start, doblar a 60s. Tras 3 consecutivos, reduce concurrencia a la mitad. No polling más rápido que 20s.
¿Integración con Zapier / Make / n8n?
Sí — cualquier herramienta con HTTP autenticado. n8n popular para fábricas.
¿Cómo prevengo indexación pública?
API genera decks privados por defecto. Compartir es acción explícita.
¿Versiones 9:16 y 16:9 de la misma presentación?
Genera dos veces —
aspectRatio: "9:16""16:9"Conclusión
Fábrica de contenido = datos fuente estructurados + orquestador estable + endpoints API correctos. La falla más común es usar
/api/v1/slides/generatecreate-pdf-slidescreate-like-thisgenerate-narrationdownload-slides-pages-voicesffmpegLado manual: guía vocabulario y flujo creador.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free