技能详情(站内镜像,无评论)
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v1.0.11
统计:⭐ 2 · 846 · 5 current installs · 5 all-time installs
⭐ 2
安装量(当前) 5
🛡 VirusTotal :良性 · OpenClaw :良性
Package:ai-podcast
安全扫描(ClawHub)
- VirusTotal :良性
- OpenClaw :良性
OpenClaw 评估
The skill's requirements and runtime instructions are consistent with its stated purpose of creating podcasts via the MagicPodcast API and do not request unrelated credentials or perform unexpected system access.
目的
Name/description match the declared requirements: curl + jq and MAGICPODCAST_API_URL / MAGICPODCAST_API_KEY are exactly what's needed to call the MagicPodcast REST API. No unrelated binaries, credentials, or config paths are requested.
说明范围
SKILL.md guides the agent to collect topic/source/language, validate inputs, and call clearly documented API endpoints on MAGICPODCAST_API_URL with the API key. It does not instruct reading unrelated files or exfiltrating other system data; it warns users not to send sensitive documents.
安装机制
Instruction-only skill with no install spec and no code files — nothing is written to disk or downloaded during install, which is the lowest-risk pattern.
证书
Only two env vars are required (API base URL and API key), which are proportionate to a REST-API integration. Note: the API key grants the service access to the user's MagicPodcast account and any content sent to the service.
持久
always is false and no system config paths are requested. The skill does not request permanent system presence or modify other skill settings.
综合结论
This skill appears to do what it claims, but remember: (1) The MAGICPODCAST_API_KEY you provide is a credential that allows the service to act on your MagicPodcast account and see any content you upload — do not use a key tied to sensitive production data. (2) If you upload a local PDF you may need to put it at a publicly reachable URL; avoid making sensitive documents publicly accessible. (3) Verify MAGICPODCAST_API_URL points to the official…
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「Podcast Generation from PDF, Text, and Links」。简介:Generate AI podcast episodes from PDFs, text, notes, and links using MagicPodca…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/mogens9/ai-podcast/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: ai-podcast
description: Generate AI podcast episodes from PDFs, text, notes, and links using MagicPodcast in OpenClaw. Creates natural two-person dialogue audio, supports custom language, and returns podcast links with progress tracking in the MagicPodcast dashboard. Use for PDF-to-podcast, text-to-podcast, and fast content-to-audio workflows.
homepage: https://www.magicpodcast.app
metadata: {"clawdbot":{"emoji":"🎙️","requires":{"bins":["curl","jq"],"env":["MAGICPODCAST_API_URL","MAGICPODCAST_API_KEY"]}}}
---
## What this skill does
Magic Podcast turns PDFs, documents, and notes into a natural two-host conversation you can listen to in minutes.
Use MagicPodcast to:
1. Ask what the podcast should be about.
2. Ask for source: PDF URL or pasted text.
3. Ask for podcast language (do not assume).
4. Confirm: `Ok, want me to make a podcast of this "topic/pdf" in "language". Should I do it?`
5. Create a two-person dialogue podcast from that exact source.
6. Immediately return `https://www.magicpodcast.app/app` so user can open their podcast dashboard.
7. Check status only when user asks.
8. Return title plus the shareable podcast URL when complete.
## Keywords
ai podcast, podcast, podcast generator, ai podcast generator, pdf to podcast, text to podcast, podcast from pdf, audio podcast, magicpodcast
## Setup
Set required env:
```bash
export MAGICPODCAST_API_URL="https://api.magicpodcast.app"
export MAGICPODCAST_API_KEY="<your_api_key>"
```
Get API key:
https://www.magicpodcast.app/openclaw
## Guided onboarding (one step at a time)
1. Ask one question at a time, then wait for the user's reply before asking the next.
2. If API key is missing or invalid, stop and say:
`It's free to get started, and it takes under a minute. Open https://www.magicpodcast.app/openclaw, sign in with Google, copy your API key, and paste it here.`
3. If user has a local PDF file, ask them to upload it to a reachable URL first.
4. After key is available, continue:
1) topic
2) source (PDF URL or pasted text)
3) language
4) final confirmation before create
## Secure command templates
Never interpolate raw user text directly into shell commands.
Always validate first, then JSON-encode with `jq`.
```bash
safe_job_id() {
printf '%s' "$1" | grep -Eq '^[A-Za-z0-9_-]{8,128}$'
}
safe_http_url() {
printf '%s' "$1" | grep -Eq '^https?://[^[:space:]]+$'
}
```
Create from PDF:
```bash
# Inputs expected from conversation state:
# PDF_URL, LANGUAGE
if ! safe_http_url "$PDF_URL"; then
echo "Invalid PDF URL" >&2
exit 1
fi
payload="$(jq -n --arg pdfUrl "$PDF_URL" --arg language "$LANGUAGE" '{pdfUrl:$pdfUrl,language:$language}')"
curl -sS -X POST "$MAGICPODCAST_API_URL/agent/v1/podcasts/pdf"
-H "Content-Type: application/json"
-H "x-api-key: $MAGICPODCAST_API_KEY"
--data-binary "$payload"
```
Create from text:
```bash
# Inputs expected from conversation state:
# SOURCE_TEXT, LANGUAGE
payload="$(jq -n --arg text "$SOURCE_TEXT" --arg language "$LANGUAGE" '{text:$text,language:$language}')"
curl -sS -X POST "$MAGICPODCAST_API_URL/agent/v1/podcasts/text"
-H "Content-Type: application/json"
-H "x-api-key: $MAGICPODCAST_API_KEY"
--data-binary "$payload"
```
Check job once:
```bash
# Input expected from API response:
# JOB_ID
if ! safe_job_id "$JOB_ID"; then
echo "Invalid job id" >&2
exit 1
fi
curl -sS "$MAGICPODCAST_API_URL/agent/v1/jobs/$JOB_ID"
-H "x-api-key: $MAGICPODCAST_API_KEY"
```
- Signed-in users can generate free podcast.
- Expected generation time is usually 2-5 minutes.
- Right after starting, direct users to `https://www.magicpodcast.app/app`.
- Tell the user this page is their dashboard: they can see created podcasts, live progress/status, and finished episodes.
- Return `outputs.shareUrl` as the default completion link.
- If `outputs.shareUrl` is missing, fall back to `outputs.appUrl`.
- On completion, answer: `Here is your podcast link: <url>`.
- If API returns an error, surface the exact error message and details.
- Warn users not to send sensitive documents unless they approve external processing.
Status checks:
- `statusLabel = "complete"`: return `outputs.shareUrl` (or `outputs.appUrl` as fallback).
- `statusLabel = "failed"`: return error message/details to user.