title: ERROR 409: Requested entity already exists
body: <p>I am using the sample code in this site <a href="https://developers.google.com/youtube/reporting/v1/reference/rest/v1/reportTypes/list" rel="nofollow noreferrer">https://developers.google.com/youtube/reporting/v1/reference/rest/v1/reportTypes/list</a>
  After setting-up successfully libraries and importing <code>CLIENT_SECRETS_FILE</code> into the code. When I run the code. It returned</p>
  
  <pre><code>Report type id: playlist_playback_location_a1
   name: Playlist playback locations
  Report type id: playlist_province_a1
   name: Playlist province
  Report type id: playlist_traffic_source_a1
   name: Playlist traffic sources
  </code></pre>
  
  <p>I want to get playlist users in <code>playlist_basic_a1</code> table so I entered the <strong>reportTypeId</strong> for the job: <code>playlist_basic_a1</code>
  and set a <strong>name</strong> for the job: <code>Playlist user activity</code>
  Then It returned an error like this:</p>
  
  <pre><code>An HTTP error 409 occurred:
  {
    "error": {
      "code": 409,
      "message": "Requested entity already exists",
      "errors": [
        {
          "message": "Requested entity already exists",
          "domain": "global",
          "reason": "alreadyExists"
        }
      ],
      "status": "ALREADY_EXISTS"
    }
  }
  </code></pre>
  
  <p>This is my code:</p>
  
  <pre><code>#!/usr/bin/python
  
  # Usage example:
  # python create_reporting_job.py --name='&lt;name&gt;'
  
  import httplib2
  import os
  import sys
  
  from apiclient.discovery import build
  from apiclient.errors import HttpError
  from oauth2client.client import flow_from_clientsecrets
  from oauth2client.file import Storage
  from oauth2client.tools import argparser, run_flow
  
  
  # The CLIENT_SECRETS_FILE variable specifies the name of a file that contains
  
  # the OAuth 2.0 information for this application, including its client_id and
  # client_secret. You can acquire an OAuth 2.0 client ID and client secret from
  # the Google API Console at
  # https://console.developers.google.com/.
  # Please ensure that you have enabled the YouTube Data API for your project.
  # For more information about using OAuth2 to access the YouTube Data API, see:
  #   https://developers.google.com/youtube/v3/guides/authentication
  # For more information about the client_secrets.json file format, see:
  #   https://developers.google.com/api-client-library/python/guide/aaa_client_secrets
  CLIENT_SECRETS_FILE = "client_secrets.json"
  
  # This OAuth 2.0 access scope allows for read access to the YouTube Analytics monetary reports for
  # authenticated user's account. Any request that retrieves earnings or ad performance metrics must
  # use this scope.
  YOUTUBE_ANALYTICS_MONETARY_READ_SCOPE = (
    "https://www.googleapis.com/auth/yt-analytics-monetary.readonly")
  YOUTUBE_REPORTING_API_SERVICE_NAME = "youtubereporting"
  YOUTUBE_REPORTING_API_VERSION = "v1"
  
  # This variable defines a message to display if the CLIENT_SECRETS_FILE is
  # missing.
  MISSING_CLIENT_SECRETS_MESSAGE = """
  WARNING: Please configure OAuth 2.0
  
  To make this sample run you will need to populate the client_secrets.json file
  found at:
     %s
  with information from the APIs Console
  https://console.developers.google.com
  
  For more information about the client_secrets.json file format, please visit:
  https://developers.google.com/api-client-library/python/guide/aaa_client_secrets
  """ % os.path.abspath(os.path.join(os.path.dirname(__file__),
                                     CLIENT_SECRETS_FILE))
  
  # Authorize the request and store authorization credentials.
  def get_authenticated_service(args):
    flow = flow_from_clientsecrets(CLIENT_SECRETS_FILE, scope=YOUTUBE_ANALYTICS_MONETARY_READ_SCOPE,
      message=MISSING_CLIENT_SECRETS_MESSAGE)
  
    storage = Storage("%s-oauth2.json" % sys.argv[0])
    credentials = storage.get()
  
    if credentials is None or credentials.invalid:
      credentials = run_flow(flow, storage, args)
  
    return build(YOUTUBE_REPORTING_API_SERVICE_NAME, YOUTUBE_REPORTING_API_VERSION,
      http=credentials.authorize(httplib2.Http()))
  
  
  # Call the YouTube Reporting API's reportTypes.list method to retrieve report types.
  def list_report_types(youtube_reporting):
    results = youtube_reporting.reportTypes().list().execute()
    reportTypes = results["reportTypes"]
  
    if "reportTypes" in results and results["reportTypes"]:
      reportTypes = results["reportTypes"]
      for reportType in reportTypes:
        print "Report type id: %s\n name: %s\n" % (reportType["id"], reportType["name"])
    else:
      print "No report types found"
      return False
  
    return True
  
  
  # Call the YouTube Reporting API's jobs.create method to create a job.
  def create_reporting_job(youtube_reporting, report_type_id, name):
    reporting_job = youtube_reporting.jobs().create(
      body=dict(
        reportTypeId=report_type_id,
        name=name
      )
    ).execute()
  
    print ("Reporting job '%s' created for reporting type '%s' at '%s'"
           % (reporting_job["name"], reporting_job["reportTypeId"],
               reporting_job["createTime"]))
  
  
  # Prompt the user to enter a report type id for the job. Then return the id.
  def get_report_type_id_from_user():
    report_type_id = raw_input("Please enter the reportTypeId for the job: ")
    print ("You chose '%s' as the report type Id for the job." % report_type_id)
    return report_type_id
  
  
  if __name__ == "__main__":
    # The "name" option specifies the name that will be used for the reporting job.
    argparser.add_argument("--name",
      help="Required; name for the reporting job.")
    args = argparser.parse_args()
  
    if not args.name:
      exit("Please specify name using the --name= parameter.")
  
    youtube_reporting = get_authenticated_service(args)
    try:
      if list_report_types(youtube_reporting):
        create_reporting_job(youtube_reporting, get_report_type_id_from_user(), args.name)
    except HttpError, e:
      print "An HTTP error %d occurred:\n%s" % (e.resp.status, e.content)
    else:
      print "Created reporting job."
  </code></pre>
  
  <p>Why I got this error? And how to fix this error</p>