Download MT.py from ML-with-Rajibul/Sentiment-based-Music-Therapy: direct link, hf CLI and curl.
- Browser
- Download file 1.55 kB
-
https://huggingface.co/spaces/ML-with-Rajibul/Sentiment-based-Music-Therapy/resolve/main/MT.py
- Command line
-
hf download hf://spaces/ML-with-Rajibul/Sentiment-based-Music-Therapy/MT.py
-
curl -L -o MT.py https://huggingface.co/spaces/ML-with-Rajibul/Sentiment-based-Music-Therapy/resolve/main/MT.py
1.55 kB
| import random | |
| import spotipy | |
| from spotipy.oauth2 import SpotifyClientCredentials | |
| # Authenticate with Spotify API | |
| client_id = '471e06ff0a13445095909029b18c265c' | |
| client_secret = 'c0f56895d29f434cbeac4309d0b42d05' | |
| client_credentials_manager = SpotifyClientCredentials(client_id=client_id, client_secret=client_secret) | |
| sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager) | |
| def search_song_by_emotion(emotion): | |
| # Define a mapping of emotions to search keywords | |
| emotion_keywords = { | |
| "neutral": ["raga des sarangi", "raga malkauns", "raga bhairav", "raga rageshri"], | |
| "surprise": ["raag hameer", "raag kedar", "raga puriya"], | |
| "fear": ["raag bilahari", "raag purvi", "raag shudh kalyan", "raag miya ki malhar"], | |
| "sad": ["raag yaman sitar", "raga hameer","raga shyam kalyan"], | |
| "angry": ["raag jaijaiwanti", "raag bhairavi", "raga puriya", "raag kafi"], | |
| "happy": ["raga hamsadhwani sarod", "raga khamaj", "raga bhupali", "raga bahar"], | |
| "disgust": ["raga khamaj", "raga bilaskhani todi", "raga suddha kalyan"] | |
| } | |
| # Search for playlists based on the emotion keywords | |
| keywords = emotion_keywords.get(emotion.lower(), []) | |
| if keywords: | |
| keywords = random.choice(keywords) | |
| results = sp.search(q=f"track:{keywords}", type="track", limit=1) | |
| tracks = results["tracks"]["items"] | |
| # Extract song previews from the playlists | |
| if tracks: | |
| preview_url = tracks[0]["preview_url"] | |
| return preview_url | |
| return None |