import gradio as gr | |
from tool import YouTubeTranscriptExtractor, TranscriptSummarizer | |
youtube_tool = YouTubeTranscriptExtractor() | |
summarizer_tool = TranscriptSummarizer() | |
def process_youtube_video(video_url): | |
transcript = youtube_tool.forward(video_url=video_url) | |
summary_and_blog = summarizer_tool.forward(transcript=transcript) | |
try: | |
summary, image_url = summary_and_blog.split("\n\nImage URL: ") | |
except ValueError: | |
summary = summary_and_blog | |
image_url = None | |
return transcript, summary, image_url | |
iface = gr.Interface( | |
fn=process_youtube_video, | |
inputs="text", | |
outputs=[ | |
gr.Textbox(label="Transcript"), | |
gr.Textbox(label="Summary and Blog Content"), | |
gr.Image(label="Generated Image", image_mode="RGBA") | |
], | |
title="YouTube Transcript Summarizer and Blog Content Generator", | |
description="Enter a YouTube video URL to extract the transcript, summarize it, and generate blog content with an image." | |
) | |
iface.launch() | |