Как я могу получить комментарии YouTube, которые хранятся для просмотра - PullRequest
1 голос
/ 23 января 2020

Я пытаюсь получить все комментарии, оставленные для просмотра. Я могу получить комментарии верхнего уровня с помощью функции commentThreads (). List (), но мне нужно получить ответы на комментарии верхнего уровня, которые хранятся для просмотра. Я использовал метод comments (). List (), чтобы получить ответы на комментарии верхнего уровня. Я могу получить ответы, но все они были опубликованы комментарии. Ни один из комментариев, оставленных для обзора, не был найден, что вызывает недоумение. Это так и должно быть? Мне не нужны опубликованные комментарии, мне просто нужны те, которые находятся на рассмотрении. Я пытался запросить комментарии, предназначенные для проверки, но получал следующую ошибку:

mod     = item['snippet']['moderationStatus']
KeyError: 'moderationStatus'

Не уверен, что нужно сделать, чтобы получить ссылки, удерживаемые для проверки.


def get_comments(service, parent_id, threadId, comments):
  results = service.comments().list(
    part                = "snippet, id",
    parentId            = parent_id,
    textFormat          = "plainText"
  ).execute()

  for item in results['items']:
    cid     = item['id']
    text    = item['snippet']['textDisplay']
    mod     = item['snippet']['moderationStatus']  
    # ^ The line above generates an error: KeyError: 'moderationStatus'
    # If I delete the "mod =..." and the "if mod !=..." lines, I get all 
    # of the replies to the top-level comment (parentId) that have been 
    # published but none of the ones that are held for review. 
    if mod != "heldForReview":
        comments.append([text, cid])

  return comments

1 Ответ

0 голосов
/ 09 февраля 2020

Существует параметр запроса moderationStatus, который можно использовать для получения комментариев, оставленных для просмотра. Я думаю, вам просто нужно установить moderationStatus= heldForReview

См. Do c здесь https://developers.google.com/youtube/v3/docs/commentThreads/

И ваш запрос будет выглядеть так

curl \
'https://www.googleapis.com/youtube/v3/commentThreads?part=snippet%2Creplies&moderationStatus=heldForReview&videoId=[VIDEO_ID]&key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--compressed
...