from youtubesearchpython import VideosSearch, Transcript # Changed import statement import gradio as gr # Added import statement for Gradio import openai import os openai.api_key = os.getenv('O_API_KEY') def search_youtube_videos(keyword): videos_search = VideosSearch(keyword, limit=5) results = videos_search.result() video_urls = [video['link'] for video in results['result']] return video_urls # Function to get the transcript for a given list of video URLs def get_transcript(urls): contents = '' for url in urls: data = Transcript.get(url) text = "" for segment in data['transcript']: text += segment['text'] contents += text return contents # Function to summarize text using OpenAI's API def summarize_text(contents): response = openai.Completion.create( engine="text-davinci-003", prompt=f"요약: {contents}", max_tokens=150 ) return response.choices[0].text.strip() # Function to integrate all the functionalities def summarize_youtube_videos(keyword): urls = search_youtube_videos(keyword) contents = get_transcript(urls) summary = summarize_text(contents) return summary # Define Gradio interface iface = gr.Interface( fn=summarize_youtube_videos, inputs="text", # Changed input to "text" (user input) outputs="text", title="Summarize YouTube Videos", description="Enter a keyword to summarize related YouTube videos.", ) # Launch Gradio interface iface.launch()