Lyrsound / app.py
anas.mkh
initial commit
2e7adc1
raw
history blame
1.49 kB
import gradio as gr
from langchain.document_loaders.generic import GenericLoader
from langchain.document_loaders.parsers import OpenAIWhisperParser
from langchain.document_loaders.blob_loaders.youtube_audio import YoutubeAudioLoader
import openai
import os
import platform
# Set OpenAI API Key
os.environ['OPENAI_API_KEY'] = "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"
openai.api_key = os.environ['OPENAI_API_KEY']
def add_link(url):
# Detect the running platform (laptop or mobile)
running_platform = platform.system().lower()
# Define saving directory based on the platform
if running_platform == 'linux' or running_platform == 'darwin':
save_dir = "docs/youtube/laptop/"
elif running_platform == 'windows':
save_dir = "docs/youtube/desktop/"
else:
save_dir = "docs/youtube/unknown_platform/"
# Ensure the directory exists
os.makedirs(save_dir, exist_ok=True)
# Create loader and parser
loader = GenericLoader(
YoutubeAudioLoader([url], save_dir),
OpenAIWhisperParser()
)
# Load documents
docs = loader.load()
# Show a message indicating the downloading process is complete
completion_message = f"Downloading process for {url} is complete. Saved in {save_dir}"
return completion_message
# Create Gradio interface
demo = gr.Interface(fn=add_link, inputs='text', outputs='text')
# Launch the interface
if __name__ == "__main__":
demo.launch(debug=False, share=True)