2012-11-19 4 views
3

인증 된 사용자를 위해 새로운 YouTube API v3을 통해 특정 동영상을 ID별로 "좋아"할 수 있어야합니다.YouTube API v3 : Python 동영상 선호하기

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

이 예제 코드는 내 채널에 공지를 게시 잘 실행하지만이 같은 성명을 형성하기 위해 몸을 수정하려고 할 때, 나는 점점 계속 : 내가 활동을 다음과 AM/삽입 가이드는 여기 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

는하지만 너무

<HttpError 400 when requesting https://www.googleapis.com/youtube/v3/activities?alt=json&part=snippet%2CcontentDetails returned "Bad Request"> 

필자는 시도 좋아하는에 비디오 작업을이 적응하지만 같은 결과를 얻을 같은 400 HttpEror 점점 계속. 필수 입력란 중 일부가 누락 되었습니까? 이것은 비슷한 액션을 만들기위한 올바른 엔드 포인트입니까? 사전에

감사합니다, 저스틴

업데이트

이 문제는 제프 응답되었으며 작업 솔루션 v3의

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

으로 "와 같은"비디오 아래에 게시 특정 재생 목록 ID에 추가해야합니다. (당신은 또한 당신이 D "와 같은"이전했습니다 비디오의 목록을 얻으려면이 재생 목록을 읽을 수 있습니다.)

수 있도록 적절한 통화가 다음 요청 본문과 playlistItems.insert() (https://www.googleapis.com/youtube/v3/playlistItems에 즉 POST)이다

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

두 가지 플러그 인은 LIKED_LIST_IDVIDEO_ID입니다. VIDEO_ID은 자명하다. LIKED_LIST_ID은 channels.list (part = contentDetails) 요청을 할 때 돌아 오는 재생 목록 ID에 해당합니다. 당신은, 예를 들어, 동영상을 즐겨 찾기에 추가하거나 계정에 대한 시계에 나중에 목록을 추가 할 그 다른 재생 목록 식별자의 일부에 연결할 수

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

같은 응답이 보인다. 코드는 비디오를 좋아하는 코드와 동일합니다.

+0

빠른 답변 주셔서 감사합니다. Jeff! 나는 그것을 잘 작동 시켰고 문제 자체에 대한 업데이트로 코드를 게시했다. – justquick

+0

관련 재생 목록의 전체 목록이 아니기 때문에 문서 (https://developers.google.com/youtube/v3/docs/playlistItems/insert)에 이에 대한 예가 없었 음에 유의해야합니다. 아주 최근까지 반환됩니다. 필자는 Python으로 전체 작업 샘플을 작성 했으므로 곧 문서에 추가해야합니다. –