如何用Google Apps Script根据歌手和歌曲名获取发行年份?
用Google Apps Script获取歌曲发行年份的解决方案
完全可以借助Google Apps Script实现你的需求——通过A列歌手名、B列歌曲名,在C列返回对应歌曲的发行年份。以下是具体实现步骤和代码:
步骤1:打开Google表格的脚本编辑器
打开目标Google表格,点击顶部菜单栏的「扩展程序」→「Apps 脚本」,进入脚本编辑器界面。
步骤2:编写脚本代码
删除编辑器里的默认代码,替换为以下脚本:
function getReleaseYear(artist, track) { // 若歌手或歌曲名为空,返回空值 if (!artist || !track) return ""; // 构造MusicBrainz API请求地址(免费音乐元数据API) const apiUrl = `https://musicbrainz.org/ws/2/release-group/?query=artist:"${encodeURIComponent(artist)}" AND recording:"${encodeURIComponent(track)}"&fmt=json`; try { // 发送API请求并解析响应 const response = UrlFetchApp.fetch(apiUrl); const result = JSON.parse(response.getContentText()); // 检查是否有匹配的发行信息 if (result['release-groups'] && result['release-groups'].length > 0) { const firstRelease = result['release-groups'][0]; // 提取首次发行年份(日期格式为YYYY-MM-DD,取前四位) if (firstRelease['first-release-date']) { return firstRelease['first-release-date'].split('-')[0]; } } // 无匹配结果返回空值 return ""; } catch (error) { console.log(error.toString()); return "获取失败"; } }
步骤3:保存并授权脚本
- 点击编辑器顶部的「保存」按钮,给脚本命名(比如「MusicReleaseYearTool」)。
- 首次运行脚本时(比如在表格里输入公式后),会弹出授权提示:
- 点击「授权访问」,选择你的Google账号。
- 在提示页面点击「高级」→「前往[脚本名]」,然后允许脚本访问网络和表格数据。
步骤4:在表格中使用公式
在C2单元格输入以下公式,按回车即可获取对应歌曲的发行年份:
=getReleaseYear(A2,B2)
将鼠标悬停在C2单元格右下角,当出现十字光标时,下拉填充到需要处理的所有行。
注意事项
- API频率限制:MusicBrainz API有请求频率限制(每秒不超过1次),如果处理大量数据,建议分批操作,或修改脚本添加延迟(比如在循环中加入
Utilities.sleep(1000))。 - 匹配准确性:如果返回空值或错误结果,可能是歌手/歌曲名拼写不规范,可尝试调整输入文本的准确性。
- 批量处理优化:若需要处理数百行数据,可编写批量处理函数替代公式,避免逐行请求的延迟:
使用批量函数时,直接在脚本编辑器点击运行即可,无需手动输入公式。function batchGetReleaseYears() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const data = sheet.getDataRange().getValues(); // 从第二行开始遍历(假设第一行是表头) for (let i = 1; i < data.length; i++) { const artist = data[i][0]; const track = data[i][1]; if (artist && track) { const year = getReleaseYear(artist, track); sheet.getRange(i+1, 3).setValue(year); // 添加1秒延迟,避免触发API限制 Utilities.sleep(1000); } } }
内容的提问来源于stack exchange,提问作者Justine Bruers
相关产品推荐
相关产品推荐

