This is wrapper for the Yandex.Music API
Solution allows you to work with Yandex music based on the client.
Install-Package Yandex.Music.Api -Version 1.0.0
This library provides following functions:
YandexMusicApi
│
├── Users
│ ├── Authorize (string username, string password)
│ ├── SearchUsers (string userName, int pageNumber = 0)
│ └── UseProxy (IWebProxy proxy)
├── Music
│ ├── GetListFavorites (string userId = null)
│ ├── ExtractTrackToFile (YandexTrack track, string filder = "data")
│ ├── ExtractStreamTrack (YandexTrack track)
│ ├── ExtractDataTrack (YandexTrack track)
│ ├── SearchTrack (string trackName, int pageNumber = 0)
│ └── GetTrack (string trackId)
├── Playlist
│ ├── GetPlaylistOfDay ()
│ ├── GetPlaylistDejaVu ()
│ ├── SearchPlaylist (string playlistName, int pageNumber = 0)
│ ├── SearchArtist (string artistName, int pageNumber = 0)
│ ├── SearchAlbums (string albumName, int pageNumber = 0)
│ └── GetAlbum (string albumId)
└── Future
├── AddTrackToPlaylist ()
├── CreatePlaylist ()
├── Remove playlist ()
├── Remove track ()
└── Radio-functions ()
This solution is experimental. Therefore, it may have various bugs. To work, the solution uses the https protocol.
This step is optional. But it is necessary to consider that not authorized users get on captcha with which the user needs to cope by own strength. Therefore, it is better to use authorization.
var yandexApi = new YandexMusicApi();
// Your login and password in Yandex.Music
yandexApi.Authorize("yourLogin", "yourPassword");
var yandexApi = new YandexMusicApi();
var pageNumber = 0;
// Yandex search text and page
var users = Api.SearchUsers("a", pageNumber);
Documentation in progress...
var yandexApi = new YandexMusicApi();
var track = yandexApi.SearchTrack("I Don't Care").First();
var fileName = $"{track.Title}.mp3";
yandexApi.ExtractTrackToFile(track, fileName);
Stream for streaming music
var yandexApi = new YandexMusicApi();
var track = yandexApi.SearchTrack("I Don't Care").First();
var streamTrack = yandexApi.ExtractStreamTrack(track);
var artistName = track.Artists.FirstOrDefault()?.Name;
streamTrack.Complated += (o, track1) =>
{
var fileName = $"{artistName} - {track.Title}";
streamTrack.SaveToFile(fileName);
};
var yandexApi = new YandexMusicApi();
var track = yandexApi.SearchTrack("I Don't Care").First();
var byteData = yandexApi.ExtractDataTrack(track);
var yandexApi = new YandexMusicApi();
yandexApi.Authorize("yourLogin", "yourPassword");
var list = yandexApi.GetListFavorites();
var yandexApi = new YandexMusicApi();
var pageNumber = 0;
var tracks = yandexApi.SearchTrack("I Don't Care", pageNumber);
var yandexApi = new YandexMusicApi();
yandexApi.Authorize("yourLogin", "yourPassword");
var playlist = yandexApi.GetPlaylistOfDay();
var yandexApi = new YandexMusicApi();
yandexApi.Authorize("yourLogin", "yourPassword");
var playlist = yandexApi.GetPlaylistDejaVu();
var playlist = yandexApi.GetPlaylistDejaVu();
var yandexApi = new YandexMusicApi();
yandexApi.Authorize("yourLogin", "yourPassword");
var pageNumber = 0;
var playlists = Api.SearchPlaylist("a", pageNumber);