Exemplo n.º 1
0
 private void InitBuilder(YTDownloaderBuilder builder)
 {
     this.ExportAudioDirPath    = builder.ExportAudioDirPath;
     this.ExportVideoDirPath    = builder.ExportVideoDirPath;
     this.ExportOptions         = builder.ExportOptions;
     this.SkipVideosWhichExists = builder.SkipVideosWhichExists;
 }
Exemplo n.º 2
0
        public void SingleSyncDownload(string link)
        {
            string exportVideoPath = @"C:\Users\david.waidmann\Downloads\Productivity\";
            string exportAudioPath = @"C:\Users\david.waidmann\Downloads\Productivity\";

            var link1 = new LinkInfo(link);

            var downloader = new YTDownloaderBuilder()
                             .SetExportAudioPath(exportAudioPath)                                     //required
                             .SetExportVideoPath(exportVideoPath)                                     //required
                             .SetExportOptions(ExportOptions.ExportVideo | ExportOptions.ExportAudio) //default
                             .SetSkipDownloadIfFileExists(false)                                      //default
                             .SetLinks(link1)                                                         //check other overloads
                             .Build();

            DownloadResult[] results = downloader.DownloadLinks();  //process the download

            foreach (var res in results)
            {
                Console.WriteLine(res.AudioSavedFilePath);
                Console.WriteLine(res.VideoSavedFilePath);
                Console.WriteLine(res.FileBaseName);
                Console.WriteLine(res.GUID);
                Console.WriteLine(res.DownloadSkipped);
            }

            downloader.AddDownloadStartedAction(link1.GUID, (evArgs) =>
            {
                Console.WriteLine("DOWNLOAD STARTED");
            });

            downloader.AddDownloadFinishedAction(link1.GUID, (evArgs) =>
            {
                Console.WriteLine("DOWNLOAD FINISHED");
            });

            downloader.AddDownloadProgressChangedAction(link1.GUID, (progressArgs) =>
            {
                Invoke(new MethodInvoker(delegate()
                {
                    progressBar.Value  = (int)progressArgs.ProgressPercentage;
                    lblPercentage.Text = $"{string.Format("{0:0.##}", progressArgs.ProgressPercentage)}%";
                    progressBar.Update();
                }));

                Console.WriteLine("Download for link:  " + link1.URL + " " + progressArgs.ProgressPercentage + "%");
            });

            downloader.AddDownloadStartedAction(link1.GUID, (convertArgs) =>
            {
                //Console.WriteLine("Converting audio to path:  " + convertArgs.AudioSavedFilePath);
            });

            downloader.AddAudioConvertingEndedAction(link1.GUID, (convertArgs) =>
            {
                Console.WriteLine("Converting audio complete");
            });
        }
Exemplo n.º 3
0
        public YTDownloader(YTDownloaderBuilder builder, IList <LinkInfo> links)
        {
            InitBuilder(builder);

            foreach (var linkInfo in links)
            {
                engines.Add(linkInfo.GUID, new Engine());
                videoDownloaders.Add(linkInfo.GUID, new VideoDownloader());
                linksToProcess.Add(linkInfo);
            }
        }
Exemplo n.º 4
0
        public void AsyncDownload(List <LinkInfo> linkinfoList)
        {
            string exportVideoPath = @"C:\Users\david.waidmann\Downloads\Productivity\";
            string exportAudioPath = @"C:\Users\david.waidmann\Downloads\Productivity\";

            var downloader = new YTDownloaderBuilder()
                             .SetExportAudioPath(exportAudioPath)                                     //required
                             .SetExportVideoPath(exportVideoPath)                                     //required
                             .SetExportOptions(ExportOptions.ExportVideo | ExportOptions.ExportAudio) //default
                             .SetSkipDownloadIfFileExists(false)                                      //default
                             .SetLinks(linkinfoList)                                                  //check other overloads
                             .Build();

            Task <DownloadResult[]> results = downloader.DownloadLinksAsync(CancellationToken.None); // process download

            foreach (var link in linkinfoList)
            {
                downloader.AddDownloadStartedAction(link.GUID, (evArgs) =>
                {
                    Console.WriteLine("DOWNLOAD STARTED");
                });

                downloader.AddDownloadFinishedAction(link.GUID, (evArgs) =>
                {
                    Console.WriteLine("DOWNLOAD FINISHED");
                });

                downloader.AddDownloadProgressChangedAction(link.GUID, (progressArgs) =>
                {
                    Invoke(new MethodInvoker(delegate()
                    {
                        progressBar.Value  = (int)progressArgs.ProgressPercentage;
                        lblPercentage.Text = $"{string.Format("{0:0.##}", progressArgs.ProgressPercentage)}%";
                        progressBar.Update();
                    }));

                    //Console.WriteLine("Download for link:  " + link.URL + " " + progressArgs.ProgressPercentage + "%");
                });

                downloader.AddDownloadStartedAction(link.GUID, (convertArgs) =>
                {
                    //Console.WriteLine("Converting audio to path:  " + convertArgs.AudioSavedFilePath);
                });

                //downloader.AddAudioConvertingEndedAction(link.GUID, (convertArgs) =>
                //{
                //    Console.WriteLine("Converting audio for link:  " + link.FileName + " completed.");
                //    //tbxUrl.ResetText();
                //    //progressBar.Value = 0;
                //    //progressBar.Refresh();
                //});
            }
        }
Exemplo n.º 5
0
        public YTDownloader(YTDownloaderBuilder builder, string[] urls)
        {
            InitBuilder(builder);

            foreach (var url in urls)
            {
                var linkInfo = new LinkInfo(url);

                engines.Add(linkInfo.GUID, new Engine());
                videoDownloaders.Add(linkInfo.GUID, new VideoDownloader());
                linksToProcess.Add(linkInfo);
            }
        }