added some try except blocks and remove file after transcript is finished.

This commit is contained in:
2024-02-13 22:11:04 -05:00
parent 5d6d910439
commit a4e735563f
2 changed files with 35 additions and 28 deletions

BIN
audio.mp4

Binary file not shown.

13
main.py
View File

@@ -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 import os
from openai import OpenAI from openai import OpenAI
from pytube import YouTube from pytube import YouTube
@@ -17,6 +14,7 @@ def download_audio(video_url, output_filename='audio.mp4'):
return None return None
def transcription(OPENAI_API_KEY, audio_filename): def transcription(OPENAI_API_KEY, audio_filename):
try:
client = OpenAI(api_key=OPENAI_API_KEY) client = OpenAI(api_key=OPENAI_API_KEY)
audio_file = open(audio_filename, "rb") audio_file = open(audio_filename, "rb")
@@ -32,9 +30,15 @@ def transcription(OPENAI_API_KEY, audio_filename):
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): def summarize(OPENAI_API_KEY, transcript):
try:
client = OpenAI(api_key=OPENAI_API_KEY) client = OpenAI(api_key=OPENAI_API_KEY)
stream = client.chat.completions.create( stream = client.chat.completions.create(
model="gpt-4", model="gpt-4",
@@ -48,6 +52,9 @@ def summarize(OPENAI_API_KEY, transcript):
for chunk in stream: for chunk in stream:
if chunk.choices[0].delta.content is not None: if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="", flush=True) print(chunk.choices[0].delta.content, end="", flush=True)
except Exception as e:
print(f"Failed to summarize transcript: {e}")
return None
def main(): def main():
OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY') OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY')