import cv2 import pytube import gradio as gr from main import predict_mcq from youtube_transcript_api import YouTubeTranscriptApi as yt def YtToQuizz(link): video_id=pytube.extract.video_id(link) transcript=yt.get_transcript(video_id) data="" for text in transcript: data+=text.get('text') return data def put_in_single_list(data): result=[] final_result=[] for i in data: result.append(i.get("question_statement")) result.append(i.get("answer")) result.append(i.get("options")) final_result.append(result) return final_result def MCQGenerator(url): I_text=YtToQuizz(url) text={ "input_text":I_text } Mcqs=predict_mcq(text) data=Mcqs.get('questions') print(data) if data is not None: #final_result=put_in_single_list(data) statement="" answer="" options="" for mcq in data: statement+=mcq.get('question_statement')+',' answer+=mcq.get('answer')+',' options+=mcq.get('options')[0]+','+mcq.get('options')[1]+','+mcq.get('options')[2]+',' return statement,answer,options else: return "Null","Null","Null" iface=gr.Interface(fn=MCQGenerator,inputs=[gr.components.Textbox(label="Enter YouTube Link")],outputs=[gr.components.Textbox(label="Question"),gr.components.Textbox(label="Answer"),gr.components.Textbox(label="Options")], ) iface.launch(debug=True)