目录

前言

众所周知,由于某些不便明说的原因,导致Spotify无法在中国大陆内直接访问。

不过,总会有些人会科学上网(比如我),所以可能会在Spotify有听歌(毕竟可以免费听杰伦的歌)。
但是!有时候,想着分享歌曲给其他人,可是其他人不会科学上网啊;又有时候,你想把Spotify的iframe播放器嵌入到你的网站里,但是你会科学上网,别人不会啊,这样就导致其他人无法看到那一块的内容,同时也会拖慢网站加载速度。

所以,我们今天就利用Cloudflare Workers来反代Spotify(注:接下来“Cloudflare”简称为“CF”)。

创建项目并完成部署

首先,打开CF,在侧边栏找到“Workers和Pages”,单击“创建应用程序”(不过好像如果一个项目都没有会直接让你选择Workers和Pages)。

接着,选择“Workders”选项卡,单击“创建Worker”,接下来:

名称:按你来填,名称将为三级域名(https://*.your-name.workers.dev)

单击“部署”即可。

然后来到你这个项目这里,单击“快速编辑”:

等加载出编辑器,在`worker.js`输入以下内容:

addEventListener('fetch', event => {
    event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
    // 构造目标 URL,将请求转发到 Spotify.com
    const url = new URL(request.url);
    url.hostname = 'open.spotify.com';

    // 复制原始请求的所有头信息
    const headers = new Headers(request.headers);

    //设置Cookie(具体看下面说明)
    headers.set('Cookie', 'your-cookie');

    // 发起转发请求
    const response = await fetch(url.toString(), {
        method: request.method,
        headers: headers,
        body: request.body,
    });

    // 复制转发响应的所有头信息
    const responseHeaders = new Headers(response.headers);

    // 返回转发响应给客户端
    return new Response(response.body, {
        status: response.status,
        statusText: response.statusText,
        headers: responseHeaders,
    });
}

说明:

  • 设置Cookie是因为如果不设Cookie的话没法播音乐(Spotify要登录才能播放,iframe播放器也是)。
    - 设置Cookie:打开oepn.spotify.com应该是随便找个带有Cookie的请求复制Cookie即可。
  • 建议使用小号,否则你要是公开这个镜像站你账号可能会有安全问题。

Cookie的设置请看此文章:【补档】利用CF Workers反代Spotify——Cookie篇

然后单击“保存并部署”,接着打开看效果(需科学上网)。

绑定自己的域名(必须)

为什么上面说要科学上网呢,因为workers.dev被滥用所以被墙了,所以只能绑定自己的域名。

首先你需要将你的域名接入CF,此处不多赘述。

进入你的域名,在侧边栏选择“Workers路由”,然后单击“添加路由”:

接下来:

路由:*.your-domain.cn/* ,前面的星可以改成你要绑定的二级域名,后面的星必须留着。
Worker:选你刚刚创建的路由。
环境:production

如图所示:

然后在侧边栏选择“DNS”,添加你刚刚二级域名的A记录,IPv4随便填就好,云必须点亮(CF代理)最后保存,如图:

等等DNS记录生效,此时再打开你的域名看效果:

音乐也是可以正常播放滴,iframe播放器同样可用。

那么此处就不展示我自己的镜像站了,毕竟用的我自己的账号()
现在换了个小号,你可在此体验:spotify.rong6.cn .个人建议还是自己部署个,毕竟免费计划每天请求数只能有100,000次。

如果你非用不可,请遵守以下规则(https://spotify.rong6.cn/playlist/7KEsTZuquiSj3VpBP6H4Vd):
这个镜像站使用Cloudflare Workers搭建,不保证提供长期服务(我还害怕万一哪天直接把我域名给墙了)。
若要使用此镜像站,你应该自觉遵守:
1.不要退出账号,我也不知道会发生啥。
2.不要瞎几把乱传,待会给我主域墙了屌你妈。
3.不要恶意使用,你老老实实听歌或者使用iframe播放器就好了。
4.免费计划每天只有100,000次请求数,建议自己搭个:https://rong6.cn/index.php/archives/80。