| 165 | |
| 166 | |
| 167 | def recommendSong(spotifyObject, song1, song2, song3): |
| 168 | results_1 = spotifyObject.search(q=song1, type="track") |
| 169 | song_1_id = results_1["tracks"]["items"][0]["id"] |
| 170 | |
| 171 | results_2 = spotifyObject.search(q=song2, type="track") |
| 172 | song_2_id = results_2["tracks"]["items"][0]["id"] |
| 173 | |
| 174 | results_3 = spotifyObject.search(q=song3, type="track") |
| 175 | song_3_id = results_3["tracks"]["items"][0]["id"] |
| 176 | |
| 177 | recommendations = spotifyObject.recommendations( |
| 178 | seed_tracks=[song_1_id, song_2_id, song_3_id] |
| 179 | ) |
| 180 | recommended_song = recommendations["tracks"][0]["name"] |
| 181 | recommended_song_id = recommendations["tracks"][0]["id"] |
| 182 | recommended_song_url = recommendations["tracks"][0]["external_urls"]["spotify"] |
| 183 | |
| 184 | track = spotifyObject.track(recommended_song_id) |
| 185 | artist = track["artists"][0]["name"] |
| 186 | |
| 187 | print(f"\nRecommended song: {recommended_song} - {artist}") |
| 188 | play = input("Would you like to play this song [yes/no]: ").lower() |
| 189 | |
| 190 | if play in ["y", "yes"]: |
| 191 | print(f"{fore.GREEN}✅ Playing {recommended_song} - {artist}{fore.RESET}") |
| 192 | |
| 193 | scope = "user-modify-playback-state" |
| 194 | token = util.prompt_for_user_token( |
| 195 | username, |
| 196 | scope, |
| 197 | client_id=clientID, |
| 198 | client_secret=clientSecret, |
| 199 | redirect_uri=redirectURI, |
| 200 | ) |
| 201 | |
| 202 | sp = spotipy.Spotify(auth=token) |
| 203 | sp.start_playback(uris=[recommended_song_url]) |
| 204 | |
| 205 | |
| 206 | ######################### |