# AquaVox 中的唯一歌曲 ID

AquaVox 由于支持多种歌曲源，因此在代码层面标识时需要以不同的唯一 ID 区分。

- 对于仅在本地添加的歌曲，我们使用 UUIDv1 (由 [uuid](https://www.npmjs.com/package/uuid) 库提供)
- 对于在本地添加并在此之后跨设备同步的歌曲，我们仍然使用 UUIDv1，
因此代码逻辑上不会对任何新添加的歌曲主动去重。但在前端会通过歌曲名等元信息帮助用户排除重复歌曲。
- 对于本地添加，开启跨设备同步后在云端音乐库匹配的歌曲，我们会用云端的歌曲唯一 ID 覆盖本地 ID。
- 对于通过哔哩哔哩收藏夹导入，在云端音乐库中不存在的音乐，我们会以 BV 号作为唯一 ID。
- 对于云端音乐库中的歌曲，我们以 BV 号（首选）或 `md5(歌曲名+作者[主发布人])` 作为唯一 ID。
- 仅发布在网易云平台的，以 \`NE{id}\` 作为唯一 ID。（例如，`NE2141645940`）

但是，AquaVox 的云端音乐库由于其特殊性质，不显式公开其存在。
我们未来可能允许基于社区的歌曲分享及交流，但不会像传统音乐平台一样直接公开音乐库。

因此，AquaVox 的所有歌曲都是本地优先的，如果在用户未手动导入并添加到本地音乐数据库或跨设备同步了数据库的情况下，
即使输入云端音乐库匹配的 ID 作为 URL 或搜索框等位置的参数，也不会主动向云端音乐库发送请求进行匹配。
