PodcastMetadataGenerator 0.0.1

There is a newer version of this package available.
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
                    
if you are setting up this repo
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
                    
nuke :add-package PodcastMetadataGenerator --version 0.0.1
                    

🎙️ Podcast Metadata Generator

Generate podcast metadata (titles, descriptions, chapters, SRT subtitles) from transcripts using AI powered by the GitHub Copilot SDK.

.NET License GitHub Copilot

✨ 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

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

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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

Product 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.

Version Downloads Last Updated
1.3.1 102 5/19/2026
1.3.0 106 5/11/2026
1.2.2 115 4/16/2026
1.2.0 118 4/16/2026
1.1.0 117 4/16/2026
1.0.4 108 4/16/2026
1.0.0 144 1/26/2026
0.0.1 250 1/18/2026