fixed formating

This commit is contained in:
2024-02-13 23:11:36 -05:00
parent fca2dcf682
commit a1e753a6d0

27
main.py
View File

@@ -1,14 +1,15 @@
import os import os
from openai import OpenAI from openai import OpenAI
from pytube import YouTube from pytube import YouTube
def download_audio(video_url, output_filename='audio.mp4'): def download(video_url, output_filename='audio.mp4'):
try: try:
print("Starting audio download.") print("Downloading audio...")
yt = YouTube(video_url) yt = YouTube(video_url)
audio_stream = yt.streams.get_audio_only() audio_stream = yt.streams.get_audio_only()
audio_filename = audio_stream.download(filename=output_filename) audio_filename = audio_stream.download(filename=output_filename)
print(f"Downloaded '{yt.title}' audio to {audio_filename}") print(f"Downloaded '{yt.title}' audio.")
return audio_filename return audio_filename
except Exception as e: except Exception as e:
print(f"Failed to download audio: {e}") print(f"Failed to download audio: {e}")
@@ -16,7 +17,7 @@ def download_audio(video_url, output_filename='audio.mp4'):
def transcription(OPENAI_API_KEY, audio_filename): def transcription(OPENAI_API_KEY, audio_filename):
try: try:
print("Transcription started.") print("Transcriptiting audio...")
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")
@@ -27,15 +28,14 @@ def transcription(OPENAI_API_KEY, audio_filename):
) )
print("Transcription finished.") print("Transcription finished.")
return transcript return transcript
except Exception as e: except Exception as e:
print(f"Failed to transcript audio: {e}") print(f"Failed to transcript audio: {e}")
return None return None
def summarize(OPENAI_API_KEY, transcript): def summary(OPENAI_API_KEY, transcript):
try: try:
print("Summarizing starting") print("Summarizing transcript...")
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",
@@ -50,27 +50,30 @@ def summarize(OPENAI_API_KEY, transcript):
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)
print("Summarizing finished") print("\nSummarizing finished.")
except Exception as e: except Exception as e:
print(f"Failed to summarize transcript: {e}") print(f"Failed to summarize transcript: {e}")
return None return None
def cleanup(audio_filename): def cleanup(audio_filename):
try: try:
print("Deleting audio file") print("Deleting audio...")
os.remove(audio_filename) os.remove(audio_filename)
print(f"Deleted audio: {audio_filename}") print(f"Deleted audio: {audio_filename}")
except Exception as e: except Exception as e:
print(f"Failed to delete audio: {audio_filename}: {e}") print(f"Failed to delete audio: {e}")
return None return None
def main(): def main():
try:
OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY') OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY')
video_url = str(input("video url:")) video_url = str(input("video url:"))
audio_filename = download_audio(video_url) audio_filename = download(video_url)
transcript = transcription(OPENAI_API_KEY, audio_filename) transcript = transcription(OPENAI_API_KEY, audio_filename)
summarize(OPENAI_API_KEY, transcript) summary(OPENAI_API_KEY, transcript)
cleanup(audio_filename) cleanup(audio_filename)
except Exception as e:
print(e)
if __name__ == "__main__": if __name__ == "__main__":
main() main()