





class        snake_case_    :






  def __init__(							self			:					Optional[Any]      )->Dict:






   '''simple docstring'''

   __lowerCAmelCase					:	Optional[Any]      =       {}






  def 				UpperCAmelCase__						(							self			:					List[Any]      )->None:






   '''simple docstring'''

   print(self.vertex      )
   for i in self.vertex:
    print(_snake_case       ,  """ -> """       ,  """ -> """.join([str(_snake_case      ) for j in self.vertex[i]]      )      )






  def 				UpperCAmelCase__						(							self			:					List[str]       ,  _snake_case			:					int       ,  _snake_case			:					int      )->None:






   '''simple docstring'''

   if from_vertex in self.vertex:
    self.vertex[from_vertex].append(_snake_case      )
   else:
    # else make a new vertex
    __lowerCAmelCase					:	List[str]      =       [to_vertex]






  def 				UpperCAmelCase__						(							self			:					Union[str, Any]      )->None:






   '''simple docstring'''

   __lowerCAmelCase					:	List[Any]      =       [False] * len(self.vertex      )

   # call the recursive helper function
   for i in range(len(self.vertex      )      ):
    if not visited[i]:
     self.dfs_recursive(_snake_case       ,  _snake_case      )






  def 				UpperCAmelCase__						(							self			:					Any       ,  _snake_case			:					int       ,  _snake_case			:					list      )->None:






   '''simple docstring'''

   __lowerCAmelCase					:	Dict      =       True

   print(_snake_case       ,  end=""" """      )

   # Recur for all the vertices that are adjacent to this node
   for i in self.vertex:
    if not visited[i]:
     self.dfs_recursive(_snake_case       ,  _snake_case      )


if __name__ == "__main__":
      _UpperCAmelCase             =							Graph()
      g.add_edge(0, 1)
      g.add_edge(0, 2)
      g.add_edge(1, 2)
      g.add_edge(2, 0)
      g.add_edge(2, 3)
      g.add_edge(3, 3)

      g.print_graph()
      print('DFS:')
      g.dfs()

      # OUTPUT:
      # 0  ->  1 -> 2
      # 1  ->  2
      # 2  ->  0 -> 3
      # 3  ->  3
      # DFS:
      #  0 1 2 3






from datetime import datetime

import requests






def 	_SCREAMING_SNAKE_CASE		(      SCREAMING_SNAKE_CASE		:str   )      ->   bytes:
 __lowerCAmelCase					:	List[Any]      =       """https://downloadgram.net/wp-json/wppress/video-downloader/video?url="""
 __lowerCAmelCase					:	Dict      =       requests.get(base_url + url   ).json()[0]["""urls"""][0]["""src"""]
 return requests.get(SCREAMING_SNAKE_CASE   ).content


if __name__ == "__main__":
      _UpperCAmelCase             =							input('Enter Video/IGTV url: ').strip()
      _UpperCAmelCase             =							f'''{datetime.now():%Y-%m-%d_%H:%M:%S}.mp4'''
      with open(file_name, 'wb') as fp:
            fp.write(download_video(url))
      print(f'''Done. Video saved to disk as {file_name}.''')