public YandexStreamTrack ExtractStreamTrack(YandexTrack track)
        {
            var trackDonloadInfo = GetDownloadTrackInfo(track.StorageDir);
            var trackDownloadUrl = _settings.GetURLDownloadTrack(track, trackDonloadInfo);

            var isNetworing = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();

            return(YandexStreamTrack.Open(trackDownloadUrl, track.FileSize));
        }
Beispiel #2
0
        public ExtractingTrackTest(LofiTestHarness fixture, ITestOutputHelper output) : base(fixture, output)
        {
            if (!Directory.Exists(FolderData))
            {
                Directory.CreateDirectory(FolderData);
            }

            Api.Authorize("Winster332", "123");
            Track    = Api.GetListFavorites().FirstOrDefault();
            PathFile = $"{FolderData}/{Track.Title}.mp3";
        }
        public byte[] ExtractDataTrack(YandexTrack track)
        {
            var trackDonloadInfo = GetDownloadTrackInfo(track.StorageDir);
            var trackDownloadUrl = _settings.GetURLDownloadTrack(track, trackDonloadInfo);

            byte[] bytes;

            using (var client = new WebClient())
            {
                bytes = client.DownloadData(trackDownloadUrl);
            }

            return(bytes);
        }
        public YandexTrack GetTrack(string trackId)
        {
            var request = GetRequest(_settings.GetTrackURL(trackId), WebRequestMethods.Http.Get);
            var track   = default(YandexTrack);

            using (var response = (HttpWebResponse)request.GetResponse())
            {
                var data = GetDataFromResponse(response)["track"];
                track = YandexTrack.FromJson(data);

                _cookies.Add(response.Cookies);
            }

            return(track);
        }
        public Uri GetURLDownloadTrack(YandexTrack 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));
        }
        public bool ExtractTrackToFile(YandexTrack track, string folder)
        {
            try
            {
                var trackDonloadInfo = GetDownloadTrackInfo(track.StorageDir);
                var trackDownloadUrl = _settings.GetURLDownloadTrack(track, trackDonloadInfo);
                var isNetworing      = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();

                using (var client = new WebClient())
                {
                    client.DownloadFile(trackDownloadUrl, $"{folder}/{track.Title}.mp3");
                }

                return(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            return(false);
        }
        public List <YandexTrack> GetListFavorites(string login = null)
        {
            if (login == null)
            {
                login = _login;
            }

            var request = GetRequest(_settings.GetListFavoritesURL(login));
            var tracks  = new List <YandexTrack>();

            using (var response = (HttpWebResponse)request.GetResponse())
            {
                var data    = GetDataFromResponse(response);
                var jTracks = (JArray)data["tracks"];

                tracks = YandexTrack.FromJsonArray(jTracks);

                _cookies.Add(response.Cookies);
            }

            return(tracks);
        }
        public List <IYandexSearchable> Search(string searchText, YandexSearchType searchType, int page = 0)
        {
            var listResult = new List <IYandexSearchable>();

            var request = GetRequest(_settings.GetSearchURL(searchText, searchType, page), WebRequestMethods.Http.Get);

            using (var response = (HttpWebResponse)request.GetResponse())
            {
                var json      = GetDataFromResponse(response);
                var fieldName = searchType.ToString().ToLower();
                var jArray    = (JArray)json[fieldName]["items"];

                if (searchType == YandexSearchType.Tracks)
                {
                    listResult = YandexTrack.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList();
                }
                else if (searchType == YandexSearchType.Artists)
                {
                    listResult = YandexArtist.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList();
                }
                else if (searchType == YandexSearchType.Albums)
                {
                    listResult = YandexAlbum.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList();
                }
                else if (searchType == YandexSearchType.Playlists)
                {
                    listResult = YandexPlaylist.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList();
                }
                else if (searchType == YandexSearchType.Users)
                {
                    listResult = YandexUser.FromJsonArray(jArray).Select(x => (IYandexSearchable)x).ToList();
                }
            }

            return(listResult);
        }