import streamlit as st from streamlit_player import st_player from model import Engine from fetch_transcript import fetch_transcript from preprocessing import create_similarity_text, create_result_url with st.container(): st.title('YouTube Q&A Search') st.write('Ask YouTube videos questions and get your answers :)') with st.container(): url_input = st.text_input(label='Video',placeholder='enter YouTube video url') question_input = st.text_input(label='Question',placeholder='enter your question') get_ans = st.button(label='Answer!') if len(url_input)!='' and len(question_input)!='' and get_ans: with st.spinner('loading your video...'): transcript = fetch_transcript(url_input) model = Engine(transcript) prev_url = url_input with st.spinner('finding an answer...'): answer = model.ask(question_input) similarity_text = create_similarity_text(question_input,answer) groups,timestamps = model.find_similar(similarity_text) url = create_result_url(url_input,timestamps[0]) with st.container(): st.caption('Extracted Answer:') st.write(answer) st.caption('In Video:') st_player(url)