What It Does
- Browses popular podcast picks and reads three playable episode options
- Plays the latest episode from a named podcast
- Searches for a podcast by name and lets the user choose from recent episodes
- Finds specific episodes by guest, topic, or episode title
- Plays a random popular episode immediately for requests like
surprise me - Resolves follow-up references like
the second oneorthe one with Jensen - Streams playable episode audio in music mode
- Handles vague requests with a helpful prompt or a popular-picks flow
- Asks whether the user wants another episode after playback
Supported Requests
| Request type | Example | What happens |
|---|---|---|
| Popular picks | What's trending right now? | Reads three popular playable episodes and asks the user to choose |
| Random episode | Surprise me | Picks a popular playable episode and starts playback |
| Latest episode | Play the latest Lex Fridman episode | Finds the podcast and plays its newest playable episode |
| Podcast search | Play Huberman Lab | Finds the show and reads recent episodes to choose from |
| Episode search | Find the Lex Fridman episode with Jensen Huang | Searches for the matching episode |
| Follow-up choice | The second one | Resolves against the latest spoken options and plays that episode |
| New request | Actually, find me Acquired | Re-enters search from the new request |
| Exit | Stop | Ends the session cleanly |
Example Prompts
- “What’s trending right now?”
- “Play the latest Lex Fridman episode.”
- “Find me the Lex Fridman episode with Jensen Huang.”
- “Play Huberman Lab.”
- “Show me recent episodes from Acquired.”
- “Surprise me.”
- “The second one.”
- “The one with Jensen.”
Example Conversation
User: Play the latest Lex Fridman episode. AI: Let me search for that right now. AI: Here’s number 496, FFmpeg: The Incredible Technology Behind Video on the Internet, from the Lex Fridman Podcast. [plays audio] AI: Want me to find you something else, or are you good for now? User: Stop. AI: Alright, happy listening.
Trigger Phrases
- “podcast player”
- “play a podcast”
- “find a podcast”
- “open podcast player”
- “play the latest [podcast name]“
Data Source
| Source | OpenHome API key name | Role |
|---|---|---|
| Listen Notes Podcast API v2 | listen_notes_api_key | Podcast search, episode search, popular picks, recent episodes, and audio playback URLs |
Setup
This ability calls the Listen Notes Podcast API (v2). You need a free account and an API key.Getting a Listen Notes API Key
- Open the Listen Notes API page.
- Click Get free API key.
- Sign in with Google or create an email account.
- Open the Listen Notes API dashboard.
- Copy the value shown as API Key.
- The free plan includes a monthly request allowance that is enough for light personal use.
Adding the key to OpenHome
In OpenHome Settings -> API Keys, add a new key namedlisten_notes_api_key. Paste your Listen Notes key as the value and save.
Do not hardcode the key in main.py or store it in any prefs/config file.
Follow-up Resolution
After the ability speaks a list of options, you can reply with:- Ordinal — “the first”, “second one”, “third one”
- Descriptor — “the one with Jensen”, “the longer one”, “the new one”
- Re-route — “actually, find me Huberman” → re-enters intent classification
- Exit — “none of those”, “stop”
Listen Notes Endpoints Used
| Endpoint | Used for |
|---|---|
GET /best_podcasts | Trending pool (browse + random) |
GET /search?type=podcast | Resolving a named podcast |
GET /search?type=episode | Episode lookup by title / guest / topic |
GET /podcasts/{id}/episodes | Recent episodes of a selected podcast |
audio URL returned by Listen Notes. If an episode has no playable audio, the ability tells the user and asks for another pick.
Developer Credit
Developed by @Kaushal-205.View on GitHub
Source code for the
podcast-player community ability.
