NewsMuse_Radio / app.py
eswardivi's picture
Update app.py
18abbdd verified
raw
history blame
3.32 kB
import gradio as gr
import requests
import tempfile
# Audio URLs
AUDIO_URLS = {
"Money": "https://pub-6dc43089a07d4218adb4b0579b3be0b9.r2.dev/News/News_Money.wav",
"Geopolitical": "https://pub-6dc43089a07d4218adb4b0579b3be0b9.r2.dev/News/News_Geopolitical.wav",
"World": "https://pub-6dc43089a07d4218adb4b0579b3be0b9.r2.dev/News/News_World.wav",
"Entertainment": "https://pub-6dc43089a07d4218adb4b0579b3be0b9.r2.dev/News/News_Entertainment.wav",
"Health": "https://pub-6dc43089a07d4218adb4b0579b3be0b9.r2.dev/News/News_Health.wav",
"Sports": "https://pub-6dc43089a07d4218adb4b0579b3be0b9.r2.dev/News/News_Sports.wav"
}
def fetch_audio(category):
# Fetch audio from URL and save it to a temporary file
url = AUDIO_URLS[category]
response = requests.get(url)
response.raise_for_status() # Ensure the request was successful
# Save to a temporary file
temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".wav")
temp_file.write(response.content)
temp_file.close()
return temp_file.name # Return the path to the temporary file
def create_news_dashboard():
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.Markdown("# πŸ“» Radio News Dashboard")
with gr.Row():
with gr.Column(scale=1):
gr.Markdown("### πŸ’° Money News")
money_audio = gr.Audio(interactive=False, type="filepath")
money_btn = gr.Button("Play Money News")
money_btn.click(fn=fetch_audio, inputs="Money", outputs=money_audio)
with gr.Column(scale=1):
gr.Markdown("### 🌍 Geopolitical News")
geo_audio = gr.Audio(interactive=False, type="filepath")
geo_btn = gr.Button("Play Geopolitical News")
geo_btn.click(fn=fetch_audio, inputs="Geopolitical", outputs=geo_audio)
with gr.Column(scale=1):
gr.Markdown("### 🌐 World News")
world_audio = gr.Audio(interactive=False, type="filepath")
world_btn = gr.Button("Play World News")
world_btn.click(fn=fetch_audio, inputs="World", outputs=world_audio)
with gr.Row():
with gr.Column(scale=1):
gr.Markdown("### 🎭 Entertainment")
ent_audio = gr.Audio(interactive=False, type="filepath")
ent_btn = gr.Button("Play Entertainment News")
ent_btn.click(fn=fetch_audio, inputs="Entertainment", outputs=ent_audio)
with gr.Column(scale=1):
gr.Markdown("### πŸ₯ Health News")
health_audio = gr.Audio(interactive=False, type="filepath")
health_btn = gr.Button("Play Health News")
health_btn.click(fn=fetch_audio, inputs="Health", outputs=health_audio)
with gr.Column(scale=1):
gr.Markdown("### πŸ† Sports News")
sports_audio = gr.Audio(interactive=False, type="filepath")
sports_btn = gr.Button("Play Sports News")
sports_btn.click(fn=fetch_audio, inputs="Sports", outputs=sports_audio)
return demo
if __name__ == "__main__":
demo = create_news_dashboard()
demo.launch()