Esempio n. 1
0
        private string DownloadVideoAndReturnPath(VideoSearchComponents video, string outputPath)
        {
            var toDownload = DownloadUrlResolver.GetDownloadUrls(video.getUrl())
                             .OrderBy(x => x.FileSize)
                             .First(x => x.AudioBitrate > 0 && x.FileSize > 0);
            var dl             = new VideoDownloader();
            var videoExtension = toDownload.VideoExtension;

            if (toDownload.RequiresDecryption)
            {
                DownloadUrlResolver.DecryptDownloadUrl(toDownload);
            }

            var basePath = Path.Combine(outputPath, Path.GetRandomFileName());

            var request  = (HttpWebRequest)WebRequest.Create(toDownload.DownloadUrl);
            var response = (HttpWebResponse)request.GetResponse();

            var outFilePath = basePath + videoExtension;

            using (var reader = new StreamReader(response.GetResponseStream()))
            {
                var ms = new MemoryStream();
                response.GetResponseStream().CopyTo(ms);
                var outFile = File.Create(outFilePath);
                ms.WriteTo(outFile);
                outFile.Close();
            }
            return(outFilePath);
        }
 public static YouTubeSearchResult From(VideoSearchComponents component)
 {
     return(new YouTubeSearchResult
     {
         Author = component.getAuthor(),
         Description = component.getDescription(),
         Duration = component.getDuration(),
         Thumbnail = component.getThumbnail(),
         Title = component.getTitle(),
         Url = component.getUrl(),
         ViewCount = component.getViewCount(),
         Type = VideoRequestType.SingleVideo
     });
 }