title: YouTube API v3 with OAuth2: update and delete fail with "Insufficient Permission" error
body: <p>I am trying to <code>update</code> and <code>delete</code> videos using the <a href="https://developers.google.com/youtube/v3/docs/videos">YouTube API v3</a> with <a href="https://developers.google.com/youtube/v3/guides/authentication">OAuth2 for authentication</a> via the <code>google-api-client (0.6.4)</code> Ruby gem. However, when I attempt to execute either of these two actions, I see the following error message:</p>
  
  <pre><code>Google::APIClient::ClientError: Insufficient Permission
  </code></pre>
  
  <p><strong>Here's the odd thing:</strong> Using the exact same authentication procedure as with <code>update</code> and <code>delete</code>, I can <code>insert</code> (upload) successfully, no problem! So, I do not believe this is a problem with my authentication setup, but somewhere else in my code.</p>
  
  <p>My read-write <code>scope</code> is always the same across any of these actions:</p>
  
  <pre><code>https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/youtube.upload
  </code></pre>
  
  <p>And according to the API documentation, that space-delimited set of scopes should cover <code>insert</code>, <code>update</code> and <code>delete</code> actions.</p>
  
  <p>My <code>client_id</code>, <code>client_secret</code>, <code>refresh_token</code> are always the same for all these actions too -- so, that can't be the problem either, can it? Note that my program automatically obtains a new <code>access_token</code> when it expires, so, again, I do not believe that is where the problem lies.</p>
  
  <p>To compare, here is what my <code>insert</code> (upload) code looks like (<strong>this works</strong>):</p>
  
  <pre><code># Auth stuff, then...
  @client.execute!(
    :api_method =&gt; @youtube.videos.insert,
    :body_object =&gt; body,
    :media =&gt; Google::APIClient::UploadIO.new(file_path, 'video/*'),
    :parameters =&gt; {
      'uploadType' =&gt; 'multipart',
      :part =&gt; body.keys.join(','),
    }
  )
  </code></pre>
  
  <p>And here is what my <code>delete</code> code looks like (<strong>this fails</strong>):</p>
  
  <pre><code># Auth stuff, then...
  @client.execute!(
    :api_method =&gt; @youtube.videos.delete,
    :parameters =&gt; {
      'id' =&gt; youtube_id,
    }
  )
  </code></pre>
  
  <p>What am I missing? Unfortunately, the <a href="https://developers.google.com/youtube/v3/docs/videos/delete">YouTube API documentation for delete</a> does not provide any examples, so I've got nothing to compare against. Please let me know if there is further information that I can provide to make my question clearer.</p>