ModusMusic / spotify_api.py
IshmamF's picture
Upload 5 files
1321ce6
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')