2012-11-19 204 views
3

我需要能够通过新的YouTube API v3为经过身份验证的用户“按照”某个特定视频。我下面的活动/插入导管在这里找到:YouTube API v3:喜欢Python中的视频

https://developers.google.com/youtube/v3/docs/activities/insert

此示例代码运行罚款发布公告,以我的频道,但是当我尝试修改身体形成一个类似的语句,我不断收到一个400错误。以下是香港专业教育学院从最初的例子改变在身体字典是设置:

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() 

回答

3

“喜欢”一个在V3视频,您需要将其添加到特定的播放列表ID。 (你也可以读取该播放列表中得到的,你以前已经“喜欢” d视频列表。)

正确的调用,使是playlistItems.insert()与下面的请求体(即POST到https://www.googleapis.com/youtube/v3/playlistItems):

"body": { 
    "snippet": { 
    "playlistId": LIKED_LIST_ID, 
    "resourceId": { 
     "kind": "youtube#video", 
     "videoId": VIDEO_ID 
    } 
    } 
} 

这两个东西插在那里有LIKED_LIST_IDVIDEO_IDVIDEO_ID应该有希望是不言自明的。 LIKED_LIST_ID对应播放列表ID作出channels.list(部分= contentDetails)的要求,当你回来。响应看起来像

"contentDetails": { 
    "relatedPlaylists": { 
    "likes": "LL0c49w3rVoFjTkQVbyRs8Sg", 
    "favorites": "FL0c49w3rVoFjTkQVbyRs8Sg", 
    "uploads": "UU0c49w3rVoFjTkQVbyRs8Sg", 
    "watchHistory": "HL0c49w3rVoFjTkQVbyRs8Sg", 
    "watchLater": "WL0c49w3rVoFjTkQVbyRs8Sg" 
    } 
} 

您可以在其中的一些其他的播放列表ID的插上,例如,添加视频为收藏或添加到稍后观看列表帐户。该代码将与“喜欢”视频的代码相同。

+0

感谢您的快速回复杰夫!我知道它工作得很好,并将我的代码作为该问题本身的更新发布。 – justquick

+0

此外,值得注意的是,我们没有在文档中这样的例子(https://developers.google.com/youtube/v3/docs/playlistItems/insert),因为相关的播放列表的整个列表不直到最近才恢复。我只写了在Python一个完整的工作样本,它应该很快添加到文档。 –

相关问题