fixed formating
This commit is contained in:
35
main.py
35
main.py
@@ -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():
|
||||||
OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY')
|
try:
|
||||||
video_url = str(input("video url:"))
|
OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY')
|
||||||
audio_filename = download_audio(video_url)
|
video_url = str(input("video url:"))
|
||||||
transcript = transcription(OPENAI_API_KEY, audio_filename)
|
audio_filename = download(video_url)
|
||||||
summarize(OPENAI_API_KEY, transcript)
|
transcript = transcription(OPENAI_API_KEY, audio_filename)
|
||||||
cleanup(audio_filename)
|
summary(OPENAI_API_KEY, transcript)
|
||||||
|
cleanup(audio_filename)
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user