springwater's picture
Update app.py
9ea458e verified
raw
history blame
1.53 kB
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['segments']:
text += segment['text']
contents += text
return contents
# Function to summarize text using OpenAI's API
def summarize_text(contents):
response = openai.ChatCompletion.create(
engine="gpt-3.5-turbo-0125",
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()