public async Task <YTrackResponse> GetTrackAsync(string trackId)
        {
            var request = new YGetTrackResponse(_httpContext).Create(trackId, User.Lang);
            var track   = default(YTrackResponse);

            using (var response = (HttpWebResponse)await request.GetResponseAsync())
            {
                var data = await GetDataFromResponseAsync(response);

                var jsonTrack = data["track"];

                track = YTrackResponse.FromJson(jsonTrack);

                _httpContext.Cookies.Add(response.Cookies);
            }

            return(track);
        }
示例#2
0
        public Uri GetURLDownloadTrack(YTrackResponse track, YandexTrackDownloadInfo downloadInfo)
        {
            var key = ""; //downloadInfo.Path.Substring(1, downloadInfo.Path.Length - 1) + downloadInfo.S;

            using (var md5 = MD5.Create())
            {
                key = GetMdHesh(md5,
                                $"XGRlBW9FXlekgbPrRHuSiA{downloadInfo.Path.Substring(1, downloadInfo.Path.Length - 1)}{downloadInfo.S}");
            }

            var trackDownloadUrl =
                String.Format("http://{0}/get-mp3/{1}/{2}{3}?track-id={4}&region=225&from=service-search",
                              downloadInfo.Host,
                              key,
                              downloadInfo.Ts,
                              downloadInfo.Path,
                              track.Id);

            return(new Uri(trackDownloadUrl));
        }