class_docstr: Youtube Video info  by video id Table implementation
class_docstr_tok: ["Youtube","Video","info","by","video","id","Table","implementation"]
code: def select(self, query: ast.Select) -> pd.DataFrame:
      select_statement_parser = SELECTQueryParser(
          query, "video", self.get_columns()
      )
  
      (
          selected_columns,
          where_conditions,
          order_by_conditions,
          result_limit,
      ) = select_statement_parser.parse_query()
  
      video_id, channel_id = None, None
      for op, arg1, arg2 in where_conditions:
          if arg1 == "video_id":
              if op == "=":
                  video_id = arg2
              else:
                  raise NotImplementedError(
                      "Only '=' operator is supported for video_id column."
                  )
  
          elif arg1 == "channel_id":
              if op == "=":
                  channel_id = arg2
              else:
                  raise NotImplementedError(
                      "Only '=' operator is supported for channel_id column."
                  )
  
      if not video_id and not channel_id:
          raise ValueError(
              "Either video_id or channel_id has to be present in where clause."
          )
  
      if video_id:
          video_df = self.get_videos_by_video_ids([video_id])
      else:
          video_df = self.get_videos_by_channel_id(channel_id)
  
      select_statement_executor = SELECTQueryExecutor(
          video_df,
          selected_columns,
          [
              where_condition
              for where_condition in where_conditions
              if where_condition[1] not in ["video_id", "channel_id"]
          ],
          order_by_conditions,
          result_limit if query.limit else None,
      )
  
      video_df = select_statement_executor.execute_query()
  
      return video_df
  
imports: from typing import List
  from mindsdb.integrations.libs.api_handler import APITable
  from mindsdb.integrations.utilities.sql_utils import extract_comparison_conditions
  from mindsdb.utilities import log
  from mindsdb_sql.parser import ast
  from mindsdb.integrations.handlers.utilities.query_utilities import SELECTQueryParser, SELECTQueryExecutor, INSERTQueryParser
  import pandas
  import re
  from youtube_transcript_api import YouTubeTranscriptApi
  from youtube_transcript_api.formatters import JSONFormatter
label_desc: Use image node_id 1 for calling the YoutubeVideosTable obj's underlying member method code with example usage: obj.select(query) and returns: video_df