Skip to content

marvinjude/gospel-hymns

Repository files navigation

Gospel Hymns & Songs for Developers

Travis CI

Motivation

Several years ago, I became curious about the inner workings of apps, particularly the hymns app frequently used in my church. After exploring the app, I discovered the phone number of the developer and decided to call him to learn more. Despite the explanations he provided, I didn't fully understand them at the time.

Fast forward to 2019, and I am now a software engineer. I have the skills and knowledge to not only build my own apps, but to also empower other developers to do the same. This is a personal accomplishment that I am proud of. 😌😊

Download hymns JSON

This project exposes an API at https://gospel-hymns.onrender.com/api/v1 Demo. You can also download the json file that hold the data for every hymn and use it directly in your project. Download here

Hymns Index

Title Number
All Your Anxiety 1
Come Unto Me 2
Be Still 3
Leave It There 4
Never Give Up 5
Yield Not to Temptation 6
Turn Your Eyes Upon Jesus 7
Blessed Be The Name 8
Great Is Thy Faithfulness 9
For A Thousand tongues to Sing 10
Holy, Holy, Holy 11
Praise Him! Praise Him! jesus our blessed 12
To God Be The Glory 13
How Great Thou Art 14
O Worship The king 15
If God Be For Us 16
Nothing But The Blood 17
Blessed Assurance 18
Christ Jesus Hath the Power 19
The Way, The Truth, The Life 20
Will Your Anchor Hold 21
Simply Trusting Everyday 22
No Other Plea 23
It is well With My Soul 24
Now I Belong to Jesus 25
I Know Whom I Have Believed 26
I Am Bound For Canaan 27
I'm Living in Canaan 28
I Know Who Holds Tomorrow 29
I've Anchored In Jesus 30
He Touched Me 31
Heaven Came Down 32
Since Jesus Came Into my Heart 33
Constantly Abiding 34
A New Name In Glory 35
My Name is Written There 36
When I See The Blood 37
Have You Been to Jesus 38
Power In The Blood 39
Wash Me O Lamb of God 40
Onward Christian Soldiers 41
Close To Thee 42
Trust And Obey 43
Come Over 44
Jesus My Strength 45
A Christian Home 46
Just Obey 47
'Tis So Sweet To Trust 48
Let Others See Jesus in You 49
Count Your Blessings 50
That Blessed Canaan Land 51
Count Me 52
So Send I You 53
I Am Ready For Service 54
Anywhere With Jesus 55
I Love My Master 56
They That Wait Upon the Lord 57
The Last Mile of the Way 58
Little Is Much When God is in It 59
Where Could I Go 60
Lord, Speak to Me That I May Speak 61
Go, Labor On 62
Will There Be Any Stars 63
The Old Rugged Cross 64
O How I Love Jesus 65
Jesus Is The Sweetest Name I Know 66
My Jesus I Love Thee 67
Like A Shepherd Lead us 68
Christ Be Beside Me 69
Have You Any Room For Jesus 70
I Want To See Jesus. Don't you? 71
The Solid Rock 72
Jesus Only Is Our Message 73
The Heart That Was Broken me 74
The Churches, One Foundation 75
In Times Like These 76
I Have Decided To Follow Jesus 77
Faith of Our Fathers 78
The Way of the Cross 79
At The Cross 80
Lead Me To Calvary 81
When I Survey The Wondrous Cross 82
Thy Word Have I Hid in my Heart 83
Deeper, Deeper in the Love of Jesus 84
Give of Your Best To the Master 85
Nothing Between 86
Take My Life 87
Wherever He Leads I'll go 88
O Jesus I have Promised 89
O love that Wilt Not let me Go 90
Where He Leads Me 91
I Surrender All 92
More Love To Thee 93
Draw Me Nearer 94
Draw Me Nearer 95
Peace Be Still 96
Oft In Danger 97
The Song of the Soldier 98
There is Victory Within My Soul 99
Christ, Our Mighty Captain 100
My Father Knows 101
The Healer 102
He Healed Them All 103
Tell Somebody 104
I'll Tell The World 105
Tell The Whole Wide World 106
Go And Tell Them 107
Must I Go And Empty-Handed 108
To The Work 109
Till The Whole World Knows 110
Rescue The Perishing 111
Win Them One By One 112
Go And Tell The Story 113
Brighten The Corner Where You Are 114
Lift Him Up 115
Carry Your Bible 116
Show A Little Bit of Love and Kindness 117
I Love To Tell The Story 118
Do Something For Others 119
Speak A Word 120
Somebody Else Needs Him,Too 121
Somebody Needs Your Love 122
No One Like My Saviour 123
Christ Receiveth Sinful Men 124
Wonderful Grace of Jesus 125
Great God of Wonders 126
Rock of Ages Cleft For Me 127
Victory In Jesus 128
Grace Greater Than Our Sin 129
Just As I Am, Without One Plea 130
In Tenderness He Sought Me 131
Running Over 132
Out of My Bondage 133
And Can It be that I should Gain 134
Tell Me The Old, Old Story 135
At Calvary 136
How Beautiful Heaven must be 137
When We All Get To Heaven 138
Beautiful Home 139
Laying My Treasure Up There 140
I Shall See The King 141
Holy, Holy is what the Angels Sing 142
The End of The Road 143
I Won't Have To Cross Jordan Alone 144
When They Ring The Golden Bells 145
Face to Face 146
Sweet By and By 147
No Tears In Heaven 148
Farther Along 149
Pentecostal Power 150
There Shall Be Showers of Blessing 151
Joys Are Flowing Like A River 152
With Signs Following 153
Give Me A Double Portion 154
Let Jesus Come Into your Heart 155
Room At The Cross-for You 156
Wandering Child O come Home 157
Come Believing 158
Why Do You Wait 159
The Shepherd of Love 160
Who will be the Next 161
Almost Persuaded 162
My God is any hour so Sweet 163
Prayer is The Soul Sincere Desire 164
Guide Me, O Thou Great Jehovah 165
Did You Think To Pray? 166
I Must Tell Jesus 167
I Need Thee Every Hour 168
What A Friend We Have in Jesus 169
Sweet Hour of Prayer 170
Pass Me Not 171
When The Roll is Called up Yonder 172
Is It The Crowning 173
Jesus Is Coming Again 174
He Is Coming Again 175
Christ Returneth 176
Search Me, O God 177
Fill My Cup, Lord 178
Higher Ground 179
Since The Son Hath me Free 180
All Things Are Possible 181
Blessed Are The Pure 182
Come O my God the Promise Seal 183
Saviour From Sin, I wait to Prove 184
The Thing My God Doth Hate 185
God of All Power and Grace 186
Jesus, All Atoning Lamb 187
O Lord, How Happy Should we Be 188
Take Time To Be Holy 189
Called Unto Holiness 190
Come, Holy Ghost All Quickening Fire 191
O For A Heart To Praise my God 192
Another Year 193
O Day Of Rest and Gladness 194
Another Year is Dawning 195
Does Jesus Care 196
Love Found A Way 197
His Love Can Never Fail 198
Resting In His Love 199
The Ninety and Nine 200
Love Lifted Me 201
Wonderful Story of Love 202
There Is No Love Like the Love of Jesus 203
Ye Must Be Born Again 204
Have You Counted the Cost 205
Where Will You Spend Eternity 206
There's A Great Day Coming 207
The Great Judgement Morning 208
I Will Not Forget Thee 209
Open My Eyes That I May See 210
Crown Him with Many Crowns 211
Jesus Shall Reign Whereer The Sun 212
Rejoice The Lord Is King 213
All Hail The Power Of Jesus Name 214
O Happy Day that Fixed My Choice 215
More About Jesus Would I know 216
O Perfect Love, all human thought transcending 217
Lord Divine, All Loves Excelling 218
More Holiness Give Me More Striving Within 219
When I Saw The Cleansing Fountain 220
Let Not Thy Hands Be Slack 221
Speed Thy Servants Savior Speed Them 222
I Gave My Life For Thee 223
Oh, The Bitter Shame and Sorrow 224
Burn, Fire of God 225
Thy Blessed Will Divine 226
Nearer My God to Thee 227
O Why Not Tonight 228
Hold the Fort 229
Bring Your Vessles Not a Few 230
Send The Light 231
Blest Be The Tie That Binds 232
Stand Up, Stand Up For Jesus 233
O Lord, With One Accord 234
The Holy Spirit's Power 235
Lord God, The Holy Ghost 236
Peace, Perfect Peace 237
Peace, Perfect Peace 238
One There is Above All Others 239
Jesus Is The Same Forever 240
I've Found the Pearl Of Greatest Price 241
A Good High Priest is Come 242
Standing On The Promises 243
All Things in Jesus 244
Is Your Life A Channel of Blessing 245
O Brother, Life's Journey Beginning 246
'Tis Finished, The Messiah Dies 247
The Mercy Seat 248
Come Sing the Praise of Jesus 249
For My Sake and The Gosple Go 250
Only Remembered 251
It is morning in my heart 252
My Portion Forever 253
Lower an Lower 254
Let the fire fall 255
Redeemed 256
Jesus Send More Labourere 257
Oh, To Be Like Thee 258
More Like the Master 259
Gracious Spirit, Dwell With me 260

GraphQL

There's also a GraphQL endpoint at https://gospel-hymns.onrender.com/graphql. Checkout the Playground here

Playground

REST API Endpoints

GET - api/v1/hymn/{number} - Get hymn by number

{
  "success": true,
  "data": {
    "number": "2",
    "title": "Come Unto Me",
    "titleWithHymnNumber": "2 Come Unto Me",
    "chorus": "Come unto me; I will give you rest;\nTake My yoke upon you, hear Me and be blest;\nI am meek and lowly, come and trust My might;\nCome, My yoke is easy, and My burden's light.",
    "verses": [
      "Hear the blessed Saviour Calling the oppressed,\n\"O ye heavy laden, come to me and rest;\nCome, no longer tarry, I your load will bear,\nBring Me ev'ry burden, bring me ev'ry care\".",
      "Are you disappointed, wand'ring here and there,\nDragging chains of doubt and loaded down with care?\nDo unholy feelings struggle in your breast?\nBring your case to Jesus, He will give you rest.",
      "Stumbling on the mountains dark with sin and shame, \nStumbling tow'rd the pit of hell's consuming flames,\nBy the pow'rs of sin deluded and oppressed,\nHear the tender Shepherd, \"Come to Me and rest\"",
      "Have you cares of business, cares of pressing debt?\nCares of social life or cares of hope unmet?\nAre you by remorse of sense of guilt depressed,\nCome right to Jesus, He will give you rest.",
      "Have you by temptations often conquered been,\nHas a sense of weakness brought distress within?\nChrist will sanctify you, if you'll claim His best,\nIn the Holy Spirit, He will give you rest."
    ],
    "category": "admonition"
  }
}

GET - api/v1/category/{category} - All hymns in category

{
  "success": true,
  "data": [1, 2, 3, 4, 5, 6]
}

GET- api/v1/category - Get all categories and associated hymns

{
  "admonition": [1, 2, 3, 4, 5, 6],
  "adoration": [214, 8, 249, 211, 9, 11, 14, 241, 212, 15, 10, 12, 213, 13],
  "assurance & confidence": [
    35, 244, 18, 19, 34, 32, 31, 27, 16, 26, 29, 28, 24, 30, 240, 36, 17, 23,
    25, 22, 33, 243, 20, 21
  ],
  "invitation": [162, 158, 155, 228, 156, 160, 157, 161, 159],
  "prayer": [166, 165, 167, 168, 163, 171, 164, 170, 169],
  "rapture": [179, 175, 173, 174, 172],
  "commitment & consecration": [
    80, 95, 84, 94, 78, 85, 76, 77, 92, 81, 216, 93, 227, 86, 89, 90, 210, 87,
    79, 226, 83, 82, 91, 88
  ],
  "warning & judgment": [205, 206, 208, 207, 204],
  "The lord's love and care": [
    196, 198, 109, 218, 197, 201, 199, 200, 203, 202
  ],
  "sanctification": [
    181, 182, 190, 191, 183, 178, 186, 179, 187, 219, 192, 188, 184, 177, 180,
    189, 185
  ],
  "special occasions": [193, 195, 194, 215],
  "blood of jesus": [38, 39, 40, 220, 37],
  "christian service & reward": [55, 62, 54, 56, 59, 61, 53, 58, 57, 63, 60],
  "christian life": [
    46, 232, 44, 52, 50, 42, 223, 245, 45, 47, 49, 41, 217, 51, 43, 4
  ],
  "christ our saviour": [
    69, 70, 71, 66, 73, 67, 65, 239, 68, 75, 74, 64, 72, 238, 247
  ],
  "evangelism": [
    114, 116, 119, 250, 113, 107, 118, 105, 221, 115, 108, 111, 231, 117, 121,
    122, 120, 222, 106, 104, 110, 109, 112
  ],
  "grace & forgiveness": [
    242, 134, 136, 124, 129, 126, 131, 130, 123, 224, 133, 132, 127, 135, 128,
    125
  ],
  "divine healing": [103, 102],
  "conflict & victory": [100, 229, 101, 246, 97, 96, 237, 233, 248, 98, 99],
  "heaven": [139, 146, 149, 142, 137, 144, 141, 140, 148, 147, 143, 138, 145],
  "holyspirit": [230, 225, 154, 152, 236, 234, 150, 150, 235, 151, 153]
}

GET - api/v1/search/{searchTerm} - Search hymn

{
  "success": true,
  "data": [
    {
      "number": "12",
      "title": "Praise Him Praise Him Jesus Our Blessed",
      "titleWithHymnNumber": "12 Praise Him Praise Him Jesus Our Blessed",
      "chorus": false,
      "verses": [
        "Praise Him! Praise Him! Jesus our blessed Redeemer,\nSing, O earth, His wonderful love proclaim;\nHail Him! Hail Him! Highest archangels in glory,\nStrength and honour give to His holy name.\nLike a shepherd, Jesus will guard His children,\nIn His arms He carries them all day long;\nO ye saints that dwell on the mountain of Zion,\nPraise Him! Praise Him! Ever in joyful song.",
        "Praise Him! Praise Him! Jesus our blessed Redeemer,\nHeav'nly portals, loud with hosannas ring;\nJesus, Saviour, reigneth forever and ever,\nCrown Him! Crown Him! Prophet and Priest and King!\nDeath is vanquished! Tell it with joy, ye faithful,\nWhere is now thy victory, boasting grave?\nJesus lives! No longer thy portals are cheerless,\nJesus lives, the mighty and strong to save."
      ],
      "category": "adoration"
    },
    {
      "number": "192",
      "title": "O For A Heart To Praise My God",
      "titleWithHymnNumber": "192 O For A Heart To Praise My God",
      "chorus": false,
      "verses": [
        "O for a heart to praise my God,\na heart from sin set free;\na heart that's sprinkled with the blood\nso freely shed for me:",
        "A humble, lowly, contrite heart,\nbelieving, true, and clean,\nwhich neither life nor death can part\nfrom him that dwells within:",
        "A heart in every thought renewed,\nand full of love divine;\nperfect and right and pure and good —\na copy, Lord, of thine.",
        "Thy nature, gracious Lord, impart,\ncome quickly from above;\nwrite thy new name upon my heart,\nthy new best name of Love."
      ],
      "category": "sanctification"
    },
   ....
  ]
}

API rate limit

The API at https://gospel-hymns.onrender.com/api/v1 is rate limited to 100 API calls/15mins so the API can't be accessed once the API client exceeds that.

How JSON is generated

The database(content/db.json) is just a JSON file generated by parsing each text file in the Hymns directory. Each file represents a hymn. Let's have a look at two of those files for example

Hymn with chorus:

Is there a heart o'er-bound by sorrow?
Is there a life weighed down by care?
Come to the cross--each burden bearing,
All your anxiety--leave it there.

    All your anxiety, all your care,
    Bring to the mercy seat--leave it there;
    Never a burden He cannot bear,
    Never a friend like Jesus.

No other friend so keen to help you,
No other friend so quick to hear;
No other place to leave your burden,
No other one to hear your prayer.

Come then at once--delay no longer!
Heed His entreaty kind and sweet;
You need not fear a disappointment--
You shall find peace at the mercy seat.

Hymn without chorus:

'Tis finished! the Messiah dies,
cut off for sins, but not his own.
Accomplished is the sacrifice,
the great redeeming work is done.

The veil is rent; in Christ alone
the living way to heaven is seen;
the middle wall is broken down,
and all the world may enter in.

'Tis finished! All my guilt and pain,
I want no sacrifice beside;
for me, for me the Lamb is slain;
'tis finished! I am justified.

The reign of sin and death is o'er,
and all may live from sin set free;
Satan hath lost his mortal power;
'tis swallowed up in victory.

You would notice a few patterns from those files

  • Each verse in a hymn is separated with a line
  • Each line in a chorus is preceeded with four lines

Watching for that pattern, a JSON file content/db.json is generated from the hymns. You can take a look of makeDB.js to see how content/db.json is generated. categories.js and sounds.js maps a category to hymn numbers and holds the URL to the sound respectively for each hymn . This is also used while generating content/db.json.

Contributions

If you run in any bug using this please feel free to open an issue or catch me on twitter to make it faster

Sample Application

https://gospelhymns.netlify.app/

Issue

A few sounds are missing!! Yes i know. I'll add them once I get it.

If you find any other issue or some typo in the hymns, you can contact me or edit the associated hymn in the Hymns directory and open a PR. Once merged, a new json file will be generated for use by the API and can also be downloaded here