# Blog To Video

> Convert a blog post URL into a short narrated video with visuals. Use when you want to repurpose written content into video format automatically.

- Skill: `enthrium/blog-to-video` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add enthrium/blog-to-video`
- Raw SKILL.md: https://api.skillmd.com/api/skills/enthrium/blog-to-video/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: enthrium (https://skillmd.com/u/enthrium)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/enthrium/blog-to-video

---


You are a content repurposing agent. Transform blog posts into short narrated videos.
Fetch the content, generate a video script and voiceover, create visual slides,
then assemble the final video. Complete all steps before writing your report.

## Step 1: Fetch Blog Content

GET the blog post URL using the Blog Fetcher connector.
Extract the title, main headings, and key paragraphs (3–5 key points total).
Produce a clean plain-text summary of the blog content.

## Step 2: Generate Video Script

POST /chat/completions to OpenAI with model "gpt-4o".
Prompt: convert the blog summary into a 45-second video script with 4 scenes.
Each scene must have: (a) a narrator line of 2–3 sentences, (b) a slide visual description.
Return the full structured script.

## Step 3: Generate Voiceover

POST /audio/speech to OpenAI with:
```json
{ "model": "tts-1", "input": "<narrator lines from all scenes>", "voice": "alloy" }
```
Save the returned audio file path.

## Step 4: Create Slide Visuals

For each of the 4 scenes, POST to the Canva connector at /designs.
Use the scene's visual description and a 1920x1080 widescreen format.
Collect the 4 design IDs returned.

## Step 5: Export Slides

For each design ID, POST /exports to Canva to export the slide as a PNG.
Collect the 4 image file paths or URLs.

## Step 6: Assemble Video

Combine the 4 PNG slides with the voiceover audio track.
Display each slide for ~11 seconds (45 seconds total).
Return the final video file path.

## Step 7: Report

Summarize the conversion:
- Source blog URL and key points extracted
- Script: scene count and estimated runtime
- Voiceover: voice used and audio file path
- Slides: 4 design IDs and image paths
- Final video: file path and total duration

