API do YouTube v3: gostando de um vídeo em Python
Preciso ser capaz de "curtir" um vídeo específico por ID por meio da nova API do YouTube v3 para um usuário autenticado. Estou seguindo o guia de atividades / inserção encontrado aqui:
https://developers.google.com/youtube/v3/docs/activities/insert
Esse código de exemplo é executado corretamente para postar um boletim no meu canal, mas quando tento modificar o corpo para formar uma instrução semelhante, continuo recebendo um erro 400. Aqui está o que eu mudei do exemplo original, onde o dict do corpo é configurado:
body = {}
body["snippet"] = dict(type='like')
body["contentDetails"] = dict(
like=dict(
resourceId=dict(
kind="youtube#video",
videoId='_M9khs87xQ8'
)
)
)
De acordo com a documentação a seguir, os campos parecem estar configurados corretamente.
https://developers.google.com/youtube/v3/docs/activities
Mas eu continuo recebendo um 400 HttpEror assim
<HttpError 400 when requesting https://www.googleapis.com/youtube/v3/activities?alt=json&part=snippet%2CcontentDetails returned "Bad Request">
Eu também tentei adaptar isso para o favorito de uma ação de vídeo, mas obter o mesmo resultado. Estou faltando alguns dos campos obrigatórios? Este é o endpoint correto para criar uma ação semelhante?
Agradecemos antecipadamente, Justin
AtualizarEste problema foi respondido por Jeff e a solução de trabalho está publicada abaixo
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()