因为这个页面运行在沙盒里,不能走完整的 Spotify 登录跳转,所以需要你手动拿一次访问令牌(access token),大概 1 分钟:
① 打开 developer.spotify.com/dashboard,登录后点 Create app,随便填名字。
② 在 App 设置里的 Redirect URIs 填入 http://127.0.0.1:8888/callback 并保存,然后复制页面上的 Client ID。
③ 把 Client ID 粘贴到下面,点击"生成登录链接"。如果这个页面本身跑在 http/https 网址下,会直接在当前页面跳转到 Spotify 登录(不会开新标签页,这样才能在登录完跳回来后找到刚才生成的校验码);如果是用本地文件(file://)打开的,会在新标签页里打开登录页,完成登录授权。
④ 如果这个页面本身跑在一个 http/https 网址下(比如部署到了 Cloudflare Pages),登录完成后会自动跳回本页面并自动完成连接,不用管这一步;如果是用本地文件(file://)直接打开的,浏览器登录后会跳到一个打不开的地址(这是正常的),把地址栏里完整的 URL 复制回来粘贴到下面第二个框里,工具会自动提取 token。
注意(Spotify 2026年2月的接口调整):Development Mode 的 App 现在要求"开发者账号本人"(也就是你在 developer.spotify.com 注册这个 App 用的那个 Spotify 账号)开通 Premium,否则整个 App 都会失效;另外,读取/写入歌单曲目现在只对"你自己创建或协作编辑"的歌单开放,别人的歌单(哪怕你收藏了)读不到曲目内容,这是 Spotify 官方限制。
从网易云歌单链接自动导入(可选,支持完整链接、短链接 163cn.tv、或分享文案),或者直接在下面手动粘贴文本。
这个页面本身没有后端服务器,浏览器直接请求网易云会被跨域拦掉,默认走的是几个公共代理,谁都能用所以经常不稳定,跟
GoMusic
这类项目的原理一样——它们能稳定获取,是因为背后跑着一个属于自己的服务器(Go 写的)来转发请求,不受浏览器跨域限制。
不想搭 Go 服务的话,可以用 Cloudflare 的免费 Worker 代替,几分钟搞定:
① 打开 workers.cloudflare.com,登录后新建一个 Worker。
② 把下面这段代码整个粘贴进编辑器,替换掉默认代码,点部署。
③ 把部署后的网址(形如 https://xxx.你的用户名.workers.dev)填到下面"自定义代理地址"里。
export default {
async fetch(request) {
const target = new URL(request.url).searchParams.get('url');
if (!target) return new Response('missing url param', { status: 400 });
const resp = await fetch(target, { headers: { 'User-Agent': 'Mozilla/5.0' } });
const body = await resp.arrayBuffer();
return new Response(body, {
status: resp.status,
headers: {
'Access-Control-Allow-Origin': '*',
'Content-Type': resp.headers.get('content-type') || 'text/plain'
}
});
}
}
每行一首歌,格式 歌名 - 歌手(也支持 - 、– 等破折号)。没有歌手信息也可以,单独一行歌名。
简繁体(比如 周杰伦 / 周杰倫)已自动互相识别,不用手动填。这里只用来处理网易云和 Spotify 上艺人名字完全不同的情况,比如别名、译名。
每一行显示自动匹配到的最佳结果,右侧下拉可以换成候选中的其它版本,或选"跳过"不加入。