The 19-year-old from Dalkeith, who was a runner-up in the TV show Any Dream Will Do, said he was stunned by the offer. He will jet off to Spain to sing for King Juan Carlos and Queen Sophia.
The Spanish royal family were reported to be thrilled that Keith has agreed to perform.