import gradio as gr def process_keywords_and_video(url, excel_file): metadata, error = fetch_video_metadata(url) if error: return error, None transcript, error = fetch_transcript(url) if error: return error, None sentences = split_long_sentences(transcript) keywords, attributes = read_keywords(excel_file) matched_keywords = match_keywords_in_sentences(sentences, keywords) sentiment_results = analyze_sentiment_for_keywords(matched_keywords, sentences) wordclouds = generate_word_clouds(matched_keywords) pdf_file = generate_pdf_with_sections(metadata, sentiment_results, wordclouds) return "Processing completed successfully!", pdf_file # Gradio App with gr.Blocks() as iface: gr.Markdown("