def topTracks(token, id): queryParams = rootParams.copy() queryParams["endpoint"] = "/artists/" + id + "/top-tracks" queryParams["token"] = token queryParams["params"]["country"] = "DE" query = buildQuery(queryParams) res = requests.get(url=query["url"], headers=query["header"]) return json.loads(res.text)
def querySaved(token, trackIds): queryParams = rootParams.copy() queryParams["endpoint"] = "/me/tracks/contains" queryParams["token"] = token queryParams["params"]["ids"] = ','.join(trackIds) query = buildQuery(queryParams) res = requests.get(url=query["url"], headers=query["header"]) return json.loads(res.text)
def getFavs(token, type, tr, limit): queryParams = rootParams.copy() queryParams["endpoint"] = ("/me/top/" + type) queryParams["token"] = token queryParams["params"]["time_range"] = tr queryParams["params"]["limit"] = limit query = buildQuery(queryParams) res = requests.get(url=query["url"], headers=query["header"]) return json.loads(res.text)
def replaceTracks(token, trackUris): queryParams = rootParams.copy() queryParams["endpoint"] = ("/users/" + userID + "/playlists/" + playlistID + "/tracks") queryParams["token"] = token queryParams["payload"]["uris"] = trackUris query = buildQuery(queryParams) requests.put(url=query["url"], headers=query["header"], data=json.dumps(query["payload"]))
def by(token, type, searchList, numReq): queryParams = rootParams.copy() res = [] for i in xrange(numReq): queryParams["params"]["q"] = getSearchQuery(searchList) queryParams["params"]["type"] = type queryParams["endpoint"] = "/search" queryParams["token"] = token query = buildQuery(queryParams) response = requests.get(url=query["url"], headers=query["header"]) responseJson = json.loads(response.text) if str(type + "s") in responseJson: try: res.append(random.choice(responseJson["artists"]["items"])) except: continue return res
def getRelated(token, topTracks, numReq, numTrPerReq): queryParams = rootParams.copy() queryParams["token"] = token queryParams["endpoint"] = "/recommendations" relatedTracks = [] for i in xrange(numReq): queryParams["params"]["seed_tracks"] = getRandTracks(topTracks) query = buildQuery(queryParams) res = requests.get(url=query["url"], headers=query["header"]) resJson = json.loads(res.text) for i, track in enumerate(resJson["tracks"]): if i < numTrPerReq and not track["uri"] in relatedTracks: try: relatedTracks.append(track["uri"]) except: continue return relatedTracks