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 …