spotify.v1.recommendation module
from spotify import values
from spotify.object.seed import Seed
from spotify.resource import Resource, Instance
from spotify.v1.recommendation.available_genre_seeds import AvailableGenreSeedsContext
class Attributes(object):
def __init__(self, acousticness=values.UNSET, danceability=values.UNSET, duration_ms=values.UNSET,
energy=values.UNSET, instrumentalness=values.UNSET, key=values.UNSET, liveness=values.UNSET,
loudness=values.UNSET, mode=values.UNSET, popularity=values.UNSET, speechiness=values.UNSET,
tempo=values.UNSET, time_signature=values.UNSET, valence=values.UNSET):
self.acousticness = acousticness
self.danceability = danceability
self.duration_ms = duration_ms
self.energy = energy
self.instrumentalness = instrumentalness
self.key = key
self.liveness = liveness
self.loudness = loudness
self.mode = mode
self.popularity = popularity
self.speechiness = speechiness
self.tempo = tempo
self.time_signature = time_signature
self.valence = valence
def payload(self, prefix):
payload = values.of({
'acousticness': self.acousticness,
'danceability': self.danceability,
'duration_ms': self.duration_ms,
'energy': self.energy,
'instrumentalness': self.instrumentalness,
'key': self.key,
'liveness': self.liveness,
'loudness': self.loudness,
'mode': self.mode,
'popularity': self.popularity,
'speechiness': self.speechiness,
'tempo': self.tempo,
'time_signature': self.time_signature,
'valence': self.valence
})
payload = {'{}_{}'.format(prefix, k): v for k, v in payload.items()}
return payload
class RecommendationInstance(Instance):
def __init__(self, version, properties):
super(RecommendationInstance, self).__init__(version, properties)
self._context = RecommendationContext(self.version)
@property
def seeds(self):
return [Seed.from_json(seed) for seed in self.property('seeds')]
@property
def tracks(self):
from spotify.v1.track import TrackInstance
return [TrackInstance(self.version, track) for track in self.property('tracks')]
@property
def available_genre_seeds(self):
return self._context.available_genre_seeds
class RecommendationContext(Resource):
def __init__(self, version):
super(RecommendationContext, self).__init__(version)
self._available_genre_seeds = None
@property
def available_genre_seeds(self):
if not self._available_genre_seeds:
self._available_genre_seeds = AvailableGenreSeedsContext(self.version)
return self._available_genre_seeds
def fetch(self, limit=values.UNSET, market=values.UNSET, seed_artists=None, seed_genres=None, seed_tracks=None,
max_attributes=None, min_attributes=None, target_attributes=None):
params = values.of({
'limit': limit,
'market': market
})
params.update(max_attributes.payload('max'))
params.update(min_attributes.payload('min'))
params.update(target_attributes.payload('target'))
if seed_artists:
params['seed_artists'] = ','.join(seed_artists)
if seed_genres:
params['seed_genres'] = ','.join(seed_genres)
if seed_tracks:
params['seed_tracks'] = ','.join(seed_tracks)
response = self.version.request('GET', '/recommendations', params=params)
return RecommendationInstance(self.version, response.json())
Classes
class Attributes
class Attributes(object):
def __init__(self, acousticness=values.UNSET, danceability=values.UNSET, duration_ms=values.UNSET,
energy=values.UNSET, instrumentalness=values.UNSET, key=values.UNSET, liveness=values.UNSET,
loudness=values.UNSET, mode=values.UNSET, popularity=values.UNSET, speechiness=values.UNSET,
tempo=values.UNSET, time_signature=values.UNSET, valence=values.UNSET):
self.acousticness = acousticness
self.danceability = danceability
self.duration_ms = duration_ms
self.energy = energy
self.instrumentalness = instrumentalness
self.key = key
self.liveness = liveness
self.loudness = loudness
self.mode = mode
self.popularity = popularity
self.speechiness = speechiness
self.tempo = tempo
self.time_signature = time_signature
self.valence = valence
def payload(self, prefix):
payload = values.of({
'acousticness': self.acousticness,
'danceability': self.danceability,
'duration_ms': self.duration_ms,
'energy': self.energy,
'instrumentalness': self.instrumentalness,
'key': self.key,
'liveness': self.liveness,
'loudness': self.loudness,
'mode': self.mode,
'popularity': self.popularity,
'speechiness': self.speechiness,
'tempo': self.tempo,
'time_signature': self.time_signature,
'valence': self.valence
})
payload = {'{}_{}'.format(prefix, k): v for k, v in payload.items()}
return payload
Ancestors (in MRO)
- Attributes
- __builtin__.object
Instance variables
var acousticness
var danceability
var duration_ms
var energy
var instrumentalness
var key
var liveness
var loudness
var mode
var popularity
var speechiness
var tempo
var time_signature
var valence
Methods
def __init__(
self, acousticness='UNSET', danceability='UNSET', duration_ms='UNSET', energy='UNSET', instrumentalness='UNSET', key='UNSET', liveness='UNSET', loudness='UNSET', mode='UNSET', popularity='UNSET', speechiness='UNSET', tempo='UNSET', time_signature='UNSET', valence='UNSET')
def __init__(self, acousticness=values.UNSET, danceability=values.UNSET, duration_ms=values.UNSET,
energy=values.UNSET, instrumentalness=values.UNSET, key=values.UNSET, liveness=values.UNSET,
loudness=values.UNSET, mode=values.UNSET, popularity=values.UNSET, speechiness=values.UNSET,
tempo=values.UNSET, time_signature=values.UNSET, valence=values.UNSET):
self.acousticness = acousticness
self.danceability = danceability
self.duration_ms = duration_ms
self.energy = energy
self.instrumentalness = instrumentalness
self.key = key
self.liveness = liveness
self.loudness = loudness
self.mode = mode
self.popularity = popularity
self.speechiness = speechiness
self.tempo = tempo
self.time_signature = time_signature
self.valence = valence
def payload(
self, prefix)
def payload(self, prefix):
payload = values.of({
'acousticness': self.acousticness,
'danceability': self.danceability,
'duration_ms': self.duration_ms,
'energy': self.energy,
'instrumentalness': self.instrumentalness,
'key': self.key,
'liveness': self.liveness,
'loudness': self.loudness,
'mode': self.mode,
'popularity': self.popularity,
'speechiness': self.speechiness,
'tempo': self.tempo,
'time_signature': self.time_signature,
'valence': self.valence
})
payload = {'{}_{}'.format(prefix, k): v for k, v in payload.items()}
return payload
class RecommendationContext
class RecommendationContext(Resource):
def __init__(self, version):
super(RecommendationContext, self).__init__(version)
self._available_genre_seeds = None
@property
def available_genre_seeds(self):
if not self._available_genre_seeds:
self._available_genre_seeds = AvailableGenreSeedsContext(self.version)
return self._available_genre_seeds
def fetch(self, limit=values.UNSET, market=values.UNSET, seed_artists=None, seed_genres=None, seed_tracks=None,
max_attributes=None, min_attributes=None, target_attributes=None):
params = values.of({
'limit': limit,
'market': market
})
params.update(max_attributes.payload('max'))
params.update(min_attributes.payload('min'))
params.update(target_attributes.payload('target'))
if seed_artists:
params['seed_artists'] = ','.join(seed_artists)
if seed_genres:
params['seed_genres'] = ','.join(seed_genres)
if seed_tracks:
params['seed_tracks'] = ','.join(seed_tracks)
response = self.version.request('GET', '/recommendations', params=params)
return RecommendationInstance(self.version, response.json())
Ancestors (in MRO)
- RecommendationContext
- spotify.resource.Resource
- __builtin__.object
Instance variables
var available_genre_seeds
Methods
def __init__(
self, version)
def __init__(self, version):
super(RecommendationContext, self).__init__(version)
self._available_genre_seeds = None
def fetch(
self, limit='UNSET', market='UNSET', seed_artists=None, seed_genres=None, seed_tracks=None, max_attributes=None, min_attributes=None, target_attributes=None)
def fetch(self, limit=values.UNSET, market=values.UNSET, seed_artists=None, seed_genres=None, seed_tracks=None,
max_attributes=None, min_attributes=None, target_attributes=None):
params = values.of({
'limit': limit,
'market': market
})
params.update(max_attributes.payload('max'))
params.update(min_attributes.payload('min'))
params.update(target_attributes.payload('target'))
if seed_artists:
params['seed_artists'] = ','.join(seed_artists)
if seed_genres:
params['seed_genres'] = ','.join(seed_genres)
if seed_tracks:
params['seed_tracks'] = ','.join(seed_tracks)
response = self.version.request('GET', '/recommendations', params=params)
return RecommendationInstance(self.version, response.json())
class RecommendationInstance
class RecommendationInstance(Instance):
def __init__(self, version, properties):
super(RecommendationInstance, self).__init__(version, properties)
self._context = RecommendationContext(self.version)
@property
def seeds(self):
return [Seed.from_json(seed) for seed in self.property('seeds')]
@property
def tracks(self):
from spotify.v1.track import TrackInstance
return [TrackInstance(self.version, track) for track in self.property('tracks')]
@property
def available_genre_seeds(self):
return self._context.available_genre_seeds
Ancestors (in MRO)
- RecommendationInstance
- spotify.resource.Instance
- spotify.resource.Resource
- __builtin__.object
Instance variables
var available_genre_seeds
var seeds
var tracks
Methods
def __init__(
self, version, properties)
def __init__(self, version, properties):
super(RecommendationInstance, self).__init__(version, properties)
self._context = RecommendationContext(self.version)
def property(
self, name, default=None)
def property(self, name, default=None):
return self.properties.get(name, default)