Spaces:
Running
Running
import spotipy | |
from spotipy.oauth2 import SpotifyClientCredentials | |
class SpotifyClient: | |
def __init__(self, client_id, client_secret): | |
""" | |
Initializes the SpotifyClient with given client credentials. | |
:param client_id: Spotify API Client ID | |
:param client_secret: Spotify API Client Secret | |
""" | |
self.sp = spotipy.Spotify(client_credentials_manager=SpotifyClientCredentials(client_id, client_secret)) | |
def get_track_id(self, song_name): | |
""" | |
Searches for a track by name and returns its Spotify ID. | |
:param song_name: The name of the song to search for | |
:return: Spotify track ID or None if not found | |
""" | |
results = self.sp.search(q=song_name, type='track', limit=1) | |
if results['tracks']['items']: | |
return results['tracks']['items'][0]['id'] | |
else: | |
print(f"No results found for {song_name}") | |
return None | |
def get_track_preview_url(self, track_id): | |
""" | |
Retrieves the 30-second preview URL for a given track ID. | |
:param track_id: Spotify track ID | |
:return: Preview URL or None if not available | |
""" | |
track_info = self.sp.track(track_id) | |
return track_info.get('preview_url') | |