Фид комментариев YouTube API - PullRequest
       12

Фид комментариев YouTube API

6 голосов
/ 05 октября 2009

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

Я попытался просмотреть Руководство разработчика YouTube API , но, похоже, отсутствует некоторая информация о каналах комментариев (в нижней части страницы).

Ответы [ 2 ]

1 голос
/ 13 февраля 2016

Это изменилось в версии 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 возвращает пустую строку, которая является известной проблемой с 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.

См. Получить комментарии для видео руководство для дополнительной информации и пример кода.

0 голосов
/ 05 октября 2009
YouTubeRequest request = ... // Your request object    
Video v = ... // Your video object
Feed<Comment> comments = request.GetComments(v);

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

...