LocalMusicHelper
将您保存在网易云音乐、QQ音乐等在线音乐平台的歌单数据,转换成本项目支持的本地音乐播放器(如Salt Player、APlayer、Poweramp等)可识别的歌单格式,完成歌单的导入操作,方便您快速从在线音乐平台迁移歌单到本地音乐播放器。Quickly migrate your playlists from online music platforms to local music players.
Install / Use
/learn @Winnie0408/LocalMusicHelperREADME
🧐 仓库访问数
<div align="center"> <p>(统计开始于2024.2.9)</p> <img src="https://profile-counter.glitch.me/HWinZnieJ_LocalMusicHelper/count.svg" alt="visit_count" /> </div>🌈 项目介绍
⚠️注意⚠️
本项目只提供歌单的迁移与转换功能,不具有音乐下载、传输、播放的能力,您需要自行使用其他方式来获取非加密格式(flac、mp3、wav等)的音乐文件。
现在,已经有大量用户将主力使用的音乐软件从在线音乐平台转为了本地音乐播放器,虽然歌曲可以很顺利且快速地进行迁移操作,但是无法将自己创建的歌单、或者其他用户的优秀歌单一并进行快速迁移操作,这个项目就是为了解决这个问题而诞生的。
本项目能够将用户保存在网易云音乐、QQ音乐、酷狗音乐、酷我音乐、汽水音乐、Spotify,共6个在线音乐平台的歌单数据,以及从TuneMyMusic生成的CSV歌单文件,转换成支持的本地音乐播放器 (目前支持:Salt Player、APlayer、Poweramp) 可识别的歌单格式,完成歌单的导入操作,方便用户快速从在线音乐平台迁移歌单到本地音乐播放器。同时也支持了Salt Player、APlayer、Poweramp的歌单格式的相互转换,能快速方便地在本地播放器之间迁移歌单数据。
🤖 支持的Android版本
- 推荐:Android API Level 31(Android S, 12.0)及以上版本。
- 兼容:Android API Level 26(Android O, 8.0)及以上版本。
💎 项目特点
- 使用Jetpack Compose进行UI设计,界面简洁美观。
- 使用Salt UI为UI基础组件。
- 完全在本地进行歌单数据的转换,不上传任何无关数据到服务器。
- 支持多种在线音乐平台的歌单数据,以及多种本地音乐播放器的歌单格式,可根据需要自行选择。
- 保留原歌单的排序方式,不会因为转换而改变原歌单的排序。
- 保留对椒盐歌单转换助手的支持,生成的结果文件仍可在电脑、平板等大屏设备上使用。
- 多语言支持,目前提供简体中文、英语、韩语。
- 干净无广告,且只在必要时(获取在线歌单数据、检查版本更新等操作)连接互联网。
- 提供自定义选项,支持部分Material 3特性(莫奈取色、单色主题图标等)。
- 💫 在App中登录音乐平台的账号,即可直接从对应平台在线获取歌单数据,无需再手动寻找数据库文件。
- 💫 设备已有Root权限的用户,可使用Root权限自动获取歌单来源App的数据库文件。
- 提供简单的音乐标签编辑功能。
- 支持部分标签的补全功能,可根据歌曲中已有的标签信息自动填充缺失标签信息。
- 支持Salt Player、APlayer、Poweramp这3个本地播放器之间的歌单的相互转换。
- 提供丰富的,可自定义强度的触觉反馈。
- 支持TuneMyMusic生成的CSV歌单文件,可将其支持的平台(如:TIDAL, Apple Music, YouTube, Amazon Music, Deezer等)中的歌单,转换为本地音乐播放器可识别的歌单格式。
- 支持调用UM Project的可执行文件,可直接在设备上使用UM的功能。(该功能仅供开发者学习研究使用。出于法律法规等相关因素的考虑,不会公开提供此功能)
- 更多功能特性,等待您的发现!
👀 需要使用的权限
- 访问互联网 (
android.permission.INTERNET):用于请求音乐平台服务器,在线获取歌单数据、检查更新、获取应用的更新日志、获取应用的更新信息。 - 控制设备的震动马达 (
android.permission.VIBRATE):用于在某些操作时进行震动反馈。 - 读取音乐App的包名、应用名称等信息 (
<queries>...</queries>):用于在选择歌单来源时,显示歌单来源App的图标、名称等信息。 - Android 11 (API 30) 及以上:
- 所有文件管理权限 (
android.permission.MANAGE_EXTERNAL_STORAGE):从外置存储(/storage/emulated/0)及其子目录中读取音乐文件,写入结果文件
- 所有文件管理权限 (
- Android 10 (API 29) 及以下:
- 读外置存储权限 (
android.permission.READ_EXTERNAL_STORAGE):从外置存储(/storage/emulated/0)及其子目录中读取音乐文件 - 写外置存储权限 (
android.permission.WRITE_EXTERNAL_STORAGE):向下载目录(/storage/emulated/0/Download)中写入结果文件
- 读外置存储权限 (
🎞️ 视频教程
🛠️ 施工中……
📱 需要使用的软件
本项目需要配合以下软件一起使用:
- 受支持的在线音乐平台的Android客户端(选择自己使用的一个或多个平台)
- 音乐标签
- 文件管理器(选择一个即可)
- Android虚拟机(当前设备未获取Root权限时可需要,选择一个即可)
- LSPatch 或 OPatch 或 NPatch 或 ONPatch(当前设备未获取Root权限时可需要,选择一个即可;用于修补官方应用,为应用注入
文件提供者,在没有Root权限的情况下,也能访问应用私有data目录中的文件;或者也可以下载安装已修补的应用) - Salt Player(或糖醋音乐) 或/与 APlayer 或/与 Poweramp
✨ 使用说明
0. 📲 安装应用程序
- 若当前设备有Root权限,直接在本项目的Release中下载最新版本的app-release.apk文件,安装即可。
- 若当前设备没有Root权限,在本项目的Release中下载最新版本的app-release.apk文件后:
- 安装在当前设备中:
- 使用软件提供的在线获取歌单数据功能。(推荐)
- 该方法使用比较简单,直接在软件中登录音乐平台的账号即可。
- 自行修补并安装音乐平台APP,或下载安装已修补的音乐平台APP。(推荐)
- 该方法使用只有一点点复杂(真的只有一点点),可绕过某些音乐平台(如网易云音乐)通过
在线的方式获取歌曲数量的限制(即可完整获取歌单中的歌曲信息)。若歌单中歌曲数量较多,则推荐使用此方法。
- 该方法使用只有一点点复杂(真的只有一点点),可绕过某些音乐平台(如网易云音乐)通过
- 使用虚拟机提供的Root权限来获取歌单来源App的数据库文件,并导出到真机中。
- 该方法使用较为复杂,一般情况下不推荐使用。
- 使用软件提供的在线获取歌单数据功能。(推荐)
- 安装在虚拟机中,使用虚拟机提供的Root权限来自动获取歌单来源App的数据库文件。
- 安装在当前设备中:
1. 🛠️ 对应用进行自定义设置
- 打开歌单无界应用程序。
- 点击底部导航栏的设置按钮。
- 根据您的喜好与设备情况,进行相关设置:
- 动态取色:启用后,应用的主题颜色会根据您的壁纸进行动态取色 (仅支持Android 12+)。
- 主题模式:选择应用的主题模式(跟随系统、浅色、深色)。
- 启动页:可根据需要,自行选择应用启动时显示的功能页。
- 使用Root权限:启用后,应用会使用Root权限自动获取歌单来源App的数据库文件 (仅支持设备已有Root权限的用户)。
- 选择加密服务器:在线获取某些平台的歌单数据时,需要先请求加密服务器将请求字符串加密,再向平台请求数据。提供3个加密服务器供选择,以备不时之需。
- 语言:选择应用的语言(简体中文、English、한국어)。
- 触感反馈:启用后,应用会在某些操作时进行震动反馈。
- 启动时检查更新:启用后,应用会在启动时检查是否有新版本。
2. 🔄️ 刷新本地音乐的标签信息
☢️警告☢️
本步骤会覆盖您本地音乐的标签信息,请谨慎操作!
若您之前已经自行匹配(或修改)过歌曲的标签信息,可跳过本步骤。
若后续匹配结果不理想,再进行此步骤,并重新进行扫描即可。
- 将音乐文件保存在手机里(相信您已经完成这个步骤了)。
- 打开音乐标签APP。
- 点击右上角刷新按钮,令其扫描手机中的音乐文件。
- 点击左上角菜单按钮,点击弹出菜单底部的设置。
- 点击组合标签源,仅启用与歌单来源平台对应的数据源,点击确定(比如,歌单来源平台为网易云音乐,则只启用网易云标签源,其他标签源都应禁用,若歌单来源平台为酷狗音乐,则启用QQ与酷我标签源,且QQ的优先级高于酷我)。
- 返回到音乐标签主界面,点击右下角的编辑按钮,点击自动匹配标签。
- 在弹出的对话框中,仅勾选标题、艺术家、专辑,并同时启用其右侧的覆盖选项,按需调整“网络搜索线程数”,点击确定。
- 等待音乐标签批量匹配完成。
3. 🔎 扫描设备中的所有歌曲文件
-
打开歌单无界应用程序。
-
点击底部导航栏的扫描按钮(应用打开默认处于本页面)支持的音乐格式。
-
若您需要将扫描结果导出,请启用导出结果开关(仅当您需要在其他设备上进行歌单转换操作时,才需要打开本开关),并选择文件格式:
- 在另一台Android设备上使用:选择数据库.db文件。
- 在电脑、平板等大屏设备上使用:选择文本.txt文件
-
点击开始按钮,并授予请求的权限(如果未授予的话)。
-
选择您设备中存放音乐文件的目录,方法如下表格所示:<br>
<details> <summary>展开表格</summary>注意图片中第一行显示的当前父目录
| 音乐文件存放类型 | 在同一个目录中 | |----------|----------------------------------------| | 目录树示例 |
|
| 操作方法 | 直接选择到父目录Music即可 || 音乐文件存放类型 | 在同一目录的子目录中 | |----------|----------------------------------------| | 目录树示例 |
|
| 操作方法 | 直接选择到父目录Music即可 || 音乐文件存放类型 | 在不同目录中 | |----------|----------------------------------------------------------------------| | 目录树示例 |
</details>
|
| 操作方法 | 需要进行多次选择操作,每次选择一个存放音乐的目录(如图中的中文歌曲、temp),并在接下来的冲突对话框中选择追加 | -
等待应用扫描完成(完成后会有Toast与震动提示)。
4. 🚀 进行歌单的转换
ℹ️提示ℹ️
若您使用在线获取歌单数据功能,请跳转查看第4.3节 开始歌单转换的操作。
4.1. 📓 获取在线音乐平台的歌单数据
- 打开需要使用的在线音乐平台客户端APP。
- 登录账号。
- 依次点击进入自己的所有歌单(或者需要导出的歌单),并滑动到歌单页的最底部,加载当前歌单的所有歌曲。
- 重复上述步骤,直到所有要导出的歌单都加载过一次。
- 主动关闭在线音乐平台客户端(在软件菜单中选择关闭[推荐],或在多任务界面中将其划掉)。
4.2. 🛰️ 获取歌单来源App的数据库文件
- 若设备已有Root权限,且在设置中启用了使用Root权限开关的用户,可跳过本步骤。
- 若设备没有Root权限:
- 但已安装修补后的音乐平台App,只需记下数据库的文件名或目录名,无需复制文件。
- 且未安装修补后的音乐平台App,需在虚拟机中进行本步骤。
-
打开文件管理器,授予Root权限,进入在线音乐平台客户端的数据目录,找到databases文件夹,找到指定的数据库文件。<br> 若觉得各个软件的数据目录比较难找,可以使用MT管理器快速定位:
<details> <summary>展开数据路径</summary>点击左上角菜单-点击安装包提取-选择需要的音乐APP-点击数据目录1,即可快速跳转到数据目录。- 网易云音乐
- 数据目录:
/data/user/0/com.netease.cloudmusic/databases - Patch后的数据目录:
网易云音乐/data/databases - 数据库文件:
cloudmusic.db
- 数据目录:
- QQ音乐
- 数据目录:
/data/user/0/com.tencent.qqmusic/databases - Patch后的数据目录:
QQ音乐/data/databases - 数据库文件:
QQMusic
- 数据目录:
- 酷狗音乐
- 数据目录:
/data/user/0/com.kugou.android/databases - Patch后的数据目录:
酷狗音乐/data/databases - 数据库文件:
kugou_music_phone_v7.db
- 数据目录:
- 酷我音乐
- 数据目录:
/data/user/0/cn.kuwo.player/databases - Patch后的数据目录:
酷我音乐/data/databases - 数据库文件:
kwplayer.db
- 数据目录:
- 汽水音乐
- 数据目录:
/data/user/0/com.luna.music/cache/NetCacheLoader/[非0目录] - Patch后的数据目录:
汽水音乐/data/cache/NetCacheLoader/[非0目录]
- 数据目录:
- 网易云音乐
-
将数据库文件复制到外部存储空间的任意目录中(如Download、Document等)。
4.3. 🚩 开始歌单转换的操作
- 打开歌单无界应用程序。
- 点击底部导航栏的转换按钮。
- 选择转换模式为流媒体 → 本地
- 选择歌单来源平台:
- 选择歌单来源App的数据库文件 (在线获取歌单、Root用户忽略)
- 选择歌单获取方式:
-
在线获取:在点击下一步按钮后,弹出的对话框中选择登录方式:
- 网页/二维码 登录:软件将打开所选择的在线音乐平台的登录网页,您需要登录账号(扫码、输入账号密码皆可),登录成功后,点击确定按钮。
- Cookie/用户ID 登录:使用上次网页登录时保留的Cookie信息(若存在且未过期,软件会自动填写),或来自其他浏览器的Cookie信息登录,在输入框内输入Cookie信息,点击确定按钮。
提供的Cookie包含必需信息即可,填写格式为:
key1=value1; key2=value2; key3=value3,不需要填写path、domain等信息。如:
</details>MUSIC_U=XXYYZZ998877; __csrf=aabbcc112233; uid=13811012138 -
数据库获取:选择歌单来源App的数据库文件或目录。
- 若
-
Related Skills
node-connect
331.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
81.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
331.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
81.5kCommit, push, and open a PR
