I am trying to update
and delete
videos using the YouTube API v3 with OAuth2 for authentication via the google-api-client (0.6.4)
Ruby gem. However, when I attempt to execute either of these two actions, I see the following error message:
Google::APIClient::ClientError: Insufficient Permission
Here's the odd thing: Using the exact same authentication procedure as with update
and delete
, I can insert
(upload) successfully, no problem! So, I do not believe this is a problem with my authentication setup, but somewhere else in my code.
My read-write scope
is always the same across any of these actions:
https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/youtube.upload
And according to the API documentation, that space-delimited set of scopes should cover insert
, update
and delete
actions.
My client_id
, client_secret
, refresh_token
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 access_token
when it expires, so, again, I do not believe that is where the problem lies.
To compare, here is what my insert
(upload) code looks like (this works):
# Auth stuff, then...
@client.execute!(
:api_method => @youtube.videos.insert,
:body_object => body,
:media => Google::APIClient::UploadIO.new(file_path, 'video/*'),
:parameters => {
'uploadType' => 'multipart',
:part => body.keys.join(','),
}
)
And here is what my delete
code looks like (this fails):
# Auth stuff, then...
@client.execute!(
:api_method => @youtube.videos.delete,
:parameters => {
'id' => youtube_id,
}
)
What am I missing? Unfortunately, the YouTube API documentation for delete 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.