2012-11-19 123 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一個完整的工作樣本,它應該很快添加到文檔。 –

相關問題