VPCSinfo's picture
[FEATURE] enhance YouTube transcript summarization with dynamic chunking and API key input
b984651
import gradio as gr
from tool import YouTubeTranscriptExtractor, TranscriptSummarizer
youtube_tool = YouTubeTranscriptExtractor()
#summarizer_tool = TranscriptSummarizer()
def process_youtube_video(video_url, hf_api_key):
summarizer_tool = TranscriptSummarizer(hf_api_key=hf_api_key)
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=[
gr.Textbox(label="YouTube Video URL"),
gr.Textbox(label="Hugging Face API Key", type="password")
],
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 and Hugging Face API Key to extract the transcript, summarize it, and generate blog content with an image."
)
iface.launch()