docs: def main():
      """
      Run autosub as a command-line program.
      """
      parser = argparse.ArgumentParser()
      parser.add_argument('source_path', help="Path to the video or audio file to subtitle",
                          nargs='?')
      parser.add_argument('-C', '--concurrency', help="Number of concurrent API requests to make",
                          type=int, default=DEFAULT_CONCURRENCY)
      parser.add_argument('-o', '--output',
                          help="Output path for subtitles (by default, subtitles are saved in \
                          the same directory and name as the source path)")
      parser.add_argument('-F', '--format', help="Destination subtitle format",
                          default=DEFAULT_SUBTITLE_FORMAT)
      parser.add_argument('-S', '--src-language', help="Language spoken in source file",
                          default=DEFAULT_SRC_LANGUAGE)
      parser.add_argument('-D', '--dst-language', help="Desired language for the subtitles",
                          default=DEFAULT_DST_LANGUAGE)
      parser.add_argument('-K', '--api-key',
                          help="The Google Translate API key to be used. \
                          (Required for subtitle translation)")
      parser.add_argument('--list-formats', help="List all available subtitle formats",
                          action='store_true')
      parser.add_argument('--list-languages', help="List all available source/destination languages",
                          action='store_true')
  
      args = parser.parse_args()
  
      if args.list_formats:
          print("List of formats:")
          for subtitle_format in FORMATTERS:
              print("{format}".format(format=subtitle_format))
          return 0
  
      if args.list_languages:
          print("List of all languages:")
          for code, language in sorted(LANGUAGE_CODES.items()):
              print("{code}\t{language}".format(code=code, language=language))
          return 0
  
      if not validate(args):
          return 1
  
      try:
          subtitle_file_path = generate_subtitles(
              source_path=args.source_path,
              concurrency=args.concurrency,
              src_language=args.src_language,
              dst_language=args.dst_language,
              api_key=args.api_key,
              subtitle_file_format=args.format,
              output=args.output,
          )
          print("Subtitles file created at {}".format(subtitle_file_path))
      except KeyboardInterrupt:
          return 1
  
      return 0