diff --git a/audio.mp4 b/audio.mp4 deleted file mode 100644 index 7117ca8..0000000 Binary files a/audio.mp4 and /dev/null differ diff --git a/main.py b/main.py index 4c74788..2d878f4 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,3 @@ -# Youtube Video Summarizer -# Steps: Download audio of youtube video, transcribe text using openaimodels, from text use chatgpt models to summarize the content. - import os from openai import OpenAI from pytube import YouTube @@ -17,38 +14,48 @@ def download_audio(video_url, output_filename='audio.mp4'): return None def transcription(OPENAI_API_KEY, audio_filename): - client = OpenAI(api_key=OPENAI_API_KEY) + try: + client = OpenAI(api_key=OPENAI_API_KEY) - audio_file = open(audio_filename, "rb") + audio_file = open(audio_filename, "rb") - transcript = client.audio.transcriptions.create( - file=audio_file, - model="whisper-1", - language="en", - prompt="", - response_format="json", - temperature=0.0 - ) + transcript = client.audio.transcriptions.create( + file=audio_file, + model="whisper-1", + language="en", + prompt="", + response_format="json", + temperature=0.0 + ) - print("Transcription finished") + print("Transcription finished") + + os.remove(audio_filename) - return transcript + return transcript + except Exception as e: + print(f"Failed to transcript audio: {e}") + return None def summarize(OPENAI_API_KEY, transcript): - client = OpenAI(api_key=OPENAI_API_KEY) - stream = client.chat.completions.create( - model="gpt-4", - messages=[ - {"role": "system", "content": "The prompt you will receive will be the transcript of a youtube video, your objective is to summarize the content of that transcript to the best of your ability, keep in mind there may be music or other parasit noises in the transcript."}, - {"role": "user", "content": str(transcript)} - ], - stream=True, - ) + try: + client = OpenAI(api_key=OPENAI_API_KEY) + stream = client.chat.completions.create( + model="gpt-4", + messages=[ + {"role": "system", "content": "The prompt you will receive will be the transcript of a youtube video, your objective is to summarize the content of that transcript to the best of your ability, keep in mind there may be music or other parasit noises in the transcript."}, + {"role": "user", "content": str(transcript)} + ], + stream=True, + ) + + for chunk in stream: + if chunk.choices[0].delta.content is not None: + print(chunk.choices[0].delta.content, end="", flush=True) + except Exception as e: + print(f"Failed to summarize transcript: {e}") + return None - for chunk in stream: - if chunk.choices[0].delta.content is not None: - print(chunk.choices[0].delta.content, end="", flush=True) - def main(): OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY') video_url = str(input("video url:"))