formating
This commit is contained in:
25
main.py
25
main.py
@@ -6,7 +6,9 @@ from pytube import YouTube
|
||||
|
||||
def get_api_key():
|
||||
try:
|
||||
print("Retreiving OpenAI API Key...")
|
||||
OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY')
|
||||
print(f"Retreived OpenAI API Key.")
|
||||
return OPENAI_API_KEY
|
||||
except Exception as e:
|
||||
print(f"Failed to retrieve OpenAI API Key: {e}")
|
||||
@@ -19,7 +21,7 @@ def download(video_url, output_filename='audio.mp4'):
|
||||
yt = YouTube(video_url)
|
||||
audio_stream = yt.streams.get_audio_only()
|
||||
audio_filename = audio_stream.download(filename=output_filename)
|
||||
print(f"Downloaded '{yt.title}' audio.")
|
||||
print(f"Downloaded audio.")
|
||||
return audio_filename
|
||||
except Exception as e:
|
||||
print(f"Failed to download audio: {e}")
|
||||
@@ -38,7 +40,7 @@ def transcription(OPENAI_API_KEY, audio_filename):
|
||||
model="whisper-1",
|
||||
)
|
||||
|
||||
print("Transcription finished.")
|
||||
print("Transcripted audio.")
|
||||
return transcript
|
||||
except Exception as e:
|
||||
print(f"Failed to transcript audio: {e}")
|
||||
@@ -52,7 +54,7 @@ def summary(OPENAI_API_KEY, transcript):
|
||||
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": "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 parasite noises in the transcript."},
|
||||
{"role": "user", "content": str(transcript)}
|
||||
],
|
||||
stream=True,
|
||||
@@ -62,7 +64,7 @@ def summary(OPENAI_API_KEY, transcript):
|
||||
if chunk.choices[0].delta.content is not None:
|
||||
print(chunk.choices[0].delta.content, end="", flush=True)
|
||||
|
||||
print("\nSummarizing finished.")
|
||||
print("\nSummarized transcript.")
|
||||
except Exception as e:
|
||||
print(f"Failed to summarize transcript: {e}")
|
||||
return None
|
||||
@@ -77,17 +79,18 @@ def cleanup(audio_filename):
|
||||
print(f"Failed to delete audio: {e}")
|
||||
return None
|
||||
|
||||
# Main function to orchestrate the download, transcription, summarization, and cleanup process.
|
||||
# Main function to orchestrate the API Key retreival, download, transcription, summarization, and cleanup process.
|
||||
def main():
|
||||
try:
|
||||
OPENAI_API_KEY = get_api_key()
|
||||
video_url = str(input("Video url: "))
|
||||
audio_filename = download(video_url)
|
||||
if audio_filename is not None:
|
||||
transcript = transcription(OPENAI_API_KEY, audio_filename)
|
||||
if transcript is not None:
|
||||
summary(OPENAI_API_KEY, transcript)
|
||||
cleanup(audio_filename)
|
||||
if OPENAI_API_KEY is not None:
|
||||
audio_filename = download(video_url)
|
||||
if audio_filename is not None:
|
||||
transcript = transcription(OPENAI_API_KEY, audio_filename)
|
||||
if transcript is not None:
|
||||
summary(OPENAI_API_KEY, transcript)
|
||||
cleanup(audio_filename)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
finally:
|
||||
|
||||
Reference in New Issue
Block a user