A powerful automation tool that streamlines the podcast production workflow by automatically generating metadata, converting audio files, and uploading episodes to Podcast Hosting Service podhostapp.com.
- Content-Based Metadata Generation: Uses Claude AI to analyze source content and generate compelling podcast titles and descriptions
- Audio Processing: Automatically converts audio files to MP3 format with optimized settings
- Scheduled Publishing: Set specific dates and times for episode publishing (if host supports)
- Hosting Integration: Seamlessly uploads episodes to your podcast hosting service podhostapp.com
- Timezone Support: Configurable timezone support
- Node.js (v14 or higher)
- FFmpeg installed on your system
- Mac: Install using Homebrew: brew install ffmpeg
- Windows: Download from ffmpeg.org or install using Chocolatey: choco install ffmpeg
 
- Mac: Install using Homebrew: 
- Claude API key from Anthropic
- You've signed up for access to a podcast hosting service that provides API-level access like podhostapp.com
- 
Clone this repository: git clone https://github.com/dougkeefe/podcast-script-automator.git cd podcast-script-automator
- 
Install dependencies: npm install 
- 
Create a .envfile based on the provided.env.SAMPLE:cp .env.SAMPLE .env 
- 
Edit the .envfile with your API keys and configuration:CLAUDE_API_KEY=your_claude_api_key_here HOSTING_API_ENDPOINT=https://xuwhkphkbckhrpvyjfbp.supabase.co/functions/v1/create-episode PODCAST_ID=your_podcast_id_here 
Run the script with the following command:
node script.js <audio_file_path> <content_url> <publish_date> <publish_time>- <audio_file_path>: Path to your audio file (supports various formats, will be converted to MP3)
- <content_url>: URL of the content to base the podcast metadata on
- <publish_date>: Date for publishing the podcast (YYYY-MM-DD format)
- <publish_time>: Time for publishing the podcast (HH:MM format in Atlantic Time)
node script.js ./recordings/episode42.wav "https://example.com/article" "2023-05-15" "10:30"- The script fetches content from the provided URL and converts it to markdown
- Claude AI analyzes the content and generates a title and description
- The audio file is analyzed to determine its duration
- The audio is converted to MP3 format with optimized settings
- The episode is uploaded to your podcast hosting service with the generated metadata
- Detailed logs are provided throughout the process
- CLAUDE_API_KEY: Your API key for Claude AI
- HOSTING_API_ENDPOINT: The API endpoint for your podcast hosting service
- PODCAST_ID: The ID of your podcast on the hosting service
The script uses the following FFmpeg settings for audio conversion:
- Format: MP3
- Audio channels: 2 (stereo)
- Sample rate: 48000 Hz
- Bitrate: 192 kbps
- Metadata: Preserves original metadata
- ID3 tags: Adds ID3v2.3 and ID3v1 tags
You can customize the script by modifying the following:
- Timezone: Change the ATLANTIC_TIMEZONEconstant inscript.jsto your preferred timezone
- AI Prompt: Modify the prompt sent to Claude AI in the generatePodcastMetadatafunction
- Audio Settings: Adjust the FFmpeg settings in the convertAudiofunction
Contributions are welcome! Please feel free to submit a Pull Request.
- 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
This project is licensed under the MIT License - see the LICENSE.md file for details.
If you encounter any issues or have questions, please file an issue on the GitHub repository.