Skip to content

Znakes/Yandex.Music.Api

 
 

Repository files navigation

Yandex.Music API (Unofficial) for .Net Core

Build Status NuGet version (Yandex.Music.Api) Documentation Status

This is wrapper for the Yandex.Music API

Solution allows you to work with Yandex music based on the client.

Here is the documentation

Install

Install-Package Yandex.Music.Api -Version 1.0.0

Functional

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

Quick start

Roadmap

This solution is experimental. Therefore, it may have various bugs. To work, the solution uses the https protocol.

Users

Authorize

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");
Search users
 var yandexApi = new YandexMusicApi();
 var pageNumber = 0;
 
 // Yandex search text and page
 var users = Api.SearchUsers("a", pageNumber);
Use proxy

Documentation in progress...

Music

Download track to file
 var yandexApi = new YandexMusicApi();
 var track = yandexApi.SearchTrack("I Don't Care").First();
 var fileName = $"{track.Title}.mp3";
 yandexApi.ExtractTrackToFile(track, fileName);
Download track to stream

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);
 };
Download track to bytes
 var yandexApi = new YandexMusicApi();
 var track = yandexApi.SearchTrack("I Don't Care").First();
 var byteData = yandexApi.ExtractDataTrack(track);
Get favorites playlist
 var yandexApi = new YandexMusicApi();
 yandexApi.Authorize("yourLogin", "yourPassword");
 var list = yandexApi.GetListFavorites();
Search track
 var yandexApi = new YandexMusicApi();
 var pageNumber = 0;
 var tracks = yandexApi.SearchTrack("I Don't Care", pageNumber);

Playlist

Get playlist of day
 var yandexApi = new YandexMusicApi();
 yandexApi.Authorize("yourLogin", "yourPassword");
 var playlist = yandexApi.GetPlaylistOfDay();
Get playlist deja vu
 var yandexApi = new YandexMusicApi();
 yandexApi.Authorize("yourLogin", "yourPassword");
 var playlist = yandexApi.GetPlaylistDejaVu();

var playlist = yandexApi.GetPlaylistDejaVu();

Search playlist
  var yandexApi = new YandexMusicApi();
  yandexApi.Authorize("yourLogin", "yourPassword");
  var pageNumber = 0;
  var playlists = Api.SearchPlaylist("a", pageNumber);
Examples

LICENCE

GNU General Public License v3.0

Releases

No releases published

Packages

 
 
 

Languages

  • C# 100.0%