About & Attribution
Methodology, data sources, and credits
Data Source
Methodology
Input Data
The organ hymn list comes from an Allen organ console controller display, which shows 182 built-in hymns by abbreviated name. Each abbreviation was mapped to its full hymn title.
Some hymns have A/B variants (e.g., “Away in a Manger - A” and “Away in a Manger - B”), indicating that the organ has two different tune settings for the same text. In these cases, we search once and present all matching tunes, sorted by prevalence.
Scraping Process
For each of the 182 organ hymns:
- Search — We queried
hymnary.org/search?qu={title}+in%3Atunesto find tune matches. - Tune detail — For each tune found in search results, we fetched the full detail page at
hymnary.org/tune/{slug}. - Parse — We extracted structured metadata using BeautifulSoup (Python) from the HTML:
- Tune title, composer, place of origin
- Meter pattern, melodic incipit, key signature
- Copyright status, number of hymnal appearances
- Associated texts and alternative tune settings
- Historical notes where available
Scraping Ethics
This scraper was designed to be respectful of hymnary.org’s servers:
| Measure | Detail |
|---|---|
| Request delay | 15 seconds between every request (3× their robots.txt Crawl-delay: 5) |
| Caching | All HTML responses cached locally; pages fetched only once |
| Resume support | Pipeline checkpoints after every hymn; interrupted runs pick up seamlessly |
| User-Agent | Clearly identifies this as a personal church project |
| robots.txt | Verified compliance on 7 February 2026; only accesses allowed paths |
Data Files
The processed data is available in the project repository:
data/processed/hymn_tune_index.json— Master index mapping each organ hymn to all associated tunes with full metadatadata/processed/tunes.json— Deduplicated tune dictionary keyed by slugdata/processed/summary.csv— Flat table for easy analysis
Hymn Book Crossover (Coming Soon)
The next phase of this project will cross-reference the organ hymns against the church’s hymn book index to identify which hymns are available on both. Stay tuned.
Technical Stack
- Python 3.12 with uv for package management
- BeautifulSoup4 + lxml for HTML parsing
- Pandas for data processing
- Quarto for website generation
- GitHub Pages for hosting
License
This project is for personal, non-commercial church ministry use. Hymn data copyright belongs to the respective holders as noted in each tune’s metadata on Hymnary.org.
Contact
This project was built to help All Souls Anglican Church music selector identify which built-in Allen organ hymns match the church hymn book. If you have questions or suggestions, please open an issue on the project’s GitHub repository.