import gradio as gr import os from downloader import download_from_yt from transcriber import transcribe from email_sender import send_email from auth import authorize from text_splitter import split_into_paragraphs def execute(pin, youtube_url, translate): if (not authorize(pin)): return "Błąd autoryzacji!" video_title, audio_path = download_from_yt(youtube_url) text = transcribe(audio_path, translate) formatted_text = split_into_paragraphs(text) os.remove(audio_path) is_sent = send_email(f"Transkrypcja {video_title}", formatted_text) return "Skryba zabiera się do pracy! Wypatruj emaila :)" if is_sent else "Coś się popsuło, spróbuj ponownie później :(" code = gr.Textbox(label='PIN', type='password', placeholder='*********', max_lines=1) yt_url = gr.Textbox(label='Adres YouTube', placeholder='https://www.youtube.com/watch?v=dQw4w9WgXcQ', max_lines=1) should_translate = gr.Checkbox(label='Wymaga tłumaczenia na angielski?') status = gr.Label(label='Status', value='Czekam na zlecenie!') demo = gr.Interface( fn=execute, inputs=[code, yt_url, should_translate], outputs=[status], ) if __name__ == "__main__": demo.launch()