skip to content
声控烤箱 | KazooTTT 博客

使用google sheet + api定时获取油管播放量

Updated:

摘要(由llm生成)

在 MilkLove 的二搭剧 Whale Store xoxo 的 YouTube 预告片中,使用 Google Sheets 脚本可以定时获取视频播放量并存入表格。脚本主要包括以下步骤: 1. **检查是否有 access token**: 脚本首先检查是否存在 access token。如果不存在,则会返回一个错误信息。 2. **获取 video 的统计数据**: 脚本使用 YouTube API 来获取视频的统计数据,包括播放量等。若统计数据成功则将播放量返回给脚本。 3. **记录播放量和时间到表格中**:如果在获取播放量后没有发生错误,则会向表格中插入一行,其中包含当前时间和播放量。 因此,通过这个脚本,可以定时地获取 YouTube 视频的播放量并存入 Google Sheets 表格。

起因是想要记录一下 milklove 的二搭剧 Whale Store xoxo 在油管上的预告片的播放量的 คุณวาฬร้านชำ (Whale Store xoxo) | GMMTV 2025 - YouTube

于是先搜了一下有没有可以直接使用的开源项目或者接口,然后在 批量统计YouTube视频播放量方法 - 杨哥的出海营销笔记 这篇文章中了解到了可以使用 google sheet 的 apps 脚本 直接获取油管的播放量。

不过这篇文章中的脚本更多的获取当前的播放量,而不是定时获取,因此我在这个脚本的基础上进行了一些修改,来实现定时获取播放量,然后把时间和对应的播放量的信息存到 sheet 中。

最终的效果如图所示。杂货铺播放量记录 - Google 表格

CleanShot 2024-12-15 at 21.38.06@2x.png

操作教程

第一步,在 sheet 中的原始模板是这样的:

链接视频 id时间播放量
https://www.youtube.com/watch?v=Eia_Sh_ZTyQ=MID(A2, FIND(“v=”, A2) + 2, LEN(A2) - FIND(“v=”, A2) - 1)

在第一列写上要监听的油管的链接,然后视频的 id 通过公式直接计算出来。

第二步,点击 extentions - apps script 这里,跳转到脚本配置界面。

CleanShot 2024-12-15 at 21.40.14@2x.png

点击左侧的 services 的加号,添加 YouTube Data API v3,标识符、版本直接默认就可以了。

CleanShot 2024-12-15 at 21.44.17@2x.png

第三步,把代码复制到 Code.gs 中,效果如图:

function onOpenFunc() {
PropertiesService.getScriptProperties().setProperty("accessToken", ScriptApp.getOAuthToken())
}
function getVideoViews(videoid) {
var accessToken = PropertiesService.getScriptProperties().getProperty("accessToken")
// Check if the access token exists
if (!accessToken) {
Logger.log("No access token found.")
return "Error: No access token"
}
try {
var videoStatsResponse = YouTube.Videos.list("statistics", {
id: videoid,
access_token: accessToken,
})
// Check if the response contains the expected data
if (
videoStatsResponse.items &&
videoStatsResponse.items[0] &&
videoStatsResponse.items[0].statistics
) {
return videoStatsResponse.items[0].statistics.viewCount
} else {
Logger.log("No statistics found for video ID: " + videoid)
return "Error: No statistics"
}
} catch (error) {
Logger.log("Error fetching statistics for video ID " + videoid + ": " + error.toString())
return "Error: " + error.toString()
}
}
function recordYouTubeViewCount() {
// 获取活动表格
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
// 获取第二行的 ID
var videoId = sheet.getRange(2, 2).getValue()
// 获取当前时间
var currentTime = new Date()
try {
// 获取播放量
var viewCount = getVideoViews(videoId)
// 获取当前表格的最后一行
var lastRow = sheet.getLastRow()
// 在最后一行之后插入新行,并填写时间和播放量
sheet.insertRowAfter(lastRow)
sheet.getRange(lastRow + 1, 3).setValue(currentTime) // 设置时间
sheet.getRange(lastRow + 1, 4).setValue(viewCount) // 设置播放量
} catch (error) {
// 错误处理
Logger.log("Error processing video " + videoId + ": " + error.toString())
// 如果发生错误,记录错误信息
var lastRow = sheet.getLastRow()
sheet.insertRowAfter(lastRow)
sheet.getRange(lastRow + 1, 3).setValue(currentTime) // 设置时间
sheet.getRange(lastRow + 1, 4).setValue("Error: " + error.toString()) // 设置错误信息
}
}
CleanShot 2024-12-15 at 21.41.33@2x.png

然后如果要验证是否正确,选择 recordYouTubeViewCount,然后点击 run 按钮。不出意外的话会在 sheet 中新增一行记录。

CleanShot 2024-12-15 at 21.42.08@2x.png

第四步,也是最后一步,我们要设置一下 trigger,来实现定时地查询播放量并且写入到 sheet 中。点击左边侧边栏的 trigger 菜单,再点击右下角的 add trigger.

CleanShot 2024-12-15 at 21.47.04@2x.png

设置如下,配置完成后点击 save 按钮。

image.png

点击完之后,可能出现一个验证弹窗,需要你选择自己的 google 账号,然后点击 go to xxx project (unsave), 点击 allow 进行授权。(这里没有保留截图,但或许大概应该能直接看懂?)

然后我们就完成了所有的配置,等待一小时后看是否运行正常即可。

参考和鸣谢

这个脚本是在 批量统计YouTube视频播放量方法 - 杨哥的出海营销笔记 的脚本的基础上改的,感谢作者提供了很详细的教程和代码。

同时也要感谢 google 提供的 api.

感谢阅读到这里,期待收到更多的反馈
欢迎关注公众号
kazoottt
公众号二维码