A method for adaptively downloading digital video content, the method comprising: receiving, by a content player device from a server, a scene complexity map associated with the digital video content and specifying a complexity level associated with one or more portions of the digital video content; identifying a plurality of encoded video streams associated with the digital video content, wherein each encoded video stream is associated with a different bit rate and includes an encoded portion encoded to the different bit rate for each of the one or more portions of the digital video content; computing, by the content player device, for bandwidth available for downloading the digital video content over one or more time windows, an estimated bit rate of the bandwidth for a first future time window based on one or more samples of actual bit rates of the bandwidth during one or more previous time windows, wherein the first future time window is one of the one or more time windows; computing, by the content player device, a bandwidth variability value for the first future time window based on the one or more samples of actual bit rates of the bandwidth and the estimated bit rate of the bandwidth; determining, by the content player device based on the scene complexity map, a first complexity level associated with a first future portion of the digital video content and a second complexity level associated with a second future portion of the digital video content, wherein the first and second future portions of the digital video content correspond to different portions of the digital video content; selecting, during playback of a different portion of the digital video content, a first encoded video stream included in the plurality of encoded video streams from which to download a first encoded portion corresponding to the first future portion of the digital video content, wherein the selecting is based on a bit rate of the first encoded video stream, the estimated bit rate of the bandwidth, the bandwidth variability, the first complexity level, and the second complexity level; selecting a second encoded video stream included in the plurality of encoded video streams from which to download a second encoded portion corresponding to the second future portion of the digital video content based on a bit rate of the second encoded video stream, the estimated bit rate of the bandwidth, the bandwidth variability, the first complexity level, and the second complexity level; and downloading in the first future time window for playback the first encoded portion from the first encoded video stream to a content buffer residing within the content player device, and during the first future time window downloading the second encoded portion corresponding to the second future portion of digital video content. receiving, by a content player device from a server, a scene complexity map associated with the digital video content and specifying a complexity level associated with one or more portions of the digital video content; identifying a plurality of encoded video streams associated with the digital video content, wherein each encoded video stream is associated with a different bit rate and includes an encoded portion encoded to the different bit rate for each of the one or more portions of the digital video content; computing, by the content player device, for bandwidth available for downloading the digital video content over one or more time windows, an estimated bit rate of the bandwidth for a first future time window based on one or more samples of actual bit rates of the bandwidth during one or more previous time windows, wherein the first future time window is one of the one or more time windows; computing, by the content player device, a bandwidth variability value for the first future time window based on the one or more samples of actual bit rates of the bandwidth and the estimated bit rate of the bandwidth; determining, by the content player device based on the scene complexity map, a first complexity level associated with a first future portion of the digital video content and a second complexity level associated with a second future portion of the digital video content, wherein the first and second future portions of the digital video content correspond to different portions of the digital video content; selecting, during playback of a different portion of the digital video content, a first encoded video stream included in the plurality of encoded video streams from which to download a first encoded portion corresponding to the first future portion of the digital video content, wherein the selecting is based on a bit rate of the first encoded video stream, the estimated bit rate of the bandwidth, the bandwidth variability, the first complexity level, and the second complexity level; selecting a second encoded video stream included in the plurality of encoded video streams from which to download a second encoded portion corresponding to the second future portion of the digital video content based on a bit rate of the second encoded video stream, the estimated bit rate of the bandwidth, the bandwidth variability, the first complexity level, and the second complexity level; and downloading in the first future time window for playback the first encoded portion from the first encoded video stream to a content buffer residing within the content player device, and during the first future time window downloading the second encoded portion corresponding to the second future portion of digital video content.