2Slides Logo
Genera Diapositive Lezione Programmaticamente da un Curriculum (2026)
2Slides Team
18 min read

Generare Diapositive per Lezioni Programmaticamente da un Curriculum (2026)

Per generare diapositive per lezioni in modo programmatico, esporta il tuo curriculum come una riga per lezione (unità, titolo, obiettivi, vocabolario, grado, lingua), quindi fai in modo che uno script chiami l’endpoint POST /api/v1/slides/generate di 2Slides Fast PPT una volta per ogni riga con un tema educativo da GET /api/v1/themes/search e responseLanguage impostato per classe. Ogni deck da 12 diapositive è un PPTX modificabile che costa 120 crediti, circa $0,30, e viene restituito in circa 30 secondi. Per le classi capovolte, create-pdf-slides più generate-narration producono brevi lezioni video. Creato per sviluppatori edtech, instructional designer e team curriculari distrettuali.

Punti chiave

  • Un deck Fast PPT per lezione costa 10 crediti per diapositiva, quindi un deck da 12 diapositive costa 120 crediti, circa $0,30 al tasso di $5 per 2.000 crediti.
  • Un dipartimento con 40 lezioni da 12 diapositive ciascuna usa 4.800 crediti, circa $12, e invia in circa 7 minuti al limite di 6 richieste al minuto.
  • responseLanguage accetta un nome di lingua come "Spanish" o "Vietnamese", coprendo oltre 20 lingue di output per programmi bilingue dallo stesso set di righe del curriculum.
  • L’output Fast PPT è un PPTX nativo e modificabile, così gli insegnanti possono adattare ogni diapositiva prima della lezione. I deck Fast PPT non possono essere narrati.
  • Per le classi capovolte, una lezione video narrata da 8 diapositive costa 2.490 crediti (810 per 2K diapositive più 1.680 per la narrazione), circa $5-$6,25.

A chi è rivolto

Instructional designer, ingegneri edtech e creatori di corsi che tengono il curriculum in forma strutturata (un Google Sheet, un CSV LMS, un database corsi) e hanno bisogno di un deck di prima bozza per ogni lezione, non solo per poche. I team distrettuali che gestiscono programmi bilingue, dove una lezione deve esistere in inglese e spagnolo o vietnamita, traggono il massimo vantaggio dal campo lingua per riga.

Salta questa ricetta se hai cinque lezioni e un insegnante con un pomeriggio libero; il riassunto degli strumenti per insegnanti copre il percorso con app web.

Il flusso di lavoro a colpo d’occhio

PassoStrumentoCosa succedeEndpoint 2Slides / crediti
1Esportazione da Sheets o LMSUna riga per lezione e lingua: unità, titolo, grado, obiettivi, vocabolario, numero di diapositivenessuno
2curl o browserCerca temi educativi e per aula, memorizza un themeId per fascia di gradoGET /api/v1/themes/search, gratuito
3Python o NodeCostruisci un prompt strutturato dai campi della riga, imposta responseLanguage per classenessuno
4Python o MakeUna chiamata generate per riga con mode: "async", massimo 6 al minutoPOST /api/v1/slides/generate, 10 crediti per pagina
5ScriptPoll ogni 5-10 s fino a success, scarica il PPTX su Drive o LMSGET /api/v1/jobs/{id}, gratuito
6InsegnanteRevisiona, modifica e approva il PPTX prima che arrivi agli studentinessuno
7 (opzionale)Script più workspaceClasse capovolta: diapositive con immagini, narrazione a voce singola, esportazione MP4create-pdf-slides 10 + 100 per pagina a 2K, generate-narration 210 per pagina

Passo 1: Normalizza l’esportazione del curriculum

Appiattisci l’esportazione LMS o la guida di pacing in una riga per lezione per lingua. Se una lezione è in due lingue, duplica la riga e cambia solo la colonna language. Mantieni i campi multi-valore (obiettivi, vocabolario) separati da pipe così il generatore di prompt può trasformarli in elenchi puntati.

unit,lesson_title,grade,objectives,vocabulary,language,slide_count Ecosystems,Food Webs and Energy Flow,7,"Explain how energy moves between trophic levels|Identify producers, consumers and decomposers in a local ecosystem","producer|consumer|decomposer|trophic level",English,12 Ecosystems,Food Webs and Energy Flow,7,"Explain how energy moves between trophic levels|Identify producers, consumers and decomposers in a local ecosystem","producer|consumer|decomposer|trophic level",Spanish,12 Fractions,Comparing Fractions with Unlike Denominators,4,"Compare two fractions using common denominators|Justify comparisons with a visual model","numerator|denominator|equivalent fraction|benchmark fraction",Vietnamese,10

Aggiungi tre colonne di contabilità che lo script compilerà in seguito: job_id, download_url e status. La colonna status guida il flusso di revisione descritto più avanti.

Passo 2: Trova un themeId adatto all’educazione

Il themeId decide l’aspetto di un deck Fast PPT. Cerca tra i 1.500+ template con termini per aula, poi conserva uno o due ID per fascia di grado: uno stile disegnato a mano o doodle per la primaria, qualcosa di più pulito per la secondaria.

curl "https://2slides.com/api/v1/themes/search?query=education&limit=10" \ -H "Authorization: Bearer $SLIDES_API_KEY" # Vale la pena provare anche: query=classroom, query=doodle, query=science, query=study

Ogni risultato include un themeId e metadati. Memorizza gli ID come variabili d’ambiente (EDU_THEME_ELEMENTARY, EDU_THEME_SECONDARY) invece che nel foglio. L’endpoint di ricerca è gratuito ma condivide il limite di 6 richieste al minuto, quindi eseguilo una volta durante la configurazione, non una volta per lezione.

2Slides Templates Hub con temi in stile disegnato a mano e doodle adatti alle aule
Figura 1: Il 2Slides Templates Hub, navigato qui per selezionare stili disegnati a mano e doodle per le classi più giovani; gli stessi template sono ricercabili tramite themes/search.

Passo 3: Costruisci il prompt e imposta la lingua per diapositive multilingue

Il prompt è dove la qualità del curriculum diventa qualità del deck. Dai al modello il grado, gli obiettivi come punti elenco, il vocabolario da definire e una struttura fissa per le diapositive. Mantieni userInput sotto qualche centinaio di parole; obiettivi e vocabolario sono l’input, non l’intero piano unità.

Poi imposta responseLanguage dalla riga. Accetta un nome di lingua, quindi "Spanish" e "Vietnamese" funzionano mentre "es" e "vi" no. Scrivi il prompt in inglese e lascia che il deck esca in spagnolo; un template serve tutto il programma.

Create a 12-slide lesson deck for grade 7. Unit: Ecosystems Lesson: Food Webs and Energy Flow Learning objectives: - Explain how energy moves between trophic levels - Identify producers, consumers and decomposers in a local ecosystem Key vocabulary to define with one example each: producer, consumer, decomposer, trophic level Structure: title slide, objectives, warm-up question, 5 content slides with one idea each, vocabulary slide, quick check with 3 questions, summary. Use short sentences suitable for the grade level.

Parametri dell’endpoint generate di 2Slides e le oltre 20 lingue di output supportate
Figura 2: I parametri dell’endpoint generate nella documentazione API di 2Slides, inclusi i 20+ valori che responseLanguage accetta per nome.

Passo 4: Genera diapositive per lezioni programmaticamente con Fast PPT

Questo è il passo che permette a un piccolo team di creare in massa presentazioni per l’aula. Fast PPT generate di default è sincrono e restituisce un downloadUrl in una chiamata, adatto per un singolo deck. Per un batch, imposta mode: "async", raccogli i valori jobId e fai polling. Ogni deck richiede circa 30 secondi, e la chiave permette 6 richieste al minuto, quindi distanzia le invii di 10 secondi.

curl -X POST https://2slides.com/api/v1/slides/generate \ -H "Authorization: Bearer $SLIDES_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "userInput": "Create a 12-slide lesson deck for grade 7. Unit: Ecosystems. Lesson: Food Webs and Energy Flow. Learning objectives: explain how energy moves between trophic levels; identify producers, consumers and decomposers in a local ecosystem. Key vocabulary to define with one example each: producer, consumer, decomposer, trophic level. Structure: title, objectives, warm-up question, 5 content slides, vocabulary, 3-question quick check, summary.", "themeId": "'"$EDU_THEME_SECONDARY"'", "responseLanguage": "Spanish", "mode": "async" }' # -> {"jobId":"..."} poi fai polling con GET https://2slides.com/api/v1/jobs/{jobId}

Il ciclo completo in Python: leggi il CSV, invia ogni riga con un intervallo di 10 secondi, fai polling di ogni job ogni 8 secondi e salva il PPTX con un nome file che include unità, grado e lingua così due gradi con lo stesso titolo lezione non si sovrascrivono.

import csv, os, time, requests API = "https://2slides.com/api/v1" HEADERS = {"Authorization": f"Bearer {os.environ['SLIDES_API_KEY']}"} THEMES = { "elementary": os.environ["EDU_THEME_ELEMENTARY"], "secondary": os.environ["EDU_THEME_SECONDARY"], } def theme_for(grade: str) -> str: return THEMES["elementary"] if int(grade) <= 5 else THEMES["secondary"] def build_prompt(row: dict) -> str: objectives = "\n".join(f"- {o.strip()}" for o in row["objectives"].split("|")) vocab = ", ".join(v.strip() for v in row["vocabulary"].split("|")) return ( f"Create a {row['slide_count']}-slide lesson deck for grade {row['grade']}.\n" f"Unit: {row['unit']}\nLesson: {row['lesson_title']}\n" f"Learning objectives:\n{objectives}\n" f"Key vocabulary to define with one example each: {vocab}\n" "Structure: title slide, objectives, warm-up question, content slides with one " "idea each, vocabulary slide, quick check with 3 questions, summary. " "Use short sentences suitable for the grade level." ) def submit(row: dict) -> str: r = requests.post(f"{API}/slides/generate", headers=HEADERS, timeout=60, json={ "userInput": build_prompt(row), "themeId": theme_for(row["grade"]), "responseLanguage": row["language"] or "English", "mode": "async", }) r.raise_for_status() return r.json()["jobId"] def wait(job_id: str) -> dict: while True: job = requests.get(f"{API}/jobs/{job_id}", headers=HEADERS, timeout=30).json() if job["status"] in ("success", "failed"): return job time.sleep(8) # poll ogni 5-10 s; l’endpoint jobs permette 10 req/min with open("curriculum.csv", newline="", encoding="utf-8") as f: rows = list(csv.DictReader(f)) queued = [] for row in rows: queued.append((row, submit(row))) time.sleep(10) # 6 invii al minuto, mai di più os.makedirs("decks", exist_ok=True) for row, job_id in queued: job = wait(job_id) if job["status"] != "success": print("FALLITO", row["lesson_title"], row["language"], job_id) continue pptx = requests.get(job["downloadUrl"], timeout=120).content name = f"{row['unit']}_G{row['grade']}_{row['lesson_title']}_{row['language']}.pptx" with open(os.path.join("decks", name.replace(" ", "_")), "wb") as out: out.write(pptx) print("salvato", name)

Scrivi job_id, download_url e status = "draft" nel foglio man mano che ogni deck arriva.

Interfaccia Fast PPT di 2Slides che mostra schede template come Blue Doodle study-abroad e Critical Thinking
Figura 3: L’interfaccia Fast PPT nell’app web 2Slides. L’endpoint generate produce lo stesso PPTX modificabile dagli stessi template, una chiamata per lezione.

Passo 5: Variante classe capovolta: brevi lezioni video narrate

Per una classe capovolta l’artefatto che gli studenti vedono a casa è un video, quindi cambia pipeline. I job Fast PPT non possono essere narrati. Usa create-pdf-slides per diapositive con immagini 16:9 a 2K, poi generate-narration con un solo speaker, quindi esporta il video. Mantieni le lezioni brevi: 6-8 diapositive con circa 45 secondi di narrazione ciascuna è un video da 5-6 minuti.

# 1) diapositive con immagini (async di default) curl -X POST https://2slides.com/api/v1/slides/create-pdf-slides \ -H "Authorization: Bearer $SLIDES_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "userInput": "8-slide mini-lecture for grade 7 on food webs and energy flow. One idea per slide, written to be read aloud in about 45 seconds per slide. Cover: what a food web is, producers, consumers, decomposers, trophic levels, the 10 percent energy rule, one local example, a 2-question check.", "aspectRatio": "16:9", "resolution": "2K", "page": 8, "contentDetail": "standard", "responseLanguage": "English", "mode": "async" }' # poll GET /api/v1/jobs/{jobId} fino a status = success (10 + 8 x 100 = 810 crediti) # 2) narrazione a voce singola su quel job (8 x 210 = 1.680 crediti) curl -X POST https://2slides.com/api/v1/slides/generate-narration \ -H "Authorization: Bearer $SLIDES_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "jobId": "JOB_ID_FROM_STEP_1", "mode": "single", "speakerName": "Teacher", "voice": "Leda", "contentMode": "standard", "includeIntro": true }' # fai polling di nuovo fino a successo # 3) PNG + WAV per pagina, gratuito curl -X POST https://2slides.com/api/v1/slides/download-slides-pages-voices \ -H "Authorization: Bearer $SLIDES_API_KEY" \ -H "Content-Type: application/json" \ -d '{"jobId": "JOB_ID_FROM_STEP_1"}' -o lecture-assets.zip

Due opzioni per l’MP4: apri il job nel workspace 2Slides e usa Esporta, poi Genera Video, che rende un MP4 H.264 a 1920×1080 nel browser per 20 crediti a pagina; oppure unisci le coppie PNG e WAV dallo ZIP con FFmpeg per un caricamento LMS completamente scriptato. Il post sugli shorts educativi senza volto mostra la versione 9:16 per clip di revisione.

Passo 6: Alternative no-code e agenti

Automazione curriculum a PowerPoint in Make

Se nessuno nel team curriculum vuole eseguire un job Python, lo stesso ciclo si adatta a uno scenario Make (n8n e Zapier funzionano allo stesso modo):

  • Trigger: osserva nuove o aggiornate righe nel Google Sheet del curriculum, o un trigger Webhook lanciato dall’LMS.
  • Trasformazione: un passo testo o variabile assembla userInput dai campi della riga usando il template del Passo 3.
  • Richiesta HTTP: POST https://2slides.com/api/v1/slides/generate con mode: "async", header Authorization: Bearer memorizzato come segreto dello scenario, e responseLanguage mappato dalla riga.
  • Attesa: un passo Delay o Sleep di 30-45 secondi.
  • Richiesta HTTP: GET https://2slides.com/api/v1/jobs/{jobId}; se status non è ancora success o failed, ripeti l’attesa.
  • Consegna: carica il PPTX in una cartella Drive per grado, poi scrivi download_url e status = "draft" nella riga.
  • Limitazione: una riga per esecuzione, almeno 10 secondi tra invii, così un incolla di 40 righe non supera mai 6 richieste al minuto.

Chiedi a un agente invece

Gli insegnanti che lavorano in Claude Code, Codex o Cursor possono saltare sia lo script che lo scenario. Installa la 2Slides Agent Skill o aggiungi il server MCP ospitato (claude mcp add --transport http 2slides "https://2slides.com/api/mcp?apikey=YOUR_KEY"), incolla la tabella del curriculum e chiedi un deck per riga. L’agente chiama gli stessi strumenti themes_search, slides_generate e jobs_get con la stessa chiave e crediti; vedi la pagina Agent Skills.

Pagina 2Slides Agent Skills: esegui la stessa generazione da Claude Code, Codex, Cursor e altri agenti
Figura 4: La pagina 2Slides Agent Skills. La skill e il server MCP espongono sette strumenti API agli agenti di coding, così un insegnante può richiedere deck in linguaggio naturale.

Accessibilità e revisione: bozze AI, insegnanti approvano

Tratta ogni deck generato come una bozza. La colonna status passa da draft a reviewed a approved con le iniziali del revisore, e nulla arriva agli studenti finché non dice approved. Questa è una politica, non una funzione, ed è per questo che il PPTX modificabile conta più di un PDF più bello per l’uso in aula.

Una checklist di revisione per deck:

  • Contenuto: ogni obiettivo della riga appare ed è corretto per lo standard; nessun fatto o data inventata; le domande del quick-check sono rispondibili dalle diapositive.
  • Livello di lettura: lunghezza delle frasi e vocabolario corrispondono al grado. Le diapositive di grado 4 con frasi da grado 9 sono la correzione più comune.
  • Deck tradotti: un insegnante bilingue revisiona il deck spagnolo o vietnamita per i suoi meriti, poiché gli esempi devono avere adeguatezza culturale oltre che traduzione corretta.
  • Accessibilità: aggiungi testo alternativo alle immagini, controlla il contrasto del testo rispetto allo sfondo del template, mantieni il testo leggibile dal fondo dell’aula e non trasmettere mai significato solo con il colore. Le linee guida WCAG sono il riferimento citato dalla maggior parte dei distretti.
  • Lezioni video: lo ZIP da download-slides-pages-voices ti dà un WAV per diapositiva, così una trascrizione da qualsiasi strumento speech-to-text e i sottotitoli sull’MP4 richiedono pochi minuti.

Prevedi circa 10 minuti di revisione insegnante per deck: circa 7 ore per 40 lezioni, contro zero ore spese a costruire deck da un template vuoto.

Quanto costa per un dipartimento

I crediti sono pay-as-you-go: $5 comprano 2.000 crediti ($0,0025 ciascuno) e $80 comprano 40.000 ($0,002 ciascuno). I nuovi account ricevono 500 crediti gratuiti, sufficienti per 4 deck di prova da 12 diapositive.

VolumePipelineCreditiUSD
40 lezioni × 12 diapositive (un dipartimento, un trimestre)Fast PPT generate480 pagine × 10 = 4.800≈ $12,00 al tasso del pacchetto da $5
500 lezioni × 12 diapositive (distretto o marketplace corsi, al mese)Fast PPT generate6.000 pagine × 10 = 60.000≈ $120 al tasso del pacchetto da $80
40 lezioni capovolte × 8 diapositive, 2K più narrazionecreate-pdf-slides 40 × 810, generate-narration 40 × 1.68032.400 + 67.200 = 99.600≈ $199-$249
Esportazione MP4 opzionale per quelle 40 lezioni nel workspace320 pagine × 206.400≈ $13-$16

Il tempo è l’altro budget. A 6 invii al minuto, 40 lezioni si inviano in circa 7 minuti e 500 in circa 84 minuti, ogni deck termina circa 30 secondi dopo l’invio.

Fast PPT o diapositive con immagini per questo caso d’uso?

  • Fast PPT (generate) quando gli insegnanti devono modificare in PowerPoint o Google Slides e il volume è alto: 120 crediti per un deck da 12 diapositive, consegnato in circa 30 secondi.
  • create-pdf-slides quando il deck è l’artefatto finale per lo studente (lezione video, embed LMS) o serve uno stile visivo specifico: 1.010 crediti per 10 pagine a 2K, più 210 per pagina per la narrazione.
  • create-like-this quando il distretto ha una diapositiva brandizzata che ogni deck deve rispettare; passa la sua URL pubblica come referenceImageUrl, stesso costo di create-pdf-slides.
  • Non mischiare mai per errore: narrazione ed esportazione MP4 esistono solo per i job create-pdf-slides e create-like-this, non per Fast PPT.

Errori comuni

  • HTTP 429 durante un incolla massivo: la chiave permette 6 richieste al minuto, quindi mantieni un solo submitter con intervallo di 10 secondi. Non distribuire gli invii su thread o rami di scenario che condividono la chiave.
  • Chiave API nel foglio o in uno script Apps condiviso: tienila lato server o nel secret store dello strumento di automazione. Gli insegnanti ricevono i deck, mai le chiavi.
  • Narrare un job Fast PPT: l’endpoint narrazione lo rifiuta. Ricostruisci la lezione con create-pdf-slides prima.
  • Passare un codice lingua: responseLanguage: "es" non è "Spanish". Valida la colonna lingua contro i nomi supportati.
  • create-pdf-slides di default è page: 1: imposta esplicitamente il conteggio (8 per una mini-lezione) o usa page: 0 per lasciare scegliere al modello. Una lezione a pagina singola è una sorpresa comune al primo tentativo.
  • Incollare l’intero piano unità come userInput: documenti lunghi di standard producono deck poco focalizzati. Riduci ogni lezione a obiettivi, vocabolario e struttura di diapositive prima.

Domande Frequenti

Posso generare diapositive per lezioni programmaticamente senza scrivere codice?

Sì. In Make, n8n o Zapier, un trigger Sheets alimenta un passo HTTP Request che chiama POST /api/v1/slides/generate con mode: "async", seguito da un passo di attesa e una seconda richiesta HTTP a GET /api/v1/jobs/{id}. Gli insegnanti possono anche saltare gli strumenti di automazione e chiedere a un agente AI con la skill 2Slides o il server MCP di costruire i deck da una tabella curriculum incollata. Ogni percorso usa la stessa chiave API e gli stessi crediti.

Come faccio a creare diapositive multilingue da un solo curriculum?

Duplica ogni riga di lezione una volta per lingua e imposta la colonna lingua con un nome come "Spanish" o "Vietnamese". Lo script passa quel valore come responseLanguage, così obiettivi e vocabolario identici producono un deck in inglese e uno in spagnolo da un solo template di prompt. 2Slides supporta oltre 20 lingue di output. Fai revisionare ogni deck tradotto da un insegnante bilingue, perché gli esempi di vocabolario devono avere adeguatezza culturale oltre che traduzione corretta.

Esiste un’alternativa API AI da piano lezioni a diapositive a 2Slides?

Sì, diversi strumenti di presentazione hanno API. L’API di Gamma offre automazione simile ma richiede un piano Pro per le chiavi API, mentre le chiavi 2Slides funzionano su qualsiasi account, incluso uno gratuito con 500 crediti. SlideSpeak e Canva Connect espongono anch’essi API. 2Slides è il nostro prodotto, quindi confronta sui punti che contano per l’educazione: output PPTX modificabile, lingua per richiesta e prezzo per diapositiva.

Quante diapositive dovrebbe avere un deck generato per lezione?

Per una lezione di 45-50 minuti, 10-14 diapositive sono un default praticabile: titolo, obiettivi, riscaldamento, 4-6 diapositive di contenuto con un’idea ciascuna, una diapositiva vocabolario, un quick check e un riepilogo. A 10 crediti per diapositiva, un deck da 12 diapositive costa 120 crediti. Indica il numero in userInput così ogni deck nel batch ha dimensione, tempo di revisione e costo prevedibili.

Gli insegnanti possono modificare i deck generati in PowerPoint o Google Slides?

Sì. L’endpoint Fast PPT generate restituisce un PPTX nativo costruito da un template progettato, quindi caselle di testo, forme e immagini sono modificabili in PowerPoint, Keynote o Google Slides dopo l’importazione. Per questo questa ricetta tratta l’output API come una bozza: l’insegnante apre il file, adatta gli esempi per i propri studenti e salva la versione approvata. L’output create-pdf-slides è un PDF più immagini di pagina e non è modificabile come testo.

Passi successivi

Ora hai il layout del foglio, il template del prompt, il ciclo Python e la politica di revisione necessari per generare diapositive per lezioni programmaticamente per un intero dipartimento, in tutte le lingue insegnate dal programma.

About 2Slides

Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.

Try For Free