Skip to main content
This guide shows you how to convert PowerPoint presentations into dynamic videos with AI-generated animations. Instead of static slide images, the AI analyzes each slide and creates motion graphics — zoom, pan, and fade effects — that bring your slides to life.

What You Will Learn

Animated Slides

AI generates motion graphics for each slide

Multilingual Support

Generate narration in 14 languages

Combined Features

Mix animations with speaker notes and language options

Auto Processing

Automatic animation generation per slide

Before You Begin

Make sure you have:
  • A Pictory API key (get one here)
  • Node.js or Python installed on your machine
  • PowerPoint file accessible via public URL
npm install axios

How Animated Slides Work

When you enable animatePPT:
  1. File Processing - Your PPT file is accessed and parsed
  2. Slide Extraction - Each slide becomes a video scene
  3. AI Analysis - The AI analyzes each slide’s visual content
  4. Animation Generation - Motion graphics prompts are generated per slide (zoom, pan, fade effects)
  5. Narration - Voice-over text is generated (from slide text or speaker notes)
  6. Video Rendering - Final video combines animated slides with narration
The animatePPT option uses AI to generate animation prompts for each slide. This works for slides with image backgrounds. Video-based slides are not animated.

Complete Example — Animated PPT

import axios from "axios";

const API_BASE_URL = "https://api.pictory.ai/pictoryapis";
const API_KEY = "YOUR_API_KEY";

const PPT_URL = "https://pictory-static.pictorycontent.com/sample_ppt.pptx";

async function createAnimatedPptVideo() {
  try {
    console.log("Creating animated video from PowerPoint...");

    const response = await axios.post(
      `${API_BASE_URL}/v2/video/storyboard/render`,
      {
        videoName: "animated_ppt_video",
        scenes: [
          {
            pptUrl: PPT_URL,
            animatePPT: true,            // Enable AI slide animations
          }
        ],
        voiceOver: {
          enabled: true,
          aiVoices: [
            {
              speaker: "Brian",
              speed: 100,
              amplificationLevel: 0,
            },
          ],
        },
      },
      {
        headers: {
          "Content-Type": "application/json",
          Authorization: API_KEY,
        },
      }
    );

    const jobId = response.data.data.jobId;
    console.log("Job ID:", jobId);

    // Poll for completion
    let jobCompleted = false;
    while (!jobCompleted) {
      const statusResponse = await axios.get(
        `${API_BASE_URL}/v1/jobs/${jobId}`,
        { headers: { Authorization: API_KEY } }
      );

      const status = statusResponse.data.data.status;
      console.log("Status:", status);

      if (status === "completed") {
        jobCompleted = true;
        console.log("Video URL:", statusResponse.data.data.videoURL);
      } else if (status === "failed") {
        throw new Error("Video creation failed");
      }

      await new Promise(resolve => setTimeout(resolve, 10000));
    }
  } catch (error) {
    console.error("Error:", error.response?.data || error.message);
    throw error;
  }
}

createAnimatedPptVideo();

Multilingual PPT Video — Translate Decks at Render Time

You do not need to translate your PowerPoint deck before submitting it. Pass the language field with a target language code and Pictory generates the narration directly in that language, reading from your original slide text or speaker notes. One source deck can ship as videos in 14 different languages without you maintaining translated copies.
Use the top-level language parameter to render the video in a language different from the one your deck is written in. The AI reads each slide (or speaker notes, if useSpeakerNotes: true) and generates narration directly in the target language — translation happens at render time. Example: the request below submits an English-language PowerPoint deck but produces a German video.
{
  videoName: "german_ppt_video",
  language: "de",                        // Generate narration in German
                                         // (even if the deck is in English)
  scenes: [
    {
      pptUrl: "https://storage.example.com/presentation.pptx",
      animatePPT: true                   // Optional: add animations
    }
  ],
  voiceOver: {
    enabled: true,
    aiVoices: [{
      speaker: "Wilbur",                 // Default German voice
      speed: 100,
      amplificationLevel: 0
    }]
  }
}
To ship the same deck in multiple languages, submit one render request per target language with the same pptUrl and a different language value. Each render is independent — you can fan them out in parallel from your code.

Supported Languages

CodeLanguage
enEnglish (default)
zhChinese
nlDutch
frFrench
deGerman
hiHindi
itItalian
jaJapanese
koKorean
mrMarathi
ptPortuguese
ruRussian
esSpanish
taTamil

Understanding the Parameters

Main Request Parameters

ParameterTypeRequiredDescription
videoNamestringYesA descriptive name for your video project
languagestringNoLanguage for AI-generated narration. Default: en
scenesarrayYesArray of scene objects
voiceOverobjectNoVoice-over configuration

Scene Parameters

ParameterTypeRequiredDescription
pptUrlstringYesPublic URL to the PowerPoint file
animatePPTbooleanNoEnable AI-generated slide animations. Only valid with pptUrl. Default: false
useSpeakerNotesbooleanNoUse speaker notes for narration instead of slide text. Only valid with pptUrl. Default: false

Common Use Cases

Animated with Speaker Notes

{
  videoName: "animated_with_notes",
  scenes: [{
    pptUrl: "https://storage.example.com/visual-deck.pptx",
    animatePPT: true,
    useSpeakerNotes: true
  }],
  voiceOver: {
    enabled: true,
    aiVoices: [{
      speaker: "Emma",
      speed: 100,
      amplificationLevel: 0
    }]
  }
}
Result: Animated slides with narration from speaker notes. The AI generates animation prompts while using your speaker notes for the voice-over.

Multilingual Animated Presentation

{
  videoName: "french_animated_ppt",
  language: "fr",
  scenes: [{
    pptUrl: "https://storage.example.com/product-deck.pptx",
    animatePPT: true
  }],
  voiceOver: {
    enabled: true,
    aiVoices: [{
      speaker: "Celine",
      speed: 100,
      amplificationLevel: 0
    }]
  }
}
Result: The AI reads your slides and generates French narration with animated slide transitions.

Japanese Training Video

{
  videoName: "japanese_training",
  language: "ja",
  scenes: [{
    pptUrl: "https://storage.example.com/training.pptx",
    useSpeakerNotes: true
  }],
  voiceOver: {
    enabled: true,
    aiVoices: [{
      speaker: "Mizuki",
      speed: 95,
      amplificationLevel: 0
    }]
  }
}
Result: Training video with Japanese narration generated from speaker notes.

Feature Combinations

animatePPTuseSpeakerNoteslanguageBehavior
falsefalseenStandard PPT to video — slide text used as-is for narration
falsetrueenSpeaker notes used for narration, no animations
truefalseenAI generates animations + uses slide text for narration
truetrueenAI generates animations only, speaker notes used for narration
falsefalsedeAI generates German narration from slide content
truefalsedeAI generates German narration + slide animations
truetruedeAI generates animations, speaker notes used for narration
When both animatePPT and useSpeakerNotes are true, the AI focuses on generating animation prompts and uses your speaker notes as the narration source rather than generating new text.

Best Practices

Get the most out of AI animations:
  • Clear Visual Layout: Simple, well-structured slides produce better animations
  • High Quality Images: Use high-resolution images for smooth motion effects
  • Minimal Text Overlay: Slides with large visuals animate more effectively
  • Consistent Design: Similar slide designs produce cohesive animation styles
Match your voice to the language:
  • Use language-native AI voices for the best pronunciation
  • Browse available voices with the Get Voiceover Tracks API
  • Test with a short presentation before converting a full deck
  • Adjust voice speed for the target language (some languages are naturally faster/slower)
animatePPT works best for:
  • Image-heavy slides: Photos, charts, and diagrams come alive with motion
  • Marketing presentations: Add visual energy to product decks
  • Social media content: Animated slides are more engaging for short-form video
  • Training materials: Motion helps maintain viewer attention
Skip animations for:
  • Text-heavy slides: Motion can distract from reading
  • Data tables: Complex tables are better shown static
  • Short presentations: 2–3 slides may not benefit much from animation

Next Steps

Standard PPT Narration

Basic PowerPoint to video conversion

Speaker Notes

Use speaker notes for narration

Background Music

Add music to your presentation video

Brand Settings

Apply consistent branding

API Reference

For complete technical details, see: