2009-10-05 3 views
6

Я пытаюсь получить комментарий к записи из видеозаписи, используя API YouTube для .NET. Я работаю над программой в WPF и C#, но не могу показаться на всю жизнь, чтобы выяснить, как получить этот канал.Комментарии API YouTube API

Я пробовал посмотреть на YouTube API Developer's Guide, но, похоже, отсутствует какая-либо информация о комментариях (в нижней части страницы).

ответ

-1
YouTubeRequest request = ... // Your request object  
Video v = ... // Your video object 
Feed<Comment> comments = request.GetComments(v); 

comments.entries будет содержать все комментарии к видео V как Comment объектов, так что вам не нужно возиться с кормом вообще.

1

Это изменилось в версии 3 API YouTube. Существует новая конечная точка, называемая commentThreads/list, которая позволяет вам возвращать поток комментариев для ресурса.

Если вы хотите вернуть список комментариев к видеоресурсу, настройте запрос GET с помощью part=id,snippet и videoId=[VIDEO_ID]. Я буду использовать https://www.youtube.com/watch?v=HwNIDcwfRLY в качестве примера:

HTTP GET https://www.googleapis.com/youtube/v3/commentThreads?part=id%2Csnippet&videoId=HwNIDcwfRLY&key={YOUR_API_KEY} 

Давайте использовать первый комментарий возвращается в качестве примера:

{ 
    "kind": "youtube#commentThread", 
    "etag": "\"DsOZ7qVJA4mxdTxZeNzis6uE6ck/jhK_kJqnNF8_fiRI_o7w6ehubv8\"", 
    "id": "z120sfshyxzewt1nx23sevyr1vu1jd2pr04", 
    "snippet": { 
     "videoId": "HwNIDcwfRLY", 
     "topLevelComment": { 
      "kind": "youtube#comment", 
      "etag": "\"DsOZ7qVJA4mxdTxZeNzis6uE6ck/h903NemnXx-8Hfe6lRIYCFERSe4\"", 
      "id": "z120sfshyxzewt1nx23sevyr1vu1jd2pr04", 
      "snippet": { 
      "authorDisplayName": "mach-a-chine seahawksgoonie", 
      "authorProfileImageUrl": "https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg?sz=50", 
      "authorChannelUrl": "http://www.youtube.com/channel/UCBmJ0sw7plIZHLvhfz7oo_w", 
      "authorChannelId": { 
       "value": "UCBmJ0sw7plIZHLvhfz7oo_w" 
      }, 
      "videoId": "HwNIDcwfRLY", 
      "textDisplay": "", 
      "authorGoogleplusProfileUrl": "https://plus.google.com/102274783439566633837", 
      "canRate": true, 
      "viewerRating": "none", 
      "likeCount": 0, 
      "publishedAt": "2016-02-05T03:42:35.158Z", 
      "updatedAt": "2016-02-05T03:42:35.158Z" 
      } 
     }, 
     "canReply": true, 
     "totalReplyCount": 0, 
     "isPublic": true 
    } 
} 

Обратите внимание, что комментарий не является на самом деле в этом topLevelComment объекта. textDisplay возвращает пустую строку, которая является known issue с API YouTube. Нам необходимо сделать дополнительный запрос на commentThreads/list с id=[COMMENT_ID], где [COMMENT_ID] является topLevelComment.id:

HTTP GET https://www.googleapis.com/youtube/v3/commentThreads?part=id%2Csnippet&id=z120sfshyxzewt1nx23sevyr1vu1jd2pr04&key={YOUR_API_KEY} 

snippet словаря итогового ответа будет иметь комментарий пользователя в качестве значения ключа textDisplay:

"snippet": { 
    "authorDisplayName": "mach-a-chine seahawksgoonie", 
    "authorProfileImageUrl": "https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg?sz=50", 
    "authorChannelUrl": "http://www.youtube.com/channel/UCBmJ0sw7plIZHLvhfz7oo_w", 
    "authorChannelId": { 
      "value": "UCBmJ0sw7plIZHLvhfz7oo_w" 
    }, 
    "videoId": "HwNIDcwfRLY", 
    "textDisplay": "my next ring tone! yeah boy!\ufeff", 
    "authorGoogleplusProfileUrl": "https://plus.google.com/102274783439566633837", 
    "canRate": true, 
    "viewerRating": "none", 
    "likeCount": 0, 
    "publishedAt": "2016-02-05T03:42:35.158Z", 
    "updatedAt": "2016-02-05T03:42:35.158Z" 
    } 
} 

комментарий: «мой следующий звонок! Да, мальчик!»

Обратите внимание, что вы также можете передать в список до 50 разделенных запятыми id или videoId строк объектов комментариев для извлечения на вызов API.

См. Руководство Retrieve comments for a video для получения дополнительной информации и образца кода.