kkbox_developer_sdk package

Submodules

kkbox_developer_sdk.access_token module

class kkbox_developer_sdk.access_token.KKBOXAccessToken(**kwargs)

The access token object for accessing KKBOX’s API.

access_token = None

The actual access token

expires_in = None

The access token expiration date in unix timestamp

token_type = None

The token type

scope = None

The scope of the token, may be none

refresh_token = None

The refresh token

kkbox_developer_sdk.album_fetcher module

class kkbox_developer_sdk.album_fetcher.KKBOXAlbumFetcher(access_token)

Bases: kkbox_developer_sdk.fetcher.Fetcher

Get metadata and tracks of an album.

See https://kkbox.gelato.io/docs/versions/1.1/resources/albums.

fetch_album(*args, **kwargs)

Fetches an album by given ID.

Parameters:
  • album_id (str) – the album ID.
  • terr – the current territory.
Returns:

API response.

Return type:

dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/albums/endpoints/get-albums-album_id.

fetch_tracks_in_album(*args, **kwargs)

Fetches tracks in an album by given ID.

Parameters:
  • album_id (str) – the album ID.
  • terr – the current territory.
Returns:

API response.

Return type:

dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/albums/endpoints/get-albums-album_id-tracks.

kkbox_developer_sdk.api module

class kkbox_developer_sdk.api.KKBOXAPI(access_token)

Create fetchers.

search_fetcher = None

The search related API fetcher

track_fetcher = None

The track related API fetcher

artist_fetcher = None

The artist related API fetcher

album_fetcher = None

The album related API fetcher

shared_playlist_fetcher = None

The shared playlist related API fetcher

chart_fetcher = None

The chart related API fetcher

new_release_category_fetcher = None

The new release category related API fetcher

genre_station_fetcher = None

The genre station related API fetcher

mood_station_fetcher = None

The mood station related API fetcher

feature_playlist_fetcher = None

The feature playlist related API fetcher

feature_playlist_category_fetcher = None

The feature playlist category related API fetcher

new_hits_playlist_fetcher = None

The new hits playlist related API fetcher

kkbox_developer_sdk.artist_fetcher module

class kkbox_developer_sdk.artist_fetcher.KKBOXArtistFetcher(access_token)

Bases: kkbox_developer_sdk.fetcher.Fetcher

Get metadata, albums, and top tracks of an artist.

See https://kkbox.gelato.io/docs/versions/1.1/resources/artists.

fetch_artist(*args, **kwargs)

Fetches an artist by given ID.

Parameters:
  • artist_id (str) – the artist ID.
  • terr – the current territory.
Returns:

API response.

Return type:

dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/artists/endpoints/get-artists-artist_id.

fetch_albums_of_artist(*args, **kwargs)

Fetches albums belong to an artist by given ID.

Parameters:
  • artist_id (str) – the artist ID.
  • terr – the current territory.
Returns:

API response.

Return type:

dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/artists/endpoints/get-artists-artist_id-albums.

fetch_top_tracks_of_artist(*args, **kwargs)

Fetcher top tracks belong to an artist by given ID.

Parameters:
  • artist_id (str) – the artist ID.
  • terr – the current territory.
Returns:

API response.

Return type:

dict

See ‘https://kkbox.gelato.io/docs/versions/1.1/resources/artists/endpoints/get-artists-artist_id-top-tracks

kkbox_developer_sdk.auth_flow module

class kkbox_developer_sdk.auth_flow.KKBOXOAuth(client_id, client_secret)

Implements various KKBOX Oauth 2.0 authorization flows.

See https://kkbox.gelato.io/docs/versions/1.1/authentication.

OAUTH_TOKEN_URL = 'https://account.kkbox.com/oauth2/token'
client_id = None

The client ID

client_secret = None

The client secret

access_token = None

The access token

http = None

The http client

fetch_access_token_by_client_credentials()

There are three ways to let you start using KKBOX’s Open/Partner API. The first way among them is to generate a client credential to fetch an access token to let KKBOX identify you. It allows you to access public data from KKBOX such as public albums, playlists and so on.

However, you cannot use client credentials to access private data of a user. You have to let users to log-in into KKBOX and grant permissions for you to do so. You cannot use client credentials to do media playback either, since it requires a Premium Membership.

Returns:an access token
Return type:kkbox_sdk.KKBOXAccessToken

See https://kkbox.gelato.io/docs/versions/1.1/authentication.

kkbox_developer_sdk.chart_fetcher module

class kkbox_developer_sdk.chart_fetcher.KKBOXChartFetcher(access_token)

Bases: kkbox_developer_sdk.fetcher.Fetcher

List chart playlist. Then can get tracks via shared playlist.

See https://kkbox.gelato.io/docs/versions/1.1/resources/charts.

fetch_charts(*args, **kwargs)

Fetches chart categories.

Parameters:terr – the current territory.
Returns:API response.
Return type:list

See https://kkbox.gelato.io/docs/versions/1.1/resources/charts/endpoints/get-charts

kkbox_developer_sdk.feature_playlist_category_fetcher module

class kkbox_developer_sdk.feature_playlist_category_fetcher.KKBOXFeaturePlaylistCategoryFetcher(access_token)

Bases: kkbox_developer_sdk.fetcher.Fetcher

List feature playlist categories and list feature playlists for a specific category.

See https://kkbox.gelato.io/docs/versions/1.1/resources/featured-playlist-categories.

fetch_categories_of_feature_playlist(*args, **kwargs)

Fetches categories of featured playlist.

Parameters:terr – the current territory.
Returns:API response.
Return type:dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/featured-playlist-categories/endpoints/get-featured-playlist-categories.

fetch_feature_playlist_by_category(*args, **kwargs)

Fetches featured playlist by given category ID.

Parameters:
  • category (str) – the category.
  • terr – the current territory.
Returns:

API response.

Return type:

dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/featured-playlist-categories/endpoints/get-featured-playlist-categories-category_id.

fetch_playlists_of_feature_playlist_category(*args, **kwargs)

Fetches playlists of featured playlist category by given ID.

Parameters:
  • category (str) – the category.
  • terr – the current territory.
Returns:

API response.

Return type:

dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/featured-playlist-categories/endpoints/get-featured-playlist-categories-category_id-playlists.

kkbox_developer_sdk.feature_playlist_fetcher module

class kkbox_developer_sdk.feature_playlist_fetcher.KKBOXFeaturePlaylistFetcher(access_token)

Bases: kkbox_developer_sdk.fetcher.Fetcher

List all featured playlists metadata.

See https://kkbox.gelato.io/docs/versions/1.1/resources/featured-playlists.

fetch_feature_playlists(*args, **kwargs)

Fetches featured playlists.

Parameters:terr – the current territory.
Returns:API response.
Return type:dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/featured-playlists/endpoints/get-featured-playlists.

kkbox_developer_sdk.fetcher module

kkbox_developer_sdk.fetcher.assert_access_token(func, *args)
class kkbox_developer_sdk.fetcher.Fetcher(access_token)

Base class for various fetchers.

access_token
http = None

The http client

fetch_next_page(data)

Fetches next page based on previously fetched data. Will get the next page url from data[‘paging’][‘next’].

Parameters:data (dict) – previously fetched API response.
Returns:API response.
Return type:dict
fetch_data(url)

Fetches data from specific url.

Returns:The response.
Return type:dict

kkbox_developer_sdk.genre_station_fetcher module

class kkbox_developer_sdk.genre_station_fetcher.KKBOXGenreStationFetcher(access_token)

Bases: kkbox_developer_sdk.fetcher.Fetcher

Fetch genre stations and get tracks for a specific genre station.

See https://kkbox.gelato.io/docs/versions/1.1/resources/genre-stations.

fetch_all_genre_stations(*args, **kwargs)

Fetches all genre stations.

Parameters:terr – the current territory.
Returns:API response.
Return type:dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/genre-stations/endpoints/get-genre-stations.

fetch_genre_station(*args, **kwargs)

Fetches a genre station by given ID.

Parameters:
  • station_id – the station ID
  • terr – the current territory.
Returns:

API response.

Return type:

dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/genre-stations/endpoints/get-genre-stations-station_id.

kkbox_developer_sdk.http module

class kkbox_developer_sdk.http.KKBOXHTTP(access_token=None)

Do request to open api server with authorization header and error catch.

USER_AGENT = 'KKBOX Open/Partner API Python SDK'

kkbox_developer_sdk.mood_station_fetcher module

class kkbox_developer_sdk.mood_station_fetcher.KKBOXMoodStationFetcher(access_token)

Bases: kkbox_developer_sdk.fetcher.Fetcher

Fetch mood stations and get tracks for a specific mood station.

See https://kkbox.gelato.io/docs/versions/1.1/resources/mood-stations.

fetch_all_mood_stations(*args, **kwargs)

Fetches all mood stations.

Parameters:terr – the current territory.
Returns:API response.
Return type:dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/mood-stations/endpoints/get-mood-stations.

fetch_mood_station(*args, **kwargs)

Fetches a mood station by given ID.

Parameters:
  • station_id – the station ID
  • terr – the current territory.
Returns:

API response.

Return type:

dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/mood-stations/endpoints/get-mood-stations-station_id.

kkbox_developer_sdk.new_hits_playlist_fetcher module

class kkbox_developer_sdk.new_hits_playlist_fetcher.KKBOXNewHitsPlaylistFetcher(access_token)

Bases: kkbox_developer_sdk.fetcher.Fetcher

List all new hits playlists and fetch tracks for specific new hit playlist.

See ‘https://kkbox.gelato.io/docs/versions/1.1/resources/new-hits-playlists’.

fetch_all_new_hits_playlists(*args, **kwargs)

Fetches all new hits playlists.

Parameters:terr – the current territory.
Returns:API response.
Return type:dict

See ‘https://kkbox.gelato.io/docs/versions/1.1/resources/new-hits-playlists/endpoints/get-new-hits-playlists

fetch_new_hits_playlist(*args, **kwargs)

Fetches new hits playlist by given ID.

Parameters:
  • playlist_id (str) – the category.
  • terr – the current territory.
Returns:

API response.

Return type:

dict

See ‘https://kkbox.gelato.io/docs/versions/1.1/resources/new-hits-playlists/endpoints/get-new-hits-playlists-playlist_id

kkbox_developer_sdk.new_release_category_fetcher module

class kkbox_developer_sdk.new_release_category_fetcher.KKBOXNewReleaseCategoryFetcher(access_token)

Bases: kkbox_developer_sdk.fetcher.Fetcher

List categories of new release category and get metadata of specific new release category.

See https://kkbox.gelato.io/docs/versions/1.1/resources/new-release-categories.

fetch_all_new_release_categories(*args, **kwargs)

Fetches new release categories.

Parameters:terr – the current territory.
Returns:API response.
Return type:list

See https://kkbox.gelato.io/docs/versions/1.1/resources/new-release-categories/endpoints/get-new-release-categories

fetch_new_release_category(*args, **kwargs)

Fetches new release categories by given ID.

Parameters:
  • category_id (str) – the station ID.
  • terr – the current territory.
Returns:

API response.

Return type:

list

See https://kkbox.gelato.io/docs/versions/1.1/resources/new-release-categories/endpoints/get-new-release-categories-category_id

fetch_albums_of_new_release_category(*args, **kwargs)

Fetches albums of new release category by given ID.

Parameters:
  • category_id (str) – the category ID.
  • terr – the current territory.
Returns:

API response.

Return type:

list

See https://kkbox.gelato.io/docs/versions/1.1/resources/new-release-categories/endpoints/get-new-release-categories-category_id-albums

kkbox_developer_sdk.search_fetcher module

class kkbox_developer_sdk.search_fetcher.KKBOXSearchTypes

The Search types of the search API.

ARTIST = 'artist'
ALBUM = 'album'
TRACK = 'track'
PLAYLIST = 'playlist'
class kkbox_developer_sdk.search_fetcher.KKBOXSearchFetcher(access_token)

Bases: kkbox_developer_sdk.fetcher.Fetcher

Search API, the types it can search includes artists, albums, tracks, or playlists. Default to search all types, use “,” to seperate types if you want to use multiple types to search at the same time.

See https://kkbox.gelato.io/docs/versions/1.1/resources/search.

search(*args, **kwargs)

Searches within KKBOX’s database.

Parameters:
  • keyword (str) – the keyword.
  • types – the search types.
  • terr – the current territory.
Returns:

list

Returns:

API response.

Return type:

dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/search/endpoints/get-search.

kkbox_developer_sdk.shared_playlist_fetcher module

class kkbox_developer_sdk.shared_playlist_fetcher.KKBOXSharedPlaylistFetcher(access_token)

Bases: kkbox_developer_sdk.fetcher.Fetcher

Fetch metadata and tracks of a specific shared playlist.

See https://kkbox.gelato.io/docs/versions/1.1/resources/shared-playlists.

fetch_shared_playlist(*args, **kwargs)

Fetches a shared playlist by given ID.

Parameters:
  • playlist_id (str) – the playlist ID.
  • terr – the current territory.
Returns:

API response.

Return type:

dictcd

See https://kkbox.gelato.io/docs/versions/1.1/resources/shared-playlists/endpoints/get-shared-playlists-playlist_id.

fetch_tracks_of_shared_playlists(*args, **kwargs)

Fetches track list of a playlist by given ID.

Parameters:
  • playlist_id (str) – the playlist ID.
  • terr – the current territory.
Returns:

API response.

Return type:

dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/shared-playlists/endpoints/get-shared-playlists-playlist_id-tracks.

kkbox_developer_sdk.territory module

class kkbox_developer_sdk.territory.KKBOXTerritory

The territory of the KKBOX’s service.

TAIWAN = 'TW'
HONGKONG = 'HK'
SINGAPORE = 'SG'
MALAYSIA = 'MA'
JAPAN = 'JP'

kkbox_developer_sdk.track_fetcher module

class kkbox_developer_sdk.track_fetcher.KKBOXTrackFetcher(access_token)

Bases: kkbox_developer_sdk.fetcher.Fetcher

Get metadata of a track.

See https://kkbox.gelato.io/docs/versions/1.1/resources/tracks.

fetch_track(*args, **kwargs)

Fetches a song track by given ID.

Parameters:track_id (str) – the track ID.
Returns:API response.
Return type:dict

See https://kkbox.gelato.io/docs/versions/1.1/resources/tracks/endpoints/get-tracks-track_id.

Module contents