Developer Interface

Yandex music client library.

Client

Yandex music service client.

class yamusic.client.OAuthCred(access_token, user_id)
property access_token

Alias for field number 0

property user_id

Alias for field number 1

class yamusic.client.YaMusicClient(login: Optional[str] = None, password: Optional[str] = None, *, device_id: Optional[str] = None, app_uuid: Optional[str] = None, oauth_cred: Optional[yamusic.client.OAuthCred] = None)

A Yandex music service client. Creates a client instance and authenticates on the service if login and password are provided.

Parameters
  • login – yandex account user name

  • password – yandex account password

  • device_id – local device id (will be automatically generated if omitted)

  • app_uuid – unique identifier (will be automatically generated if omitted)

  • auth_cred – authentication data, (access_token, user_id) pair

auth(login: str, password: str) → None

Authenticates on the service as a login user.

Parameters
  • login – yandex account user name

  • password – yandex account password

Raises

exceptions.AuthenticationError – if the credentials are not valid

logout() → None

Forget current user credentials.

property is_authenticated

Checks if the client is authenticated.

Returns

True if the client is authenticated otherwise False

get_genres() → List[yamusic.models.Genre]

Returns a list of available genres.

Returns

genre list

get_playlists(*, user_id: Optional[int] = None) → List[yamusic.models.Playlist]

Returns user’s playlist list. If user_id argument is omitted current user id is used.

Parameters

user_id – user id

Returns

playlist list

Return type

List[entities.Playlist]

get_playlist(playlist_id: Optional[int] = None, *, title: Optional[str] = None, user_id: Optional[int] = None, rich_tracks: bool = False) → Union[yamusic.models.Playlist[TrackWrapper], yamusic.models.Playlist[Track]]

Returns a playlist by id or title. If user_id argument is omitted current user id is used.

Parameters
  • playlist_id – playlist id

  • title – playlist title

  • user_id – user id

  • rich_tracks – whether to add additional information to the tracks

Returns

requested playlist

create_playlist(title: str, *, visibility: yamusic.models.Visibility = <Visibility.PRIVATE: 'private'>) → yamusic.models.Playlist

Creates a new playlist. Client should be authenticated on the service.

Parameters
  • title – playlist title

  • visibility – playlist visibility

Returns

created playlist

delete_playlist(playlist_id: int) → None

Deletes playlist by an id. Client should be authenticated on the service.

Parameters

playlist_id – playlist id

rename_playlist(playlist_id: int, *, title: str) → None

Renames playlist by an id. Client should be authenticated on the service.

Parameters
  • playlist_id – playlist id

  • title – new title

add_tracks_to_playlist(playlist_id: int, tracks: List[Union[yamusic.models.TrackWrapper, yamusic.models.Track]], *, at_position: int = 0, ignore_duplicates: bool = False) → None

Adds tracks to a playlist. Client should be authenticated on the service.

Parameters
  • playlist_id – playlist id to add the tracks to

  • tracks – track list to add to the playlist

  • at_position – position to add tracks at

  • ignore_duplicates – ignore duplicate tracks

delete_tracks_from_playlist(playlist_id: int, *, from_track: int, to_track: int) → None

Deletes tracks from the playlist. Client should be authenticated on the service.

Parameters
  • playlist_id – playlist id

  • from_track – start position of the tracks to delete

  • to_track – end position of the tracks to delete

search(query: str, *, search_type: yamusic.models.SearchType = <SearchType.ALL: 'all'>, page: int = 0) → yamusic.models.SearchResult

Search for entities.

Parameters
  • query – query string

  • search_type – search type

  • page – result page number

Returns

search result

search_artist(name: str, *, page: int = 0) → List[yamusic.models.Artist]

Searches for artists with the requested name.

Parameters
  • name – artist name

  • page – result page number

Returns

a list of the requested artists

search_album(title: str, *, page: int = 0) → List[yamusic.models.Album]

Searches for albums with the requested title.

Parameters
  • title – album title

  • page – result page number

Returns

a list of the requested albums

search_track(title: str, *, page: int = 0) → List[yamusic.models.Track]

Searches for tracks with the requested title.

Parameters
  • title – track title

  • page – result page number

Returns

a list of the requested tracks

get_album(album_id: int) → List[yamusic.models.Album]

Returns an album with album_id id

Parameters

album_id – album id

Returns

requested album

get_similar_tracks(track_id: int) → yamusic.models.Similar

Returns tracks similar to the track with track_id id

Parameters

track_id – track id

Returns

list of similar tracks

Models

class yamusic.models.Visibility

Visibility.

class yamusic.models.Sex

Sex.

class yamusic.models.SearchType

Search type.

class yamusic.models.Genre

Music genre model.

Parameters
  • id – genre identifier

  • title – genre title

  • full_title – genre full title

class yamusic.models.User

User model.

Parameters
  • uid – user identifier

  • login – user login name

  • sex – user sex

  • verified – whether user is verified

class yamusic.models.Album

Album model.

Parameters
  • id – album identifier

  • title – album title

  • track_count – album tracks count

  • genre – album genre

  • year – album recording year

  • release_date – album release date

class yamusic.models.Artist

Artist model.

Parameters
  • id – artist identifier

  • name – artist name

  • composer – whether artist is a composer

  • genres – artist genre list

class yamusic.models.Track

Audio track model.

Parameters
  • id – track identifier

  • title – track title

  • albums – track albums

  • artists – track artists

  • available – whether track available

  • lyrics_available – whether lyrics available

  • type – track type

  • duration_ms – track duration

  • real_id – track read id

  • cover_uri – track cover url

  • major – track major (label)

  • files_size – track file size

  • normalization – track audio normalization information

property album_id

Returns track album identifier.

property uid

Playlist unique identifier.

class yamusic.models.TrackWrapper

Audio track wrapper model. Contains

Parameters
  • id – track identifier

  • album_id – track album identifier

  • timestamp – track timestamp

  • track – detailed track information

property is_rich

Whether track wrapper is reach (contains detailed track information).

property uid

Playlist unique identifier.

unwrap() → yamusic.models.Track

Returns detailed track information if wrapper is reach, raise ValueError exception otherwise.

class yamusic.models.Similar

Similar tracks request result.

Parameters
  • track – requested track

  • similar_tracks – list of similar tracks

class yamusic.models.Playlist

Music playlist model. Represents a collection of tracks plus some meta-information.

Parameters
  • kind – playlist identifier

  • title – playlist title

  • track_count – playlist track count

  • owner – playlist owner

  • tags – playlist tag list

  • cover – playlist cover

  • track_ids – playlist track id list

  • duration – playlist duration

  • tracks – playlist track list

  • modified – playlist last modification time

  • revision – playlist revision number (modification counter)

  • visibility – whether playlist is visible

  • likes_count – plyalsit likes count

  • collective – whether playlist is collective

property uid

Playlist unique identifier.

class yamusic.models.SearchResult

Search result.

Parameters
  • albums – list of found albums

  • artists – list of found artists

  • tracks – list of found tracks

  • playlists – list of found playlists

Exceptions

Exception classes for library-related errors.

exception yamusic.exceptions.BaseError

Base module exception.

exception yamusic.exceptions.AuthenticationError

Authentication error.

exception yamusic.exceptions.ResponseFormatError

Response formant is not correct.

exception yamusic.exceptions.NotFoundError

Requested object not found.