查询视频的观看次数、点赞次数、评论次数、视频标题、上传日期、视频时长。

使用前需要添加 YouTube Data API v3 服务。

/**
 * @description 查询观看次数、点赞次数、评论次数
 * @param {Array} videoUrls - 视频链接
 * @returns {Array} 查询结果
 */
function videoData (videoUrls) {
  const accessToken = ScriptApp.getOAuthToken()
  const data = []
  for (const videoID of videoUrls) {
    if (videoID) {
      const videoStats = YouTube.Videos.list('statistics', {'id': videoID.replace(/.+=/g, ''), 'access_token': accessToken }).items[0].statistics
      data.push([videoStats.viewCount, videoStats.likeCount, videoStats.commentCount])
    } else {
      data.push(['', '', ''])
    } // End if
  } // End for of
  return data
}
/**
 * @description 查询视频标题、上传日期、时长
 * @param {Array} videoUrls - 视频链接
 * @returns {Array} 查询结果
 */
function videoInfo (videoUrls) {
  const accessToken = ScriptApp.getOAuthToken()
  const data = []
  for (const url of videoUrls) {
    if (url) {
      const videoID = url.replace(/.+=/g, '')
      let videoDuration = YouTube.Videos.list('contentDetails', { 'id': videoID, 'access_token': accessToken }).items[0].contentDetails.duration.replace(/[HMS]/g, ':').replace(/PT|:$/g, '')
      if (videoDuration.length <= 2) {
        videoDuration = `0:${videoDuration}`
      }
      const videoSnippet = YouTube.Videos.list('snippet', { 'id': videoID, 'access_token': accessToken }).items[0].snippet
      const d = new Date(videoSnippet.publishedAt)
      const year = d.getFullYear()
      const month = d.getMonth()
      const day = d.getDate()
      data.push([videoSnippet.title, `${year}年${month}月${day}日`, videoDuration])
    } else {
      data.push(['', '', ''])
    } // End if
  } // End for of
  return data
}

使用方法

将 YouTube 视频链接以数组的格式放入变量,运行后会返回二维数组,可以直接写入工作表中。

获取 YouTube 缩略图

=IMAGE("https://img.youtube.com/vi/"&RIGHT(A1, 11)&"/maxresdefault.jpg")