/youtube-comment-api

Node.js API for the YouTube comment system

Primary LanguageJavaScriptISC LicenseISC

Youtube Comment API

Build Status

Purpose

This package is a Promise wrapper for youtube-comments-task for anyone who wants to use Promises over Tasks.

Usage

The module exports a single function:

fetchComments(videoId[,pageToken])

The function accepts the YouTube videoId and an optional pageToken, and returns a Promise that resolves to the corresponding page of comments. If the pageToken is not provided it fetches the first page of comments.

The result is an object with the following properties.

{
  comments: [ { comment }, { comment }, ... ],
  nextPageToken: 'nextpagetokenhere'
}

Comment Data

{
  id: {{ comment id}},
  author: {{ comment author name }},
  authorLink: {{ comment author link (channel) }},
  authorThumb: {{ comment author avatar thumb url }},
  text: {{ comment text }},
  likes: {{ comment up-votes }},
  time: {{ how long ago the comment was posted (relative, e.g. '1 year ago') }},
  timestamp: {{ timestamp when comment was posted in milliseconds (absolute, e.g. 1457661439642 }},
  edited: {{ whether the comment was edited by the author (true/false) }},
  hasReplies: {{ whether the comment has replies (true/false) }},
  repliesToken: {{ token used to fetch replies for the comment }},
  numReplies: {{ number of replies }},
  replies: [ {{ reply objects (same fields as comments) }} ]
}

Example

const fetchCommentPage = require('youtube-comment-api')
const videoId = 'h_tkIpwbsxY'

fetchCommentPage(videoId)
  .then(commentPage => {
    console.log(commentPage.comments)
    return fetchCommentPage(videoId, commentPage.nextPageToken)
  })
  .then(commentPage => {
    console.log(commentPage.comments)
  })