车载点歌台

朋友扫码点歌,车上一起听

怎么用

  1. 司机打开 App,连上一个点歌台服务器:用别人给的邀请码,或者自己搭一个。
  2. 扫码登录你自己的 QQ 音乐。会员歌曲需要你的账号本身有会员。
  3. 点「开始播放」。手机连上 CarPlay 或蓝牙后,声音自动走车机;锁屏、切到导航也不停。
  4. 点右下角的二维码,朋友用手机相机扫一下就能搜歌、点歌,不用装 App,安卓手机也行。
  5. 点的歌按顺序排队。没人点歌时,从兜底歌单里随机放。兜底歌单可以换成你导入的歌单:粘贴各大音乐 App 的歌单分享链接,或者一行一首的歌名列表。

用邀请码开一辆车

邀请码由点歌台服务器的主人发:可能是开发者,也可能是自己搭了服务器的朋友。

  1. 打开 App,选「我有邀请码」,粘贴发来的整条消息。
  2. 给你的车起个名字,点「开一辆车」。
  3. 用你自己的 QQ 扫码登录 QQ 音乐。也可以先跳过,那样只能放免费歌。

这辆车的数据存在发邀请码的那个人的服务器上,由他保管。这些数据包括车名、队列、播放历史、导入的歌单、朋友的昵称和你的 QQ 音乐登录。用开发者的邀请码开的车,数据在开发者的服务器上。你随时可以在「设置 → 我的车」里退出 QQ 音乐登录,或者删除这辆车。删除以后,服务器上这辆车的文件马上删掉,只剩下几样到期才清的痕迹,详见隐私政策。

自己搭服务器(约 15 分钟)

不需要会编程。全程在浏览器里完成,用手机或电脑都行。

1. 买一台云服务器

2. 放行端口

在服务器控制台的「防火墙」(或「安全组」)里,添加规则放行 TCP 80 和 TCP 443。

443 是 https;80 只在申请、续期 https 证书时用。

3. 一键安装

在控制台点「远程连接」(阿里云叫 Workbench,腾讯云叫 OrcaTerm),打开网页终端,粘贴下面这行,回车:

curl -fsSL https://39.108.51.5/install.sh | sudo bash

等几分钟。它会装好运行环境,申请 https 证书(Let's Encrypt,自动续期),设置开机自启,最后打印两行:

以后想更新到新版本,再运行一次同样的命令就行,你的队列、设置和登录都会保留。

安装和更新时,程序从开发者的服务器(39.108.51.5)下载,并以 root 身份运行,所以要信得过这台服务器。运行环境 Node.js 从 npmmirror.com 下载,申请证书用的 certbot 从阿里云的 mirrors.aliyun.com 下载,别的系统软件从服务器自己的软件源装(已经装好、版本够新的不再下载)。装好以后,你的服务器不会再联系开发者的服务器,你的数据也不会发给开发者。

4. 连上 App

  1. 复制播放器链接,打开 App,选「我有播放器链接」,粘贴、保存。
  2. 在「设置 → QQ 音乐登录」里,用你自己的 QQ 扫码。
  3. 完成。让朋友扫码点歌吧。

常见问题

有的歌放不了 / 一直跳过

大多是会员歌曲而登录的账号没有会员,或者 QQ 音乐的登录过期了。在「设置 → QQ 音乐登录」重新扫码。服务器在海外时,很多歌也放不了。

朋友扫码打不开

检查服务器防火墙是否放行了 443 端口,再确认服务器的 https 证书还有效(快过期时 App 首页会提醒)。用邀请码开的车,告诉发邀请码的人。

锁屏或切到导航后不放了

在「设置」里打开「队列空时保持后台在线」。车上建议手机连着充电。

换手机 / 删掉 App 重装

队列和车的规矩都在服务器上,播放器链接存在 iPhone 的钥匙串里。音质和「队列空时保持后台在线」存在 App 里,重装以后要重新设。

「这辆车已经被删掉了」

车被你自己或者服务器的主人删掉了,原来的播放器链接不能再用。点「重新开始」,再要一个邀请码,或者换一个播放器链接。

怎么卸载服务器

在服务器的网页终端里运行:

sudo systemctl disable --now car-jukebox car-jukebox-certbot.timer
sudo certbot delete --cert-name car-jukebox
sudo rm -rf /opt/car-jukebox /opt/certbot /usr/local/bin/certbot /etc/letsencrypt/renewal-hooks/deploy/car-jukebox \
  /etc/systemd/system/car-jukebox.service /etc/systemd/system/car-jukebox-certbot.service /etc/systemd/system/car-jukebox-certbot.timer
sudo userdel jukebox

删掉 /opt/car-jukebox 就删掉了队列、导入的歌单和存在 config.json 里的 QQ 音乐登录。最彻底的办法是直接释放这台云服务器,系统日志也一起没了;以前手动建过的云盘快照,在云控制台里另外删掉。

说明

本 App 不提供任何音乐内容,和 QQ 音乐 / 腾讯没有合作关系。歌曲来自你自己登录的 QQ 音乐账号。