A method comprising: receiving at a client computer (e.g. 122), a first URL list that includes a URL for a first server computer (e.g., 136) at a first site (e.g., 146) having a plurality of server computers (136, 137) and a URL for a second server computer (e.g., 138) at a second site, the first URL list being for one or more first bitrate files on each of the first and second server computers; requesting first data from a said first bitrate file at the first server computer; receiving said first data streamed from said bitrate file at the first server computer at the first site; computing a first throughput estimate by collecting first throughput data for the first site based on a first throughput of the first data that is streamed from the first server computer; associating the first throughput estimate with the first site; receiving second data that is streamed from a said first bitrate file at the second server computer at the second site; computing a second throughput estimate by collecting second throughput data for the second site based on a second throughput of the second data that is streamed from the second server computer; associating the second throughput estimate with the second site; receiving at the client computer, a second URL list that includes a URL for the second server computer at the second site and a URL for a third server computer (e.g., 137) at the first site, the second URL list being for one or more second bitrate files on each of the second and third server computers; requesting third data from a said second bitrate file at the second server computer without attempting to download data from a said second bitrate file at the third server computer at the first site, based on a comparison between the first throughput estimate associated with the first site and the second throughput estimate associated with the second site; wherein the method is performed by one or more special-purpose computing devices. receiving at a client computer (e.g. 122), a first URL list that includes a URL for a first server computer (e.g., 136) at a first site (e.g., 146) having a plurality of server computers (136, 137) and a URL for a second server computer (e.g., 138) at a second site, the first URL list being for one or more first bitrate files on each of the first and second server computers; requesting first data from a said first bitrate file at the first server computer; receiving said first data streamed from said bitrate file at the first server computer at the first site; computing a first throughput estimate by collecting first throughput data for the first site based on a first throughput of the first data that is streamed from the first server computer; associating the first throughput estimate with the first site; receiving second data that is streamed from a said first bitrate file at the second server computer at the second site; computing a second throughput estimate by collecting second throughput data for the second site based on a second throughput of the second data that is streamed from the second server computer; associating the second throughput estimate with the second site; receiving at the client computer, a second URL list that includes a URL for the second server computer at the second site and a URL for a third server computer (e.g., 137) at the first site, the second URL list being for one or more second bitrate files on each of the second and third server computers; requesting third data from a said second bitrate file at the second server computer without attempting to download data from a said second bitrate file at the third server computer at the first site, based on a comparison between the first throughput estimate associated with the first site and the second throughput estimate associated with the second site; wherein the method is performed by one or more special-purpose computing devices.