Search thousands of Amharic gospel lyrics, bilingual, mobile-friendly, always up to date
# π΅ αααα Search β WikiMezmur Lyrics App
A clean, bilingual (Amharic + English) lyrics search app powered **live** from WikiMezmur.org via its MediaWiki API. Any new song added to the wiki appears in the app automatically β no rebuilds needed.
---
## β¨ Features
| Feature | Detail |
|---|---|
| π Search | Full-text search in Amharic or English |
| π€ Filter by | All / Song Title / Singer |
| π Lyrics view | Full lyrics stripped of wiki markup |
| β± Live data | Cached 5 min; always fresh from WikiMezmur |
| π± Mobile-friendly | Responsive layout, large Ethiopic font |
| π¨ Designed for | Ethiopian gospel / worship context |
---
## π Deploy to Streamlit Community Cloud (Free)
### 1. Push to GitHub
```bash
# Create a new repo on GitHub, then:
git init
git add .
git commit -m "Initial commit β Mezmur Search App"
git remote add origin
github.com
git push -u origin main
```
### 2. Deploy on Streamlit Cloud
1. Go to **share.streamlit.io** and sign in with GitHub
2. Click **"New app"**
3. Select your repo β branch `main` β file `app.py`
4. Click **Deploy** β done! You'll get a public URL like:
`
your-app-name.streamlit.app`
> No API keys needed. The WikiMezmur API is public.
---
## π₯ Run Locally
```bash
pip install -r requirements.txt
streamlit run app.py
```
Open
localhost
---
## π Project Structure
```
mezmur-app/
βββ app.py # Main Streamlit application
βββ requirements.txt # Python dependencies
βββ .streamlit/
β βββ config.toml # Theme + server config
βββ README.md
```
---
## π How the Live Data Works
The app calls the **MediaWiki API** at `
wikimezmur.org`:
| Action | API call |
|---|---|
| Search songs | `?action=query&list=search&srsearch=...` |
| Get lyrics | `?action=query&prop=revisions&titles=...` |
| Recent updates | `?action=query&list=recentchanges` |
Results are cached for **5 minutes** with `@st.cache_data(ttl=300)`. The "Recently Added" feed o β¦