Automated system for processing Claude recordings from Google Drive. This tool:
- Monitors a Google Drive folder for new Claude recordings
- Filters recordings by room ID
- Applies studio-quality audio processing
- Generates AI-powered show notes from transcripts
- Creates segmented episodes from identified conversations
- Organizes all output files automatically
- Google Drive Integration: Automatically monitors a specified folder for new recordings
- Audio Enhancement: Applies professional studio sound processing using FFmpeg
- AI Show Notes: Uses Claude AI to analyze transcripts and generate descriptive show notes
- Smart Segmentation: Identifies Q&A conversations and creates separate episode files
- Minimum Duration Filtering: Only creates episodes for conversations longer than 10 minutes (configurable)
- Automated Organization: Outputs processed files and segmented episodes to separate folders
-
Node.js (v14 or higher)
# Check your version node --version -
FFmpeg (for audio processing)
# macOS brew install ffmpeg # Ubuntu/Debian sudo apt-get install ffmpeg # Windows (using Chocolatey) choco install ffmpeg
-
Google Drive API Credentials
- Go to Google Cloud Console
- Create a new project or select existing one
- Enable Google Drive API
- Create Service Account credentials
- Download the JSON credentials file
- Save it as
config/google-credentials.json
-
Anthropic API Key
- Sign up at Anthropic Console
- Generate an API key
- You'll add this to your
.envfile
-
Clone or navigate to the project directory
cd claude-recording-processor -
Install dependencies
npm install
-
Set up configuration
# Copy the example environment file cp .env.example .env -
Edit the
.envfile with your settings# Open in your editor nano .envRequired settings:
GOOGLE_DRIVE_FOLDER_ID: The ID of your Google Drive folder to monitorGOOGLE_CREDENTIALS_PATH: Path to your Google credentials JSON fileANTHROPIC_API_KEY: Your Claude API keyTARGET_ROOM_ID: The recording room ID to filter
-
Place your Google credentials file
# Save your google-credentials.json to the config folder cp /path/to/your/credentials.json config/google-credentials.json
Edit .env to customize:
# Google Drive API credentials
GOOGLE_DRIVE_FOLDER_ID=your_folder_id_here
GOOGLE_CREDENTIALS_PATH=./config/google-credentials.json
# Claude API
ANTHROPIC_API_KEY=your_anthropic_api_key_here
# Target Recording Room ID
TARGET_ROOM_ID=your_room_id_here
# Processing Options
MIN_SEGMENT_DURATION_MINUTES=10
POLL_INTERVAL_MINUTES=5
# Output Directories
PROCESSED_OUTPUT_DIR=./output/processed
SEGMENTED_OUTPUT_DIR=./output/segmented
TEMP_DIR=./tempThe folder ID is in the URL when you open the folder in Google Drive:
https://drive.google.com/drive/folders/[FOLDER_ID_HERE]
Run the processor continuously to monitor for new recordings:
npm startThe system will:
- Check for new recordings every 5 minutes (configurable)
- Process each new recording automatically
- Continue running until you stop it (Ctrl+C)
Process all new recordings once and exit:
npm run start:onceUseful for:
- Testing your setup
- Running as a scheduled job (cron, etc.)
- Processing a backlog of recordings
Contains the main processed recording with studio sound:
[recording_name]_studio.mp3- Enhanced audio file[recording_name]_show_notes.md- Complete show notes for all conversations
Contains individual episode segments:
episode_1_[conversation_title].mp3- Audio segmentepisode_1_[conversation_title]_show_notes.md- Episode-specific show notes_episodes_summary.md- Overview of all created episodes
- Monitor: Checks Google Drive folder for new files
- Filter: Only processes files from the specified room ID
- Download: Downloads audio and transcript files
- Enhance: Applies studio sound processing to audio
- Analyze: Uses Claude AI to identify conversations and generate show notes
- Segment: Creates separate episode files for Q&A conversations over 10 minutes
- Organize: Saves all output files to appropriate folders
- Cleanup: Removes temporary files
The studio sound processing includes:
- High-pass filter (removes low-frequency rumble)
- Noise reduction
- Dynamic range compression (consistent volume)
- EQ adjustments (voice clarity)
- Loudness normalization (-16 LUFS podcast standard)
- Limiter (prevents clipping)
Claude AI analyzes the transcript to:
- Identify distinct conversations (typically 2-3)
- Determine if conversations are Q&A format
- Extract key topics discussed
- Estimate conversation duration
- Generate descriptive paragraphs for each conversation
Creates individual episodes when:
- Conversation is in Q&A format
- Duration is ≥10 minutes (configurable)
- Has clear topic boundaries
# Verify FFmpeg is installed
ffmpeg -version
# If not installed, install it (see Prerequisites)- Verify your credentials file is in the correct location
- Check that the Google Drive API is enabled in your project
- Ensure the service account has access to the target folder
- Verify your API key is correct in
.env - Check your API quota/limits
- Ensure you have internet connectivity
- Verify the
GOOGLE_DRIVE_FOLDER_IDis correct - Check that files contain the target room ID
- Confirm recordings haven't already been processed (check
temp/processed-files.json)
- Check that conversations are longer than
MIN_SEGMENT_DURATION_MINUTES - Verify conversations are identified as Q&A format in show notes
- Review the console output for filtering messages
Edit .env:
MIN_SEGMENT_DURATION_MINUTES=15 # Now requires 15+ minutesEdit .env:
POLL_INTERVAL_MINUTES=10 # Check every 10 minutes instead of 5Edit src/audioProcessor.js to modify the FFmpeg filters in the applyStudioSound method.
If you want to reprocess a file that was already handled:
- Edit
temp/processed-files.json - Remove the file ID you want to reprocess
- Run the processor again
claude-recording-processor/
├── config/
│ ├── config.js # Configuration loader
│ └── google-credentials.json # Google API credentials
├── src/
│ ├── index.js # Main orchestration
│ ├── driveMonitor.js # Google Drive integration
│ ├── audioProcessor.js # Audio enhancement
│ ├── transcriptProcessor.js # AI show notes generation
│ └── audioSegmenter.js # Episode segmentation
├── output/
│ ├── processed/ # Studio audio & show notes
│ └── segmented/ # Individual episodes
├── temp/ # Temporary files during processing
├── .env # Your configuration
├── .env.example # Configuration template
├── package.json # Node.js dependencies
└── README.md # This file
ISC
For issues or questions:
- Check the troubleshooting section above
- Review console output for error messages
- Verify all prerequisites are installed correctly
- Ensure API credentials are valid and have proper permissions