Skip to content

feat(pplx-ext): add TTS download plugin for messages and conversations#153

Open
jords1755 wants to merge 5 commits intopnd280:nxtfrom
jords1755:feat/tts-download-plugin
Open

feat(pplx-ext): add TTS download plugin for messages and conversations#153
jords1755 wants to merge 5 commits intopnd280:nxtfrom
jords1755:feat/tts-download-plugin

Conversation

@jords1755
Copy link

Add a new plugin that allows users to download individual messages or entire conversations as audio files using Perplexity's text-to-speech API.

Features:

  • Download individual messages as WAV audio files
  • Download entire conversations as a single concatenated audio file
  • Support for 4 TTS voices: Mike, Alex, Kate, Mary
  • Progress indicator for multi-message downloads
  • Integration with message action buttons and navbar

Technical implementation:

  • Uses WebSocket communication with Perplexity's voice_over API
  • Real-time audio chunk streaming and collection
  • WAV encoding with proper RIFF headers (48kHz, 16-bit PCM, mono)
  • File System Access API support for Chrome with fallback
  • Proper error handling and user cancellation support

Changes to download-file utility:

  • Add support for ArrayBuffer data (required for binary audio)
  • Add audio/wav MIME type handling
  • Add optional useFilePicker parameter for explicit control
  • Improve error handling to propagate cancellation to callers

jords1755 and others added 5 commits January 2, 2026 03:44
Add a new plugin that allows users to download individual messages or entire conversations as audio files using Perplexity's text-to-speech API.

Features:
- Download individual messages as WAV audio files
- Download entire conversations as a single concatenated audio file
- Support for 4 TTS voices: Mike, Alex, Kate, Mary
- Progress indicator for multi-message downloads
- Integration with message action buttons and navbar

Technical implementation:
- Uses WebSocket communication with Perplexity's voice_over API
- Real-time audio chunk streaming and collection
- WAV encoding with proper RIFF headers (48kHz, 16-bit PCM, mono)
- File System Access API support for Chrome with fallback
- Proper error handling and user cancellation support

Changes to download-file utility:
- Add support for ArrayBuffer data (required for binary audio)
- Add audio/wav MIME type handling
- Add optional useFilePicker parameter for explicit control
- Improve error handling to propagate cancellation to callers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: jordan.mcnamara7 <jordan.mcnamara7@studytafensw.edu.au>
Co-authored-by: jordan.mcnamara7 <jordan.mcnamara7@studytafensw.edu.au>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants