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()
|