A modern desktop Tkinter app designed to search, discover, download, and convert Bible translations into standard OpenSong XML files ready for instant import into FreeShow, Lyric Display, OpenSong, and other lyrics & scripture projection software.
Powered by bible_translation_finder (btf / btm, currently pinned to ==0.3.1 in requirements.txt).
- Windows (recommended): download
bible-xml-manager.exefrom the latest Release (built by GitHub Actions on everyv*tag), double-click to run. No Python needed. Alternatively run from source withrun.bat. - macOS / Linux: automated PyInstaller binaries are built as best-effort CI artifacts on every push (see the
Buildworkflow run), but the supported path is running from source via the script — Tk theming, file dialogs, andxdg-open/openfolder integration behave better that way. Nothing personal, native packaging for Tk is just fragile.
- Multi-Source Translation Search:
- 📁 Local on Laptop: Automatically discovers Bible XML files stored on your laptop (such as in
~/Downloads,~/.local/share/bible-translation-finder, and~/projects/bible-translations). - 📚 Curated Catalog: 98 popular translations (KJV, WEB, ASV, BBE, etc.) with instant offline metadata and download URLs.
- ☁ eBible.org Live Catalog: Real-time access to 1,500+ global translations across hundreds of languages.
- 📁 Local on Laptop: Automatically discovers Bible XML files stored on your laptop (such as in
- One-Click Format Conversion:
- Automatically converts local Zefania XML Bibles (e.g.
esv.xml,NASB.xml,NKJV.xml,NLT.xml,MSG.xml,AMP_2001.xml) into clean, compliant OpenSong XML (<bible><b n="Genesis"><c n="1"><v n="1">...).
- Automatically converts local Zefania XML Bibles (e.g.
- FreeShow & Lyric Display Compatibility:
- Ensures proper
<b n="BookName">naming convention required by FreeShow's scripture detector.
- Ensures proper
- Logical File Management:
- Shows the exact filesystem path where the XML file is saved (default:
~/.local/share/bible-translation-finder). - 📋 Copy Path: Instantly copy the XML path to clipboard to paste into presentation software.
- 📂 Reveal in Folder: Directly open the folder in your system file manager (
xdg-openon Linux,openon macOS, Explorer on Windows). - 💾 Export As: Save an OpenSong XML copy directly to any folder of your choice.
- Shows the exact filesystem path where the XML file is saved (default:
- Integrated Scripture Previewer:
- Read and verify verses and chapters (e.g.,
John 3:16,Genesis 1:1-5,Psalm 23) directly inside the app before importing.
- Read and verify verses and chapters (e.g.,
Requires Python 3.10+ with Tkinter.
pip install -r requirements.txtLaunch the app:
Linux / macOS (preferred method):
./run.shOr using python:
python3 main.pyWindows:
run.batOr:
py main.pyrun.sh / run.bat just launch main.py with the nearest Python — no build step required.
All Bible search, download, conversion, and passage-parsing logic lives in the bible_translation_finder PyPI package (import btf / import btm). This repo contains only the Tkinter GUI (main.py, ui_theme.py, bible_manager.py thin wrapper).
Update policy:
- The GUI pins the backend in
requirements.txt(bible-translation-finder==0.3.1) so CI builds and user installs are reproducible. - To pick up a new backend release: bump the pin, then smoke-test passage preview (
John 3:16), a curated download, and a local Zefania conversion before tagging a GUI release. - The smoke job in
.github/workflows/build.ymlinstallsrequirements.txtfresh and verifiesbible_managerstill imports against the pinned backend — so a breaking backend change fails fast in CI, not on a user's laptop. - Deliberately not vendored or git-submoduled: the backend ships on PyPI and evolves independently; the GUI just consumes it.
- In FreeShow, click the Bibles / Scripture icon on the left navigation bar.
- Click + or Import.
- Select OpenSong format.
- Select the
.xmlfile path provided by this app (or paste the copied path).
- Open Lyric Display or OpenSong.
- Select Import Bibles -> OpenSong XML.
- Choose the generated
.xmlfile.
MIT — see LICENSE.