From e0683024c14d19a5928783a3c26e35c7df64942e Mon Sep 17 00:00:00 2001 From: George Mallard Date: Sun, 11 Feb 2024 11:13:20 -0600 Subject: [PATCH] Update utils.py with a class to transcribe YouTube Videos Added Class Transcribe with method youtube which accepts a video id as a parameter. Returns the transcript. --- client/fabric/utils.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/client/fabric/utils.py b/client/fabric/utils.py index c9f397d..851b34f 100644 --- a/client/fabric/utils.py +++ b/client/fabric/utils.py @@ -7,6 +7,7 @@ import platform from dotenv import load_dotenv from requests.exceptions import HTTPError from tqdm import tqdm +from youtube_transcript_api import YouTubeTranscriptApi current_directory = os.path.dirname(os.path.realpath(__file__)) config_directory = os.path.expanduser("~/.config/fabric") @@ -369,3 +370,35 @@ class Setup: apikey = input("Please enter your OpenAI API key\n") self.api_key(apikey.strip()) self.patterns() + + +class Transcribe: + def youtube(video_id): + """ + This method gets the transciption + of a YouTube video designated with the video_id + + Input: + the video id specifing a YouTube video + an example url for a video: https://www.youtube.com/watch?v=vF-MQmVxnCs&t=306s + the video id is vF-MQmVxnCs&t=306s + + Output: + a transcript for the video + + Raises: + an exception and prints error + + + """ + try: + transcript_list = YouTubeTranscriptApi.get_transcript(video_id) + transcript = "" + for segment in transcript_list: + transcript += segment['text'] + " " + return transcript.strip() + except Exception as e: + print("Error:", e) + return None + +