title: Python3 multi threading
body: <blockquote>
    <p>I am working on a Youtube downloader script and met  difficulty in multi->threading . I put the urls needs to be downloaded in a queue and get them one by >one with new thread spawning. Below is my code and the error are within the commant. >Please advise.</p>
  </blockquote>
  
  <pre><code>from queue import Queue
  
  
  #put all the urls in 'q'
  q = Queue()
  with open(r'c:\ProgramData\youtube_download\122.txt', 'r') as f : 
      for url in f.readlines():
          url = url.strip()
          q.put(url)  #totally 18 urls are stored in the queue
  
  
  def My_download( url_d):
  
      yt = YouTube(url_d)
      video = yt.get('mp4', '720p')
      video.download(r'C:/Users/abc/Desktop')  # The default video directory
  
  def main():
  
      while  not q.empty():
          url_d = q.get()
          q.task_done()
  ##    print(str(q.qsize()) + url_d)  &gt;&gt;until this step, everything works as expected
  
          t = Thread(target = My_download, args = url_d)  #&gt;&gt;TypeError: My_download() takes 1 positional argument but 92 were given
          t.start()
  
      q.join()
  
  
  if __name__ == "__main__":
  
      main()
  </code></pre>