查询视频的观看次数、点赞次数、评论次数、视频标题、上传日期、视频时长。
使用前需要添加 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")