code: def generate_local_video_transcript(
      cursor: evadb.EvaDBCursor, video_path: str
  ) -> str:
      """Extracts speech from video for llm processing.
  
      Args:
          cursor (EVADBCursor): evadb api cursor.
          video_path (str): video path.
  
      Returns:
          str: video transcript text.
      """
      print(
          f"\n⏳ Analyzing local video from {video_path}. This may take a"
          " while..."
      )
  
      # load youtube video into an evadb table
      cursor.query("DROP TABLE IF EXISTS local_video;").execute()
      cursor.query(
          f"LOAD VIDEO '{video_path}' INTO local_video;"
      ).execute()
  
      # extract speech texts from videos
      cursor.query("DROP TABLE IF EXISTS local_video_text;").execute()
      cursor.query(
          "CREATE TABLE IF NOT EXISTS local_video_text AS SELECT"
          " SpeechRecognizer(audio) FROM local_video;"
      ).execute()
      print("✅ Video analysis completed.")
  
      # retrieve generated transcript
      raw_transcript_string = cursor.query(
          "SELECT text FROM local_video_text;"
      ).df()["local_video_text.text"][0]
      return raw_transcript_string
  
imports: import os
  import shutil
  from typing import Dict, List
  import pandas
  import evadb
  from pytube import YouTube, extract
  from youtube_transcript_api import YouTubeTranscriptApi
label_desc: Use image node_id 9 for calling a global function with example usage: generate_local_video_transcript(cursor, video_path) and returns: raw_transcript_string