我需要能够通过新的 YouTube API v3 为经过身份验证的用户按 ID“喜欢”特定视频。我正在关注此处的活动/插入指南:
https://developers.google.com/youtube/v3/docs/activities/insert
此示例代码可以很好地向我的频道发布公告,但是当我尝试修改正文以形成类似的声明时,我不断收到 400 错误。这是我从设置正文 dict 的原始示例更改的内容:
body = {}
body["snippet"] = dict(type='like')
body["contentDetails"] = dict(
like=dict(
resourceId=dict(
kind="youtube#video",
videoId='_M9khs87xQ8'
)
)
)
根据以下文档,这些字段似乎设置正确。
https://developers.google.com/youtube/v3/docs/activities
但是我一直像这样得到 400 HttpEror
<HttpError 400 when requesting https://www.googleapis.com/youtube/v3/activities?alt=json&part=snippet%2CcontentDetails returned "Bad Request">
我也尝试过调整它以收藏视频动作,但得到相同的结果。我是否缺少一些必填字段?这是创建类似操作的正确端点吗?
在此先感谢,贾斯汀
更新
杰夫已经回答了这个问题,工作解决方案发布在下面
for item in youtube.channels().list(part='contentDetails', mine=True).execute().get('items', []):
playlists = item['contentDetails'].get('relatedPlaylists', {})
if 'likes' in playlists:
body = {
"snippet": {
"playlistId": playlists['likes'],
"resourceId": {
"kind": 'youtube#video',
"videoId": '_M9khs87xQ8'
}
}
}
youtube.playlistItems().insert(body=body, part='snippet').execute()