コード例 #1
0
        public override MediaFileMetadata InitializeMetadata()
        {
            string videoId      = this.ParseVideoId();
            string infoResponse = MediaHelper.SendWebRequest(string.Format(InfoUrl, videoId));
            string fileName     = string.Empty;

            fileName = new VboxResolver().ResolveByUrl(this.Url);

            string[] keyValuePairsRaw = infoResponse.Split(new string[] { "&" }, StringSplitOptions.RemoveEmptyEntries);

            Dictionary <string, string> fileInfo = new Dictionary <string, string>();

            foreach (string pair in keyValuePairsRaw)
            {
                string[] splittedPairs = pair.Split(new string[] { "=" }, StringSplitOptions.RemoveEmptyEntries);
                if (splittedPairs.Length >= 2)
                {
                    fileInfo[splittedPairs[0]] = splittedPairs[1];
                }
            }

            //TODO add constant
            if (fileInfo.ContainsKey("errorInfo"))
            {
                return(MediaFileMetadata.DefaultMetadata);
            }

            return(new VboxFileMetadata(this.Url, fileInfo[VboxFile.ThumbnailKey], fileInfo[VboxFile.DownloadUrlKey], videoId, fileName));
        }
コード例 #2
0
        public void IsResolvingBasicTest()
        {
            VboxResolver         resolver = new VboxResolver();
            IEnumerable <string> urls     = resolver.ResolveByName("bon jovi its my life HD");

            MediaFile file = MediaFile.CreateNew(urls.First());

            Assert.IsTrue(file.Metadata.FileName.ToLower().Contains("bon jovi"));
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: mks786/MediaMaster
        static void Main(string[] args)
        {
            List <string> files = new List <string>();

            //string[] dirFiles = Directory.GetFiles(@"E:\New folder");

            //foreach (var file in dirFiles)
            //{
            //    files.Add(Path.GetFileNameWithoutExtension(file).Replace(".mp3", ""));
            //}

            string line = null;

            while ((line = Console.ReadLine()) != "")
            {
                files.Add(line);
            }

            VboxResolver resolver = new VboxResolver();

            MediaFile[] vboxFiles = files.Select(x =>
            {
                Uri uri;
                if (!Uri.TryCreate(x, UriKind.Absolute, out uri))
                {
                    string preceedingNumberExpression = "[0-9]{3}.";
                    //string fullNameExpression = string.Format("{0}[a-z0-9].mp3", preceedingNumberExpression);

                    x        = Regex.Replace(x, preceedingNumberExpression, "").Trim();
                    var urls = resolver.ResolveByName(x);
                    if (urls.Any())
                    {
                        x = urls.First();
                    }
                    else
                    {
                        return(null);
                    }
                }

                return(MediaFile.CreateNew(x));
            }).Where(x => x != null).ToArray();

            MediaDownloadConvertManager manager = new MediaDownloadConvertManager();

            manager.MaxParallelRequests = 10;

            manager.Downloader.MediaFileDownloadStarting += downloader_MediaFileDownloadStarting;
            manager.Downloader.MediaFileDownloadProgress += downloader_MediaFileDownloadProgress;
            manager.Downloader.MediaFileDownloadFinished += downloader_MediaFileDownloadFinished;

            manager.Converter.MediaFileConversionStarting  += downloader_MediaFileConversionStarting;
            manager.Converter.MediaFileConvertionCompelete += downloader_MediaFileConvertionCompelete;

            string desktop = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "DownloadedFiles");

            Directory.CreateDirectory(desktop);
            for (int i = 0; i < vboxFiles.Length; i++)
            {
                MediaConverterMetadata metadata = null;
                if (vboxFiles[i].FileOrigin == FileOrigin.SoundCloud)
                {
                    metadata = MediaConverterMetadata.Default;
                }
                else
                {
                    metadata = new MediaConverterMetadata(Converter.Bitrates.Kbps192, vboxFiles[i].Metadata.FileName, SupportedConversionFormats.Mp3);
                }

                manager.EnqueueDownloadAndConvertRequest(vboxFiles[i], desktop, metadata);
            }

            manager.StartDownload();

            Console.ReadLine();
            Console.ReadLine();
        }