YouTube API v3: Ein Video in Python mögen
Ich muss in der Lage sein, ein bestimmtes Video nach ID über die neue YouTube-API v3 für einen authentifizierten Benutzer zu "liken". Ich folge den Aktivitäten / Anleitungen, die hier zu finden sind:
https://developers.google.com/youtube/v3/docs/activities/insert
Dieser Beispielcode ist für das Posten eines Bulletins in meinem Kanal in Ordnung. Wenn ich jedoch versuche, den Body so zu ändern, dass er eine ähnliche Anweisung enthält, wird immer wieder eine 400-Fehlermeldung angezeigt. Folgendes habe ich gegenüber dem ursprünglichen Beispiel geändert, in dem das Körperdiktat eingerichtet wurde:
body = {}
body["snippet"] = dict(type='like')
body["contentDetails"] = dict(
like=dict(
resourceId=dict(
kind="youtube#video",
videoId='_M9khs87xQ8'
)
)
)
Gemäß der folgenden Dokumentation scheinen die Felder korrekt eingerichtet zu sein.
https://developers.google.com/youtube/v3/docs/activities
Aber ich bekomme immer einen 400 HttpEror wie diesen
<HttpError 400 when requesting https://www.googleapis.com/youtube/v3/activities?alt=json&part=snippet%2CcontentDetails returned "Bad Request">
Ich habe auch versucht, dies anzupassen, um eine Videoaktion zu favorisieren, aber das gleiche Ergebnis zu erzielen. Vermisse ich einige der erforderlichen Felder? Ist dies der richtige Endpunkt, um eine ähnliche Aktion zu erstellen?
Danke im Voraus, Justin
AktualisierenDieses Problem wurde von Jeff beantwortet und die funktionierende Lösung ist unten angegeben
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()