I know that there were plenty of questions about this from years ago, yet we have a new issue that emerged a few months ago, and Google Cloud support engineer explicitly asked me to post my question to SO.
Up until recently, we were able to download captions from the API. After reviving our codebase, we discovered we could no longer use developerKey
to download captions. After using OAuth, as suggested in the error message, we got 403.
The permissions associated with the request are insufficient to download the caption track. The request might not be properly authorized, or the video order might not have enabled third-party contributions for this caption.". Details: "[{'message': 'The permissions associated with the request are not sufficient to download the caption track. The request might not be properly authorized, or the video order might not have enabled third-party contributions for this caption.
The code is very much the same and can be boiled down to
youtube = build('youtube', 'v3', credentials=creds) # must use oauth
req_list = youtube.captions().list(part='snippet', videoId="r5exYRYDfy8")
res = req_list.execute() # works
req_download = youtube.captions().download(id=res['items'][0]['id'])
res = req_download.execute() # fails
Where r5exYRYDfy8
is one of the videos for which we were historically able to obtain the captions. I retrieved all videoIds from our cache, for which we previously fetched the captions and none of them work.
It seems that Google is doing some changes to captions in general. For example, the autogenerated captions can no longer be auto-translated while watching a video. Does anyone has any idea how vast these changes are and whether we can rely on captions in our product?