PodPilot is an AI powered podcast recommendation system designed to help users discover new podcasts based on their preferences.
Link for video: https://www.linkedin.com/feed/update/urn:li:activity:7310988098996207617/
Finding new podcasts that match your interests is often frustrating. Generic recommendations lead to repetitive content, making discovery time-consuming. PodPilot solves this problem by using AI based embeddings and search queries to enhance podcast discovery.
- FastAPI → High performance RESTful API framework
- Uvicorn → ASGI server to run FastAPI
- Postman → API testing
- Azure Container Apps → Cloud hosting
- Docker → Containerized FastAPI app
- GitHub Actions → CI/CD pipeline
- Taddy API → Fetches trending podcasts
- Google Custom Search API → Finds related podcasts
- OpenAI API → Improves text descriptions & generates search prompts
- Requests → Handles API calls
- SQLite → Stores podcasts & user preferences
- SQLAlchemy → ORM- Object Relational Mappe
- Fuzzy Matching (thefuzz) → Improves recommendations
- LangDetect → Detects podcast languages
- Hugging Face Transformers Sentence-BERT (SBERT) → Generates embeddings & Converts text into numerical vectors
- Fetch Podcast Data → Retrieves top podcast series from the Taddy API
- Detect Language → Uses LangDetect to determine language
- Optimize Descriptions → If Hebrew, translates to English via OpenAI GPT
- Generate Embeddings → Converts podcast metadata into vectors using SBERT
- Store Data → Saves podcasts & embeddings in SQLite
- User Identification → User inputs their User ID
- Preference Collection → User likes/dislikes podcasts to train the model
- Search Query Generation → OpenAI GPT generates a Google Search API query
- Find Related Podcasts → Scrapes Google Search API for similar podcasts
- Personalized Recommendations → Embeddings & Fuzzy Matching return the top 3 podcasts
| Method | Endpoint | Description |
|---|---|---|
POST |
/suggest_podcasts |
Suggests random podcasts from DB |
POST |
/process_feedback |
Saves user preferences |
POST |
/generate_search_query |
Creates a search query using OpenAI |
POST |
/search_related_podcasts |
Finds podcasts via Google Search |
POST |
/recommend_podcasts |
Returns the top 3 podcast recommendations |