Пример #1
0
        public void GetDownloadFileInfo_ValidData_True()
        {
            downloadInfo.Result.Count.Should().BePositive();

            downloadFile = Fixture.API.Track.GetDownloadFileInfo(Fixture.Storage, downloadInfo.Result.First(m => m.Codec == "mp3"));

            downloadFile.Path.Should().NotBeNullOrEmpty();
        }
Пример #2
0
        private string BuildLinkForDownload(YTrackDownloadInfo mainDownloadResponse,
                                            YStorageDownloadFile storageDownload)
        {
            var path  = storageDownload.Path;
            var host  = storageDownload.Host;
            var ts    = storageDownload.Ts;
            var s     = storageDownload.S;
            var codec = mainDownloadResponse.Codec;

            var secret      = $"XGRlBW9FXlekgbPrRHuSiA{path.Substring(1, path.Length - 1)}{s}";
            var md5         = MD5.Create();
            var md5Hash     = md5.ComputeHash(Encoding.UTF8.GetBytes(secret));
            var hmacsha1    = new HMACSHA1();
            var hmasha1Hash = hmacsha1.ComputeHash(md5Hash);
            var sign        = BitConverter.ToString(hmasha1Hash).Replace("-", "").ToLower();

            var link = $"https://{host}/get-{codec}/{sign}/{ts}{path}";

            return(link);
        }