martijnlentink / propresenter-custom-bibles

Tutorial to import custom Bibles in ProPresenter
34 stars 13 forks source link

Custom Bible translations in ProPresenter 7

Custom translation in ProPresenter

ProPresenter offers a list of bible translations to use during your services. In Dutch however quite a few translations are missing NBV21 being one of them. After multiple requests to RenewedVision team to add it, they never did. After inspecting the code and file structure of how ProPresenter stores bibles on the disk I leveraged this to create new translations which can be opened an used.

How to automatically

I created a script which automatically downloads a Bible translation from bible.com and converts it to a ProPresenter bible (RVBible format). You can run the script, which will guide you through the steps needed to download and install the bible for ProPresenter.

  1. Go to the releases on GitHub
  2. Download the attached zip file for your platform from the assets section. There is a Windows and a Mac version.
  3. After download, unzip the binary by right clicking to extract
  4. Double click to open and run the executable
  5. It will guide you through the steps. It will prompt for a three letter language code (eng for English, nld for Dutch, deu for German), will ask for the Bible translation you'd like and will then perform the download operation.

[!IMPORTANT] The script currently only has been tested on Windows, Mac OSX and on numerous translations. If you experience any issues with downloading or after bible installation it not working properly, please create a ticket and I'll be happy to help out.

Ad hoc scripts

[!IMPORTANT] The manual ad hoc scripts do not work out of the box and contain hard coded values. I would recommend everyone to use the executables or the bible_import.py script directly!

Prerequisites

Windows

  1. Observe that ProPresenter stores the Bibles on the location %programdata%\RenewedVision\ProPresenter\Bibles, each bible will be stored in a separate folder with a UUID as name.

  2. Run the Python script retrieve_chapters_nbv21.py.
    This will retrieve NBV21 bible chapter by chapter from the website and stores it in JSON format.

    python retrieve_chapters_nbv21.py
  3. Run the script json_to_usx.py
    This will convert the JSON contents to a valid USX book file by merging the different chapter files.

    python json_to_usx.py
  4. Download the 005eb691-c7b9-4f87-84dc-e6afb79e77c5 folder from /Resources in this repository and place it in the the bible directory on you disk

  5. Place the USX files that were generated in the folder 005eb691-c7b9-4f87-84dc-e6afb79e77c5/USX

  6. Update BibleData.proPref file such that it contains an entry for our new translation (By using the translation definition of WARMB).

    InstalledBiblesNew=["6fb4fb55-78a4-43bc-ac6a-076818c7abfc|BB|BasisBijbel|1","005eb691-c7b9-4f87-84dc-e6afb79e77c5|WARMB|Nieuwe Bijbelvertaling 2021|1"];
  7. Reopen ProPresenter

Mac

  1. Observe that ProPresenter stores the Bibles on the location /Library/Application Support/RenewedVision/RVBibles/v2/, each bible will be stored in a ZIP file with extension .rvbible.

  2. Run the Python script retrieve_chapters_nbv21.py.
    This will retrieve NBV21 bible chapter by chapter from the website and stores it in JSON format.

    python retrieve_chapters_nbv21.py
  3. Run the script json_to_usx.py
    This will convert the JSON contents to a valid USX book file by merging the different chapter files.

    python json_to_usx.py
  4. Download the 005eb691-c7b9-4f87-84dc-e6afb79e77c5 folder from /Resources in this repository and place it in the the bible directory on you disk

  5. Place the USX files that were generated in the folder 005eb691-c7b9-4f87-84dc-e6afb79e77c5/USX

  6. Zip the contents of the folder and place it in the directory where the other .rvbible files are. Finally rename it such that it has the extension .rvbible instead of zip,

  7. ProPresenter for Mac should continuously detect new bibles. If this is not the case you can try to restart ProPresenter. Note that incorrect files might cause crashes!

How does this work

ProPresenter enables you to install bibles through their in application store. This store contains many translations of scriptures in various languages, but since it is a closed store managed completely by RenewedVision only translations they add to their store themselves can be bought, installed and used.

After downloading a bible it is stored on the users machine for easy lookup and (offline) use. Installed bibles on a machine are available for all users and is not bound to a single user profile. There is a slight difference in how these bibles are stored between Mac OSX systems and Windows.

On Windows these are stored in a Bibles folder, with an index file BibleData.proRef. This file holds a list of pipe separated bible installations with UUIDs refering to folder names where the contents of the translations are stored.

On Mac the contents of the bibles, which are the files in the UUID folders, are stored in a ZIP file with .rvbible as extension. For Mac there is no index file.

ProPresenter uses bibles stored in the Unified Scripture XML format. This is an open, common format and therefore modifying or extension is possible as there is plenty documentation on this. And with that, it opens up the opportunity for us to sideload different bible translations.

Notes

Folder structure

ProPresenter stores the Bibles on the Windows location %programdata%\RenewedVision\ProPresenter\Bibles, each bible will be stored in a separate folder with a UUID as name. On Mac OSX this is /Library/Application Support/RenewedVision/RVBibles/v2/, each bible will be stored in a ZIP file with extension .rvbible.

│   BibleData.proPref
│
├───818d0d02-fa1e-4038-85f9-bb5fcc65497b | kjv-en.rvbible
│   │   metadata.xml
│   │   rvmetadata.xml
│   │
│   ├───SearchIndex
│   │       segments.gen
│   │       segments_2
│   │       version
│   │       _0.cfs
│   │       _0.cfx
│   │
│   └───USX_1
│           1CH.usx
│           1CO.usx