static void SaveVideo_Step2(DownloadList saveItems, List <String> urls, bool?enque)
        {
            Helpers.UriUtils.RemoveInvalidUrls(urls);

            // if no valid urls were returned show error msg
            if (urls == null || urls.Count == 0)
            {
                ServiceRegistration.Get <IDialogManager>().ShowDialog("[OnlineVideos.Error]", "[OnlineVideos.UnableToDownloadVideo]", DialogType.OkDialog, false, DialogButtonType.Ok);
                return;
            }

            // create download list if more than one url
            if (urls.Count > 1)
            {
                saveItems.DownloadItems = new List <DownloadInfo>();
                foreach (string url in urls)
                {
                    VideoInfo vi      = saveItems.CurrentItem.VideoInfo.CloneForPlaylist(url, url == urls[0]);
                    string    url_new = url;
                    if (url == urls[0])
                    {
                        url_new = saveItems.CurrentItem.Util.GetPlaylistItemVideoUrl(vi, string.Empty);
                    }
                    DownloadInfo pli = DownloadInfo.Create(vi, saveItems.CurrentItem.Category, saveItems.CurrentItem.Util);
                    pli.Title            = string.Format("{0} - {1} / {2}", vi.Title, (saveItems.DownloadItems.Count + 1).ToString(), urls.Count);
                    pli.Url              = url_new;
                    pli.OverrideFolder   = saveItems.CurrentItem.OverrideFolder;
                    pli.OverrideFileName = saveItems.CurrentItem.OverrideFileName;
                    saveItems.DownloadItems.Add(pli);
                }
                // make the first item the current to be saved now
                saveItems.CurrentItem = saveItems.DownloadItems[0];
                urls = new List <string>(new string[] { saveItems.CurrentItem.Url });
            }
            // show selection dialog for playback options
            VideoViewModel tempVi = new VideoViewModel(saveItems.CurrentItem.VideoInfo, saveItems.CurrentItem.Category, saveItems.CurrentItem.Util.Settings.Name, saveItems.CurrentItem.Util.Settings.UtilName, false);

            tempVi.ChoosePlaybackOptions(urls[0], (url) => { SaveVideo_Step3(saveItems, url, enque); }, enque == null);             // skip dialog when downloading an item of a queue
        }
 void DownloadQueued()
 {
     ServiceRegistration.Get <IScreenManager>().CloseTopmostDialog();
     SaveVideo_Step1(DownloadList.Create(DownloadInfo.Create(VideoInfo, Category, OnlineVideoSettings.Instance.SiteUtilsList[SiteName])), true);
 }