File size: 1,244 Bytes
641002d
 
 
c27d4ee
641002d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c27d4ee
641002d
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import gradio as gr
import requests

# āœ… Your YouTube API key
YOUTUBE_API_KEY = "AIzaSyCEZFjFEuqBsFDi0CV12BkFJgGl7Lo6qkQ"

def recommend_music(emotion):
    youtube_url = "https://www.googleapis.com/youtube/v3/search"
    params = {
        "part": "snippet",
        "q": f"{emotion} songs",
        "type": "video",
        "maxResults": 4,
        "key": YOUTUBE_API_KEY
    }

    response = requests.get(youtube_url, params=params)
    if response.status_code == 200:
        items = response.json().get("items", [])
        results = ""
        for item in items:
            video_id = item["id"]["videoId"]
            title = item["snippet"]["title"]
            results += f"<p><a href='https://www.youtube.com/watch?v={video_id}' target='_blank'>{title}</a></p>"
        return results
    else:
        return "Failed to fetch music recommendations."

iface = gr.Interface(
    fn=recommend_music,
    inputs=gr.Textbox(label="Detected Emotion"),
    outputs=gr.HTML(label="Recommended Songs"),
    title="šŸŽ¶ Mood Based Music Recommender",
    description="Input your detected emotion from webcam to get song recommendations instantly šŸ’–"
)

if __name__ == "__main__":
    iface.launch()