diff --git a/.env_example b/.env_example index 470d39a..edeb4c3 100644 --- a/.env_example +++ b/.env_example @@ -5,3 +5,6 @@ OPENAI_TRANSCRIPTION_MODEL= OPENAI_CHAT_SYSTEM_PROMPT= OPENAI_CHAT_MODEL= OPENAI_CHAT_N= +SENDER_EMAIL= +RECEIVER_EMAIL= +SENDER_APP_PASSWORD= \ No newline at end of file diff --git a/.gitignore b/.gitignore index bd4b8c9..1f09855 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ __pycache__/* tmp/* venv/* +.venv/* .env diff --git a/app.py b/app.py index ee5d2ed..fdf107d 100644 --- a/app.py +++ b/app.py @@ -7,6 +7,9 @@ from pydub import AudioSegment from prompt import DEFAULT_PROMPT +import smtplib +from email.message import EmailMessage + VIDEO_URL = os.getenv('INPUT_VIDEO_URL', None) OUTPUT_PATH = os.getenv('OUTPUT_PATH', 'tmp') AUDIO_SEGMENT_DURATION = 30000 @@ -16,13 +19,17 @@ OPENAI_TRANSCRIPTION_MODEL = os.getenv('OPENAI_TRANSCRIPTION_MODEL', 'whisper-1' OPENAI_CHAT_SYSTEM_PROMPT = os.getenv('OPENAI_CHAT_SYSTEM_PROMPT', DEFAULT_PROMPT) OPENAI_CHAT_MODEL = os.getenv('OPENAI_CHAT_MODEL', 'whisper-1') OPENAI_CHAT_N = int(os.getenv('OPENAI_CHAT_N', '3')) +SENDER_EMAIL = os.getenv("SENDER_EMAIL") +RECEIVER_EMAIL = os.getenv("RECEIVER_EMAIL") +SENDER_APP_PASSWORD = os.getenv("SENDER_APP_PASSWORD") def main(): openai_client = OpenAI( base_url = OPENAI_BASE_URL, api_key = OPENAI_API_KEY ) - return summarize_transcription( + + summaries = summarize_transcription( openai_client, transcribe_audio( openai_client, @@ -31,6 +38,14 @@ def main(): ) ) ) + + email_body="" + for i, summary in enumerate(summaries) : + email_body += f"Option {i+1} :\n{summary.text}\n\n" + + send_email(subject="Video summaries results", body=email_body) + + return summaries def get_video_from_url(): filename = VIDEO_URL.split('/')[-1] @@ -65,6 +80,21 @@ def summarize_transcription(openai_client, transcription): prompt=OPENAI_CHAT_SYSTEM_PROMPT.format(transcription) ).choices +def send_email(subject, body, sender_email=SENDER_EMAIL, receiver_email=RECEIVER_EMAIL, sender_password=SENDER_APP_PASSWORD): + msg = EmailMessage() + msg.set_content(body) + msg['Subject'] = subject + msg['From'] = sender_email + msg['To'] = receiver_email + + try: + with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp: + smtp.login(sender_email, sender_password) + smtp.send_message(msg) + print("Email sent successfully!") + except Exception as e: + print(f"Email sending error: {e}") + def setup(): from dotenv import load_dotenv load_dotenv()