title: ArgumentError: argument --q: conflicting option string(s): --q in YouTube Data API
body: <p>I am trying to search the youtube videos using YouTube Data API in python code. I am getting Argument Error and not able to fix this issue. Already few similar issues are there. But there is no solution given to this issue so far. How can I achieve the result ? I tried to use the same code given in youtube data API's github. I am getting the above mentioned error in the following code. </p>
  
  <pre><code>from apiclient.discovery import build
  from apiclient.errors import HttpError
  from oauth2client.tools import argparser
  
  
  # Set DEVELOPER_KEY to the API key value from the APIs &amp; auth &gt; Registered apps
  # tab of
  #   https://cloud.google.com/console
  # Please ensure that you have enabled the YouTube Data API for your project.
  DEVELOPER_KEY = "API KEY" # added perfectly
  YOUTUBE_API_SERVICE_NAME = "youtube"
  YOUTUBE_API_VERSION = "v3"
  
  def youtube_search(options):
    youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
      developerKey=DEVELOPER_KEY)
  
    # Call the search.list method to retrieve results matching the specified
    # query term.
    search_response = youtube.search().list(
      q=options.q,
      part="id,snippet",
      maxResults=options.max_results
    ).execute()
  
    videos = []
    channels = []
    playlists = []
  
    # Add each result to the appropriate list, and then display the lists of
    # matching videos, channels, and playlists.
    for search_result in search_response.get("items", []):
      if search_result["id"]["kind"] == "youtube#video":
        videos.append("%s (%s)" % (search_result["snippet"]["title"],
                                   search_result["id"]["videoId"]))
      elif search_result["id"]["kind"] == "youtube#channel":
        channels.append("%s (%s)" % (search_result["snippet"]["title"],
                                     search_result["id"]["channelId"]))
      elif search_result["id"]["kind"] == "youtube#playlist":
        playlists.append("%s (%s)" % (search_result["snippet"]["title"],
                                      search_result["id"]["playlistId"]))
  
    print "Videos:\n", "\n".join(videos), "\n"
    print "Channels:\n", "\n".join(channels), "\n"
    print "Playlists:\n", "\n".join(playlists), "\n"
  
  
  if __name__ == "__main__":
    argparser.add_argument("--q", help="Search term", default="funny videos")
    argparser.add_argument("--max-results", help="Max results", default=25)
    args = argparser.parse_args()
  
  
    try:
      youtube_search(args)
    except HttpError, e:
      print "An HTTP error %d occurred:\n%s" % (e.resp.status, e.content)
  </code></pre>
  
  <p>The stack trace of the error is </p>
  
  <pre><code>ArgumentErrorTraceback (most recent call last)
  &lt;ipython-input-6-d78ab4f2931f&gt; in &lt;module&gt;()
       47 
       48 if __name__ == "__main__":
  ---&gt; 49   argparser.add_argument("--q", help="Search term", default="funny videos")
       50   argparser.add_argument("--max-results", help="Max results", default=25)
       51   args = argparser.parse_args()
  
  C:\Anaconda\lib\argparse.pyc in add_argument(self, *args, **kwargs)
     1306                 raise ValueError("length of metavar tuple does not match nargs")
     1307 
  -&gt; 1308         return self._add_action(action)
     1309 
     1310     def add_argument_group(self, *args, **kwargs):
  
  C:\Anaconda\lib\argparse.pyc in _add_action(self, action)
     1680     def _add_action(self, action):
     1681         if action.option_strings:
  -&gt; 1682             self._optionals._add_action(action)
     1683         else:
     1684             self._positionals._add_action(action)
  
  C:\Anaconda\lib\argparse.pyc in _add_action(self, action)
     1507 
     1508     def _add_action(self, action):
  -&gt; 1509         action = super(_ArgumentGroup, self)._add_action(action)
     1510         self._group_actions.append(action)
     1511         return action
  
  C:\Anaconda\lib\argparse.pyc in _add_action(self, action)
     1320     def _add_action(self, action):
     1321         # resolve any conflicts
  -&gt; 1322         self._check_conflict(action)
     1323 
     1324         # add to actions list
  
  C:\Anaconda\lib\argparse.pyc in _check_conflict(self, action)
     1458         if confl_optionals:
     1459             conflict_handler = self._get_handler()
  -&gt; 1460             conflict_handler(action, confl_optionals)
     1461 
     1462     def _handle_conflict_error(self, action, conflicting_actions):
  
  C:\Anaconda\lib\argparse.pyc in _handle_conflict_error(self, action, conflicting_actions)
     1465                                      for option_string, action
     1466                                      in conflicting_actions])
  -&gt; 1467         raise ArgumentError(action, message % conflict_string)
     1468 
     1469     def _handle_conflict_resolve(self, action, conflicting_actions):
  
  ArgumentError: argument --q: conflicting option string(s): --q
  </code></pre>