PodcastMetadataGenerator 0.0.1
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet tool install --global PodcastMetadataGenerator --version 0.0.1
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
dotnet tool install --local PodcastMetadataGenerator --version 0.0.1
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=PodcastMetadataGenerator&version=0.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package PodcastMetadataGenerator --version 0.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
🎙️ Podcast Metadata Generator
Generate podcast metadata (titles, descriptions, chapters, SRT subtitles) from transcripts using AI powered by the GitHub Copilot SDK.
✨ Features
- 🎯 Title Generation - Get multiple creative title suggestions for your episode
- 📝 Description Generation - Create short, medium, and long descriptions optimized for different platforms
- 📑 Chapter Generation - Auto-generate YouTube-compatible chapter markers with timestamps
- 🎬 SRT Conversion - Convert transcripts to valid SRT subtitle format
- 🔄 Multiple Transcript Formats - Support for Zencastr, time-range, SRT formats, and plain text
- 📂 File Browser - Built-in file browser or drag-and-drop support
- ⚡ Streaming Responses - Watch AI responses generate in real-time
- 🤖 Model Selection - Choose from multiple AI models (GPT-5, Claude, Gemini)
- ⚙️ Configurable Settings - Customize generation parameters and save preferences
📋 Prerequisites
- .NET 10.0 SDK or later
- GitHub Copilot CLI installed and authenticated
Installing GitHub Copilot CLI
# Using GitHub CLI extension
gh extension install github/gh-copilot
# Or via npm
npm install -g @github/copilot-cli
Then authenticate:
copilot
# Type /login and follow the prompts
🚀 Installation
As a .NET Tool (Recommended)
dotnet tool install -g PodcastMetadataGenerator
From Source
git clone https://github.com/jamesmontemagno/podcast-metadata-generator.git
cd podcast-metadata-generator
dotnet build
📖 Usage
Interactive Mode
# If installed as a tool:
podcast-metadata
# Or from source:
dotnet run
With a Transcript File
podcast-metadata /path/to/transcript.txt
# Or from source:
dotnet run -- /path/to/transcript.txt
🎯 Supported Transcript Formats
Zencastr Format
00:00.00 Speaker 1: Hello and welcome to the show.
00:15.50 Speaker 2: Thanks for having me!
Time-Range Format
00:00:00 - 00:00:15
Hello and welcome to the show.
00:00:15 - 00:00:30
Thanks for having me!
SRT Format
1
00:00:00,000 --> 00:00:15,000
Hello and welcome to the show.
2
00:00:15,000 --> 00:00:30,000
Thanks for having me!
Plain Text
Any text file without timestamps will be processed as plain text. Note: Chapter generation and SRT conversion require timestamps.
📁 Output Files
When you save results, the following files are generated:
| File | Description |
|---|---|
titles.txt |
List of generated title suggestions |
description-short.txt |
Short description (~50 words) |
description-medium.txt |
Medium description (~150 words) |
description-long.txt |
Long description (~300 words) |
chapters.txt |
YouTube-compatible chapter markers |
subtitles.srt |
SRT subtitle file |
manifest.json |
JSON manifest with all metadata |
⚙️ Configuration
Access settings from the main menu to configure:
General Settings
- AI Model - Select from available Copilot models (dynamically fetched from CLI)
- Output Directory - Default location for saved files
- Podcast Name - Your podcast name (used in prompts for better context)
- Host Names - Host names (used in prompts)
- Episode Context - Add guest names, topics, or other context to improve generation
Generation Settings
- Title Count - Number of title suggestions to generate (default: 5)
- Title Max Words - Maximum words per title (default: 10)
- Description Lengths - Word counts for short/medium/long descriptions (default: 50/150/300)
- Chapter Range - Min/max chapters to generate (default: 3-12)
- Chapters per 30 min - Target density of chapters (default: 5)
- Chapter Title Words - Max words per chapter title (default: 8)
Settings are automatically saved to ~/.config/podcast-metadata-generator/settings.json.
🏗️ Project Structure
podcast-metadata-generator/
├── Models/
│ ├── AppSettings.cs # Configuration and generation settings
│ ├── GenerationResult.cs # Results container
│ ├── Manifest.cs # JSON manifest structure
│ └── Transcript.cs # Transcript and segment models
├── Services/
│ ├── CopilotAuthService.cs # CLI authentication checks
│ ├── MetadataGenerator.cs # AI generation via Copilot SDK
│ ├── OutputService.cs # File output handling
│ ├── SettingsService.cs # Settings persistence
│ ├── SrtConverter.cs # SRT format conversion
│ └── TranscriptParser.cs # Multi-format transcript parsing
├── Prompts/
│ └── PromptTemplates.cs # AI prompt templates
├── UI/
│ ├── AppWorkflow.cs # Main application workflow
│ └── ConsoleUI.cs # Spectre.Console UI helpers
└── Program.cs # Entry point
🤝 Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- GitHub Copilot SDK for AI integration
- Spectre.Console for the beautiful terminal UI
- Inspired by jamesmontemagno/app-podcast-assistant
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.