The procedure you have specified in your last paragraph is the only reasonable way to do it. Clearly the cap volatility is some sort of weighted average of the constituent caplet volatilities, but the weighting is complex , having strike dependence as well as maturity dependence.

Only top voted, non community-wiki answers of a minimum length are eligible