podcast-ai
v0.0.2
Published
A podcast AI library for generating and managing podcast content.
Maintainers
Readme
🎙️ podcast-ai
Generate podcast-style conversations using AI with just a few lines of code.
This package helps you automatically generate a full podcast script with multiple characters based on a title, description, and duration using Gemini GenAI.
📦 Installation
npm install podcast-ai🚀 Features
- Add and manage multiple podcast characters.
- Generate natural, engaging scripts based on title, description, and duration.
- AI-powered with Google Gemini.
🧠 Requirements
- Gemini API Key (Google GenAI)
⚠️ Important: Store your Gemini API key in an environment variable (e.g., .env file) instead of hardcoding it. This helps keep your credentials safe.
⚠️ Limitations
To ensure faster and more reliable script generation:
- Maximum 5 characters per podcast.
- Podcast duration should not exceed 10 minutes.
Exceeding these limits may lead to delayed responses or incomplete scripts.
✨ Usage
import { Podcast } from "podcast-ai";
const podcast = new Podcast(
"The Future of AI",
"A discussion between experts on how AI will shape the next decade.",
10 // Duration in minutes (max 10)
);
// Add characters (max 5)
podcast.addCharacter({
name: "Alice",
role: "AI Researcher",
voice: "calm and insightful"
});
podcast.addCharacter({
name: "Bob",
role: "Tech Journalist",
voice: "curious and skeptical"
});
// Generate the script
(async () => {
const apiKey = process.env.GEMINI_API_KEY as string; // Recommended
const script = await podcast.generateScript(apiKey);
console.log(script);
})();👥 Character Structure
{
name: string; // Required
role: string; // Required
voice?: string; // Optional (used for tone guidance)
}📘 API
new Podcast(title, description, duration)
Create a new podcast instance.
addCharacter(character: Character)
Add a character to the podcast. It throws an error if the name or role is missing.
removeCharacter(name: string)
Remove a character by name.
generateScript(apiKey: string)
Generates and returns the podcast script based on the current configuration.
❗ Error Handling
- Throws if:
- No API key is provided
- Character name or role is missing
- Character not found when removing
- AI generation fails
📄 License
MIT
💡 Author
Built with ❤️ by Shiv Baran Singh
