Exemple #1
0
        private void VideoDownloader_DownloadProgressChanged(object sender, ProgressEventArgs e)
        {
            CustomVideoDownloader video = (CustomVideoDownloader)sender;
            var a = DownloadItems.FirstOrDefault(i => i.Id == video.DownloadItem.Id);

            a.DownloadedPercent = e.ProgressPercentage;
        }
Exemple #2
0
        async void StartDownload()
        {
            int count = 1;

            foreach (var item in DownloadItems)
            {
                try
                {
                    IEnumerable <VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls(item.Url, false);

                    VideoInfo video = videoInfos.FirstOrDefault(info => info.VideoType == VideoType.Mp4 && info.Resolution == 720);
                    if (video == null)
                    {
                        video = videoInfos.First(info => info.VideoType == VideoType.Mp4 && info.Resolution == 360);
                    }
                    if (video.RequiresDecryption)
                    {
                        DownloadUrlResolver.DecryptDownloadUrl(video);
                    }

                    DirectoryInfo target = new DirectoryInfo(
                        Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\YoutubeDownloader");
                    if (!target.Exists)
                    {
                        target.Create();
                    }

                    var videoDownloader = new CustomVideoDownloader(item, video,
                                                                    Path.Combine(
                                                                        target.FullName,
                                                                        $"{item.Order}_{RemoveIllegalPathCharacters(video.Title)}{video.VideoExtension}")
                                                                    );

                    videoDownloader.DownloadProgressChanged += VideoDownloader_DownloadProgressChanged;
                    videoDownloader.Execute();
                } catch (Exception ex)
                {
                    item.Status  = "Error";
                    item.Comment = ex.Message;
                }
                count++;
            }
        }