docstr: Applies the list of transforms in order to the video
  
  @param video_path: the path to the video to be augmented
  
  @param output_path: the path in which the resulting video will be stored.
      If not passed in, the original video file will be overwritten
  
  @param seed: if provided, the random seed will be set to this before calling
      the transform
  
  @param metadata: if set to be a list, metadata about the function execution
      including its name, the source & dest duration, fps, etc. will be appended
      to the inputted list. If set to None, no metadata will be appended or returned
  
  @returns: the path to the augmented video
docstr_tok: ["Applies","the","list","of","transforms","in","order","to","the","video","@","param","video_path",":","the","path","to","the","video","to","be","augmented","@","param","output_path",":","the","path","in","which","the","resulting","video","will","be","stored",".","If","not","passed","in",",","the","original","video","file","will","be","overwritten","@","param","seed",":","if","provided",",","the","random","seed","will","be","set","to","this","before","calling","the","transform","@","param","metadata",":","if","set","to","be","a","list",",","metadata","about","the","function","execution","including","its","name",",","the","source","&","dest","duration",",","fps",",","etc",".","will","be","appended","to","the","inputted","list",".","If","set","to","None",",","no","metadata","will","be","appended","or","returned","@","returns",":","the","path","to","the","augmented","video"]
code: def __call__(
      self,
      video_path: str,
      output_path: Optional[str] = None,
      seed: Optional[int] = None,
      metadata: Optional[List[Dict[str, Any]]] = None,
  ) -> str:
      """
      Applies the list of transforms in order to the video
  
      @param video_path: the path to the video to be augmented
  
      @param output_path: the path in which the resulting video will be stored.
          If not passed in, the original video file will be overwritten
  
      @param seed: if provided, the random seed will be set to this before calling
          the transform
  
      @param metadata: if set to be a list, metadata about the function execution
          including its name, the source & dest duration, fps, etc. will be appended
          to the inputted list. If set to None, no metadata will be appended or returned
  
      @returns: the path to the augmented video
      """
      video_path, output_path = validate_input_and_output_paths(
          video_path, output_path
      )
  
      if video_path != output_path:
          shutil.copy(video_path, output_path)
  
      if seed is not None:
          random.seed(seed)
  
      for transform in self.transforms:
          output_path = transform(output_path, metadata=metadata)
      return output_path
  
file_path: AugLy/augly/video/composition.py
imports: import random
  import shutil
  from typing import Any, Dict, List, Optional
  from augly.video.helpers import validate_input_and_output_paths
  from augly.video.transforms import VidAugBaseClass
label_desc: Use image node_id 1 for calling the Compose obj's underlying member method code with example usage: obj.__call__(video_path, output_path, seed, metadata) and returns: output_path