3

認証されたユーザーに対して、新しい YouTube API v3 を介して ID で特定の動画を「いいね」できるようにする必要があります。ここにあるアクティビティ/挿入ガイドに従っています。

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

このコード例は、自分のチャンネルに速報を投稿する場合には問題なく動作しますが、本文を変更して like ステートメントを形成しようとすると、400 エラーが発生し続けます。body 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">

また、これをビデオ アクションのお気に入りに適用しようとしましたが、同じ結果が得られました。必須フィールドのいくつかが欠けていますか? これは、like アクションを作成するための正しいエンドポイントですか?

前もって感謝します、ジャスティン

アップデート

この問題はジェフによって回答されており、実際の解決策は以下に掲載されています

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

1 に答える 1

3

v3 で動画を「いいね」するには、その動画を特定のプレイリスト ID に追加する必要があります。(この再生リストを読んで、以前に「いいね」した動画のリストを取得することもできます。)

作成する適切な呼び出しは、次の要求本文を持つplaylistItems.insert()(つまり、への POST ) です。https://www.googleapis.com/youtube/v3/playlistItems

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

そこにプラグインする 2 つのものはLIKED_LIST_ID、 とVIDEO_IDです。VIDEO_IDうまくいけば、一目瞭然です。LIKED_LIST_IDchannels.list(part=contentDetails) リクエストを行ったときに返されるプレイリスト ID に対応します。応答は次のようになります

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

たとえば、ビデオをお気に入りとして追加したり、アカウントの後で見るリストに追加したりするために、これらの他のプレイリスト ID の一部をプラグインできます。このコードは、ビデオを「いいね」するためのコードと同じです。

于 2012-11-19T19:39:06.343 に答える