Skip to content

neelabalan/podcast-search

Repository files navigation

podcast search

recording.gif


Meilisearch is a search engine written in Rust, has RESTful API for interaction and it's pretty fast! The builtin React UI is used here as such without any modification.

The podcast feed is in XML and need to be converted to JSON which the Meilisearch understands. I had to modify podcastutil a little bit here for the conversion.

There are four podcast URLs added in the podcasts.opml file. The documents.json file gives an idea of how the document looks like.

<outline text="feeds">
    <outline type="rss" text="good news podcast" xmlUrl="https://feeds.transistor.fm/the-good-news-podcast" />
    <outline type="rss" text="daily tech news show" xmlUrl="http://feeds.feedburner.com/DailyTechNewsShow" />
    <outline type="rss" text="tim ferris show" xmlUrl="https://rss.art19.com/tim-ferriss-show" />
    <outline type="rss" text="lex friedman" xmlUrl="https://lexfridman.com/feed/podcast/" />
</outline>

How to run?

with docker-compose

# clone the repo
# change directory to the folder
docker-compose build 
docker-compose up

dockerless

curl -L https://install.meilisearch.com | sh

./meilisearch

# change URL in fetch_and_load_documents.py 
# from
# URL = 'http://meilisearch:7700'
# to
# URL = 'http://localhost:7700'

git clone https://github.com/neelabalan/podcast-search.git
cd podcast-search

# pass the OPML export file path as argument
python fetch_and_load_documents.py podcasts.opml

About

Search all episodes in a podcast

Topics

Resources

Stars

Watchers

Forks