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(); }
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); }