S&P indices usually use an adjusted float weighted methodology, in which a change in the index level is defined -- in the base case -- by a Laspeyres index:
$\frac{I + \Delta I}{I} = \frac{\sum_i P_{i,1}*Q_{i,0}}{\sum P_{i,0}*Q_{i,0}} \,; \forall i \in I$
where: $I$ is the index level;
$P_i$ is the price of asset $i$; and,
$Q_i$ is the float adjusted share count of asset $i$.
Please reference this following S&P document for a more robust definition: http://us.spindices.com/documents/methodologies/methodology-index-math.pdf
Total Returns Indices are further defined as follows:
$\frac{I_{TR,t}}{I_{TR,t-1}} = \frac{I_{t-1} + \Delta I_t + \sum_{i,t} (D_{i,t}*Q_{i,t})}{I_{TR,t-1}}$
where: $I_{TR} $ is the total return index level; and, $D_{i,t}$ is the dividend for asset $i$ on dividend ex-date $t$.
Therefore:
$I_{TR,t}- I_t = \sum_0^t \sum_i (D_{i,t}*Q_{i,t}) $
And your intuition about taking the difference between the price and total return versions of the index should be absolutely right on. To calculate the annual yield then should be simple:
$yield = \frac{(I_{TR,t} - I_{TR,t-365})-(I_{t} - I_{t-365})}{I_{TR,t}} \approx \frac{I_{TR,t}}{I_{TR,t-365}} - \frac{I_{t}}{I_{t-365}} $
where now $t$ represents calendar days.
While I realize that indexing methodologies can be very complicated and can vary, I suspect that the above formula for yield will yield a result which is both accurate and robust.