According to AlphaMoat, as of 2026-09, PPT Audio To Video has 1,889 downloads and 0 stars — ranked #4,503 of 5,078 AI skills overall, and #452 of 512 in Design & Media.
| Platform | Installs | Downloads | Stars | Comments |
|---|---|---|---|---|
| ClawHub ↗ | 20 | 871 | - | - |
| SkillHub ↗ | 451 | 1.9K | - | — |
Platforms count differently and update at different times.
It prepares slide images and text, transcribes audio with whisper-cpp, and aligns slides using topic changes and distinctive keywords before rendering with ffmpeg. It requires the relevant media and PDF tools and a transcription model. Slide durations are not averaged unless explicitly requested; uncertain boundaries are flagged for review, and transcript, outline and timing files support revisions.
Profile published 2026-10-27
Generated from the skill’s documentation as examples; not results of actual runs.
The counting method changed in 2026-09: skills with the same name are now counted separately by author, and the full catalog is covered. Dashed lines show months before the change; they are not compared with later months, and no growth is computed across the change.
| Month | Downloads | MoM | Stars |
|---|---|---|---|
| 2026-09 | 1.9K | — | - |
| 2026-08 | 1.5K | +10.9% | - |
| 2026-07 | 1.3K | +21.6% | - |
| 2026-06 | 1.1K | +11.5% | - |
| 2026-05 | 992 | — | - |
| 2026-03 | 651 | — | - |
The author’s original file, shown as plain text without edits or review by AlphaMoat. Links are not clickable; check commands before running them. Fetched 2026-10-23.
--- name: ppt-audio-to-video description: Convert narration audio plus slide decks into a narrated video. Use when the user has an audio-only `mp4/m4a/mp3/wav` and a `ppt/pptx/pdf` deck, and needs slide images, transcript extraction, slide timing planning, or final `mp4` rendering with `whisper-cpp` and `ffmpeg`. --- # PPT Audio To Video Use this skill when the source video has narration audio but no usable slide visuals, and the final deliverable should be a slide-based lecture video. Resolve bundled scripts relative to this skill directory. If the runtime has already opened this `SKILL.md`, prefer paths like `scripts/extract_slide_outline.py` and `scripts/render_from_timing_csv.py` instead of machine-specific absolute paths.
## Core workflow
1. Inventory inputs.
- Confirm which of these exist: audio-only `mp4/m4a/mp3/wav`, `ppt/pptx`, `pdf`, and any pre-rendered slide images.
- Prefer an existing `pdf` or image directory for rendering. Treat `pptx` as the source of slide text and as a fallback for export.
2. Prepare tools.
- Required for deterministic steps: `ffmpeg`, `ffprobe`, `pdftoppm`.
- Required for transcription: `whisper-cli` from `whisper-cpp` plus a multilingual model such as `ggml-small.bin`.
- If only `pptx` exists and no `pdf/images` exist, prefer `Keynote` or `PowerPoint` export on macOS. Use `soffice` only as fallback because profile or rendering issues are common.
3. Produce slide images.
- If `pdf` exists, render it to images:
```bash
pdftoppm -png -r 200 "$PDF" "$OUTDIR/slide"
```
- If only `pptx` exists, export to `pdf` or slide images with `Keynote` or `PowerPoint`, then continue from `pdf`.
- Keep slide filenames ordered and stable, such as `slide-01.png`, `slide-02.png`, ...
4. Extract slide text.
- Run:
```bash
python3 scripts/extract_slide_outline.py \
--pptx "$PPTX" \
--out "$WORKDIR/slide_outline.csv"
```
- Use the output to identify slide titles, distinctive keywords, and section changes.
5. Extract clean audio for ASR.
- For audio-only `mp4`, extract mono `wav`:
```bash
ffmpeg -y -i "$AUDIO_MP4" -ar 16000 -ac 1 -c:a pcm_s16le "$WORKDIR/audio.wav"
```
- If the source is already `wav/mp3/m4a`, convert to the same mono `wav` form if needed.
6. Transcribe with `whisper-cli`.
- Example:
```bash
whisper-cli -ng \
-m "$MODEL" \
-f "$WORKDIR/audio.wav" \
-l zh \
-ocsv -osrt -of "$WORKDIR/transcript"
```
- Prefer `transcript.csv` for downstream parsing. `transcript.srt` is useful for manual review.
- If GPU allocation fails on macOS, retry with `-ng` to force CPU mode.
7. Build `slide_timings.csv`.
- Do not average slide durations unless the user explicitly asks for it.
- Read the transcript and slide outline together, then create a monotonic timing plan by topic changes, section boundaries, and unique keywords.
- Use this schema:
```csv
slide,start_sec,end_sec,duration_sec,reason
1,0.000,15.000,15.000,opening title and agenda
2,15.000,100.000,85.000,architecture overview starts here
```
- Keep slide numbers sequential and ensure `duration_sec = end_sec - start_sec`.
- Validate that the last `end_sec` matches the audio duration or is within a small tolerance.
8. Render the final video.
- Run:
```bash
python3 scripts/render_from_timing_csv.py \
--images "$SLIDE_IMAGES_DIR" \
--timings "$WORKDIR/slide_timings.csv" \
--audio "$WORKDIR/audio.wav" \
--output "$OUT_VIDEO"
```
- The script generates an `ffconcat` file, validates timing continuity, and calls `ffmpeg` to encode the final `mp4`.
9. Verify and iterate.
- Check output duration with `ffprobe`.
- If a slide cuts too early or too late, edit only the affected rows in `slide_timings.csv` and rerun the render script.
- Keep the transcript, outline, and timing CSV as reproducible working files.
## Heuristics for timing alignment
- Use section-divider slides briefly. These slides usually hold for 5-20 seconds.
- Use the first segment that clearly switches topic as the next slide start.
- Prefer exact topic transitions over title-word matching. ASR often distorts proper nouns and product names.
- Let the model infer timings, but keep the render step deterministic through `slide_timings.csv`.
- When confidence is low, produce a first-cut video and tell the user which slide boundaries likely need review.
## Common commands
Install dependencies on macOS if missing:
```bash
brew install ffmpeg poppler whisper-cpp
```
Typical multilingual model download:
```bash
mkdir -p .models
curl -L 'https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin' -o .models/ggml-small.bin
```
## Bundled scripts
- `scripts/extract_slide_outline.py`
Extract slide text from `pptx` into CSV or JSON for timing analysis.
- `scripts/render_from_timing_csv.py`
Validate a timing CSV, generate an `ffconcat`, and render the final video with `ffmpeg`.
ContextWeave one-shot architecture diagram generation
A script-based skill that generates or edits images with Nano Banana Pro.
Runs the whisper command line to transcribe audio locally.
A skill that generates and edits diagrams through an MCP server.
Design intelligence and implementation guidance for polished interfaces, from layout and flows to tokens and frontend changes.
An AI video generation and orchestration skill across several model APIs.
Pull a frame out of a video with ffmpeg, or produce a thumbnail for a quick look.
Turn audio files into text with local Whisper, running fully offline once the model is downloaded.
Data month: 2026-09 · Downloads, stars and installs are aggregated monthly from public skill registries (ClawHub, SkillHub). See methodology.