A method for downloading, in parallel, a digital content file using a plurality of network connections, the method comprising: receiving a list of one or more content servers hosting a copy of the digital content file; establishing the plurality of network connections with the one or more content servers; receiving metadata describing a plurality of sequential portions of the digital content file; each time one of the network connections is determined to be idle, selecting one of the portions of the digital content file to be downloaded over the idle network connection and downloading the selected portion from the content server using the idle network connection, wherein selecting one of the portions of the digital content file to be downloaded over the idle network connection comprises: predicting a first time required to download a next sequential portion of the digital content file; predicting at least a second time required for each active network connection to complete downloading one of the portions of the digital content file and to complete downloading the next sequential portion; tentatively assigning the next sequential portion to be downloaded using the network connection with the lowest predicted time; in response to determining the tentative assignment has been made to the idle network connection, confirming the tentative assignment; and in response to determining the tentative assignment has not been made to the idle network connection, repeating the predicting and tentatively assigning steps using a second next sequential portion until a portion of the digital content file is assigned to the idle network connection; storing each downloaded portion of the digital content in a content buffer; and playing back the portions of content downloaded and stored in the content buffer. receiving a list of one or more content servers hosting a copy of the digital content file; establishing the plurality of network connections with the one or more content servers; receiving metadata describing a plurality of sequential portions of the digital content file; each time one of the network connections is determined to be idle, selecting one of the portions of the digital content file to be downloaded over the idle network connection and downloading the selected portion from the content server using the idle network connection, wherein selecting one of the portions of the digital content file to be downloaded over the idle network connection comprises: predicting a first time required to download a next sequential portion of the digital content file; predicting at least a second time required for each active network connection to complete downloading one of the portions of the digital content file and to complete downloading the next sequential portion; tentatively assigning the next sequential portion to be downloaded using the network connection with the lowest predicted time; in response to determining the tentative assignment has been made to the idle network connection, confirming the tentative assignment; and in response to determining the tentative assignment has not been made to the idle network connection, repeating the predicting and tentatively assigning steps using a second next sequential portion until a portion of the digital content file is assigned to the idle network connection; predicting a first time required to download a next sequential portion of the digital content file; predicting at least a second time required for each active network connection to complete downloading one of the portions of the digital content file and to complete downloading the next sequential portion; tentatively assigning the next sequential portion to be downloaded using the network connection with the lowest predicted time; in response to determining the tentative assignment has been made to the idle network connection, confirming the tentative assignment; and in response to determining the tentative assignment has not been made to the idle network connection, repeating the predicting and tentatively assigning steps using a second next sequential portion until a portion of the digital content file is assigned to the idle network connection; storing each downloaded portion of the digital content in a content buffer; and playing back the portions of content downloaded and stored in the content buffer.