【发布时间】:2012-11-07 18:46:13
【问题描述】:
我需要能够通过新的 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">
我也尝试过调整它以收藏视频动作,但得到了相同的结果。我是否缺少一些必填字段?这是创建类似操作的正确端点吗?
提前致谢, 贾斯汀
更新
Jeff 已经回答了这个问题,工作解决方案发布在下面
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()
【问题讨论】:
标签: python youtube-api