public async Task SetNextVideoOptionAsync(Media video) {
// Don't reset if it's the same value.
if (NextVideo != null && video.MediaId == NextVideo.MediaId)
return;
// Cancel next download.
if (nextVideo != null)
CancelNextDownload(nextVideo);
// Set and prepare next video.
nextVideo = video;
await PrepareNextVideoAsync(1, 0).ConfigureAwait(false);
}