{"id":22310546,"url":"https://github.com/Winnie0408/LocalMusicHelper","last_synced_at":"2025-07-29T08:31:29.746Z","repository":{"id":217892166,"uuid":"730239668","full_name":"Winnie0408/LocalMusicHelper","owner":"Winnie0408","description":"将您保存在网易云音乐、QQ音乐等在线音乐平台的歌单数据，转换成本项目支持的本地音乐播放器（如Salt Player、APlayer、Poweramp等）可识别的歌单格式，完成歌单的导入操作，方便您快速从在线音乐平台迁移歌单到本地音乐播放器。Quickly migrate your playlists from online music platforms to local music players.","archived":false,"fork":false,"pushed_at":"2024-04-15T07:41:04.000Z","size":2043,"stargazers_count":64,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-16T20:11:40.988Z","etag":null,"topics":["android","android-application","html","id3","id3-reader","id3v2","jetpack-compose","kotlin","kotlin-android","kotlin-coroutines","music","playlist","playlist-parser"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Winnie0408.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-12-11T13:55:09.000Z","updated_at":"2024-04-27T13:20:16.114Z","dependencies_parsed_at":"2024-03-31T08:31:10.052Z","dependency_job_id":"7ebd1e39-bad7-4ef8-9457-a0b2176394bf","html_url":"https://github.com/Winnie0408/LocalMusicHelper","commit_stats":null,"previous_names":["winnie0408/localmusichelper"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/Winnie0408/LocalMusicHelper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Winnie0408%2FLocalMusicHelper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Winnie0408%2FLocalMusicHelper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Winnie0408%2FLocalMusicHelper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Winnie0408%2FLocalMusicHelper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Winnie0408","download_url":"https://codeload.github.com/Winnie0408/LocalMusicHelper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Winnie0408%2FLocalMusicHelper/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267653163,"owners_count":24122147,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-application","html","id3","id3-reader","id3v2","jetpack-compose","kotlin","kotlin-android","kotlin-coroutines","music","playlist","playlist-parser"],"created_at":"2024-12-03T21:02:19.238Z","updated_at":"2025-07-29T08:31:29.734Z","avatar_url":"https://github.com/Winnie0408.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"\u003cdiv align=\"right\"\u003e\u003ch3\u003e中文 / \u003ca href=\"README_ENG.md\"\u003eEnglish\u003c/a\u003e\u003c/h3\u003e\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"markdownResources/ic_launcher.png\" width = \"150\" height = \"150\" alt=\"cover\" /\u003e\n    \u003ch2\u003e欢迎使用 歌单无界\u003c/h2\u003e\n\u003c/div\u003e\n\u003ch5 align=\"center\"\u003e本工具独立使用即可，也可配合 \u003ca href=\"https://github.com/Winnie0408/SaltPlayerConverter\"\u003e椒盐歌单转换助手\u003c/a\u003e 用于生成本地歌曲信息，并在电脑、平板等大屏设备上使用。\u003c/h5\u003e\n\n## 🧐 仓库访问数\n\n\u003cdiv align=\"center\"\u003e\n    \u003cp\u003e（统计开始于2024.2.9）\u003c/p\u003e\n    \u003cimg src=\"https://profile-counter.glitch.me/HWinZnieJ_LocalMusicHelper/count.svg\" alt=\"visit_count\" /\u003e\n\u003c/div\u003e\n\n## 🌈 项目介绍\n\n\u003e **⚠️注意⚠️**\n\u003e\n\u003e 本项目只提供**歌单**的迁移与转换功能，**不具有**音乐下载、传输、播放的能力，您需要自行使用其他方式来获取非加密格式(flac、mp3、wav等)的音乐文件。\n\n现在，已经有大量用户将主力使用的音乐软件从**在线音乐平台**转为了**本地音乐播放器**，虽然歌曲可以很顺利且快速地进行迁移操作，但是无法将自己创建的歌单、或者其他用户的优秀歌单一并进行快速迁移操作，这个项目就是为了解决这个问题而诞生的。\n\n本项目能够将用户保存在网易云音乐、QQ音乐、酷狗音乐、酷我音乐、汽水音乐、Spotify，共6个在线音乐平台的歌单数据，以及从TuneMyMusic生成的CSV歌单文件，转换成支持的本地音乐播放器 **（目前支持：Salt Player、APlayer、Poweramp）** 可识别的歌单格式，完成歌单的导入操作，方便用户快速从在线音乐平台迁移歌单到本地音乐播放器。同时也支持了Salt Player、APlayer、Poweramp的歌单格式的相互转换，能快速方便地在本地播放器之间迁移歌单数据。\n\n## 🤖 支持的Android版本\n\n- 推荐：Android API Level 31（Android S, 12.0）及以上版本。\n- 兼容：Android API Level 26（Android O, 8.0）及以上版本。\n\n## 💎 项目特点\n\n1. 使用Jetpack Compose进行UI设计，界面简洁美观。\n2. 使用[Salt UI](https://github.com/Moriafly/SaltUI)为UI基础组件。\n3. 完全在本地进行歌单数据的转换，不上传任何无关数据到服务器。\n4. 支持多种在线音乐平台的歌单数据，以及多种本地音乐播放器的歌单格式，可根据需要自行选择。\n5. 保留原歌单的排序方式，不会因为转换而改变原歌单的排序。\n6. 保留对[椒盐歌单转换助手](https://github.com/Winnie0408/SaltPlayerConverter)的支持，生成的结果文件仍可在电脑、平板等大屏设备上使用。\n7. 多语言支持，目前提供简体中文、英语、韩语。\n8. 干净无广告，且只在必要时（获取在线歌单数据、检查版本更新等操作）连接互联网。\n9. 提供自定义选项，支持部分Material 3特性（莫奈取色、单色主题图标等）。\n10. 💫 在App中登录音乐平台的账号，即可**直接从对应平台在线获取歌单数据，无需再手动寻找数据库文件**。\n11. 💫 设备**已有Root权限**的用户，可使用Root权限自动获取歌单来源App的数据库文件。\n12. 提供简单的音乐标签编辑功能。\n13. 支持部分标签的补全功能，可根据歌曲中已有的标签信息自动填充缺失标签信息。\n14. 支持Salt Player、APlayer、Poweramp这3个本地播放器之间的歌单的相互转换。\n15. 提供丰富的，可自定义强度的触觉反馈。\n16. 支持[TuneMyMusic](https://www.tunemymusic.com)生成的CSV歌单文件，可将其支持的平台（如：TIDAL, Apple Music, YouTube, Amazon Music, Deezer等）中的歌单，转换为本地音乐播放器可识别的歌单格式。\n17. 支持调用[UM Project](https://unlock-music.dev)的可执行文件，可直接在设备上使用UM的功能。（该功能仅供开发者学习研究使用。出于法律法规等相关因素的考虑，**不会公开提供此功能**）\n18. 更多功能特性，等待您的发现！\n\n## 👀 需要使用的权限\n\n- **访问互联网** (`android.permission.INTERNET`)：用于请求音乐平台服务器，在线获取歌单数据、检查更新、获取应用的更新日志、获取应用的更新信息。\n- **控制设备的震动马达** (`android.permission.VIBRATE`)：用于在某些操作时进行震动反馈。\n- **读取音乐App的包名、应用名称等信息** (`\u003cqueries\u003e...\u003c/queries\u003e`)：用于在选择歌单来源时，显示歌单来源App的图标、名称等信息。\n- Android 11 (API 30) 及以上：\n    - **所有文件管理权限** (`android.permission.MANAGE_EXTERNAL_STORAGE`)：从外置存储(`/storage/emulated/0`)及其子目录中读取音乐文件，写入结果文件\n- Android 10 (API 29) 及以下：\n    - **读外置存储权限** (`android.permission.READ_EXTERNAL_STORAGE`)：从外置存储(`/storage/emulated/0`)及其子目录中读取音乐文件\n    - **写外置存储权限** (`android.permission.WRITE_EXTERNAL_STORAGE`)：向下载目录(`/storage/emulated/0/Download`)中写入结果文件\n\n## 🎞️ 视频教程\n\n🛠️ 施工中……\n\n## 📱 需要使用的软件\n\n本项目需要配合以下软件一起使用：\n\n- [受支持的在线音乐平台](README.md#-音乐平台的选择)的Android客户端（选择自己使用的一个或多个平台）\n    - [网易云音乐](https://music.163.com/)\n    - [QQ音乐](https://y.qq.com/)\n    - [酷狗音乐](https://www.kugou.com/)\n    - [酷我音乐](https://www.kuwo.cn/)\n    - [汽水音乐](https://music.douyin.com/qishui)\n    - [Spotify](https://open.spotify.com/) **（⚠️由于Spotify中音乐的标题大多使用英语、繁体中文或音乐的原语言，故匹配准确率可能有所降低⚠️）**\n    - [TuneMyMusic](https://www.tunemymusic.com)（仅支持其生成的**CSV**歌单文件）\n- 音乐标签\n    - [Windows](https://www.cnblogs.com/vinlxc/p/11347744.html)\n    - [Android](https://www.coolapk.com/apk/com.xjcheng.musictageditor)**（推荐）**\n- 文件管理器（选择一个即可）\n    - [MT管理器](https://www.coolapk.com/apk/bin.mt.plus)**（推荐）**\n    - [ES文件浏览器](https://www.coolapk.com/apk/com.estrongs.android.pop)\n    - [MiXplorer](https://mixplorer.com)\n- Android虚拟机（当前设备**未获取**Root权限时**可需要**，选择一个即可）\n    - [VMOS Pro](https://www.coolapk.com/apk/com.vmos.pro)：在手机上使用的虚拟机 ~~（可能需要使用VIP版，详情查看该应用的酷安评论区）~~\n    - [MuMu模拟器](https://mumu.163.com)：在电脑上使用的虚拟机\n- LSPatch 或 OPatch 或 NPatch 或 ONPatch（当前设备**未获取**Root权限时**可需要**，选择一个即可；用于[修补官方应用，为应用注入`文件提供者`](README.md#-修补应用注入文件提供者)，在没有Root权限的情况下，也能访问应用私有data目录中的文件；**或者也可以[下载安装已修补的应用](README.md#-已使用onpatch注入文件提供者的音乐平台安装包)**）\n    - [LSPatch](https://github.com/LSPosed/LSPatch/releases) **（已停更，不推荐）**\n    - [OPatch](https://wwp.lanzout.com/b0kn2kyuf) 密码:6fvz\n    - [NPatch](https://wwp.lanzout.com/b0kn2kyuf) 密码:6fvz\n    - [ONPatch](https://wwp.lanzout.com/b0kn2kyuf) 密码:6fvz\n- Salt Player（或糖醋音乐） 或/与 APlayer 或/与 Poweramp\n\n## ✨ 使用说明\n\n### 0. 📲 安装应用程序\n\n- 若当前设备**有**Root权限，直接在本项目的Release中下载最新版本的**app-release.apk**文件，安装即可。\n- 若当前设备**没有**Root权限，在本项目的Release中下载最新版本的**app-release.apk**文件后：\n    - 安装在当前设备中：\n        - 使用软件提供的在线获取歌单数据功能。**（推荐）**\n            - 该方法使用比较简单，直接在软件中登录音乐平台的账号即可。\n        - [自行修补并安装音乐平台APP](README.md#-修补应用注入文件提供者)，或[下载安装已修补的音乐平台APP](README.md#-已使用onpatch注入文件提供者的音乐平台安装包)。**（推荐）**\n            - 该方法使用只有一点点复杂（**真的只有一点点**），可绕过某些音乐平台（如网易云音乐）通过`在线`的方式获取歌曲数量的限制（即可完整获取歌单中的歌曲信息）。**若歌单中歌曲数量较多，则推荐使用此方法**。\n        - 使用虚拟机提供的Root权限来获取歌单来源App的数据库文件，并导出到真机中。\n            - 该方法使用较为复杂，**一般情况下不推荐使用**。\n    - 安装在虚拟机中，使用虚拟机提供的Root权限来自动获取歌单来源App的数据库文件。\n        - 可选的虚拟机 **（虚拟机的系统需要Android API Level 26（Android O, 8.0）及以上）**：\n        - [VMOS Pro](https://www.coolapk.com/apk/com.vmos.pro)：在手机上使用的虚拟机 ~~（可能需要使用VIP版，详情查看该应用的酷安评论区）~~\n        - [MuMu模拟器](https://mumu.163.com)：在电脑上使用的虚拟机\n        - 其他支持启用Root权限的虚拟机\n\n### 1. 🛠️ 对应用进行自定义设置\n\n1. 打开**歌单无界**应用程序。\n2. 点击底部导航栏的**设置**按钮。\n3. 根据您的喜好与设备情况，进行相关设置：\n    - 动态取色：启用后，应用的主题颜色会根据您的壁纸进行动态取色 **（仅支持Android 12+）**。\n    - 主题模式：选择应用的主题模式（跟随系统、浅色、深色）。\n    - 启动页：可根据需要，自行选择应用启动时显示的功能页。\n    - 使用Root权限：启用后，应用会使用Root权限自动获取歌单来源App的数据库文件 **（仅支持设备已有Root权限的用户）**。\n    - 选择加密服务器：在线获取某些平台的歌单数据时，需要先请求加密服务器将请求字符串加密，再向平台请求数据。提供3个加密服务器供选择，以备不时之需。\n    - 语言：选择应用的语言（简体中文、English、한국어）。\n    - 触感反馈：启用后，应用会在某些操作时进行震动反馈。\n    - 启动时检查更新：启用后，应用会在启动时检查是否有新版本。\n\n### 2. 🔄️ 刷新本地音乐的标签信息\n\n\u003e **☢️警告☢️**\n\u003e\n\u003e 本步骤会**覆盖**您本地音乐的标签信息，**请谨慎操作**！\n\u003e\n\u003e 若您之前已经自行匹配（或修改）过歌曲的标签信息，可跳过本步骤。\n\u003e\n\u003e 若后续匹配结果不理想，再进行此步骤，并重新进行扫描即可。\n\n1. 将音乐文件保存在手机里（相信您已经完成这个步骤了）。\n2. 打开**音乐标签**APP。\n    1. 点击右上角**刷新**按钮，令其扫描手机中的音乐文件。\n    2. 点击左上角**菜单**按钮，点击弹出菜单底部的**设置**。\n    3. 点击**组合标签源**，**仅启用**与歌单来源平台**对应的**数据源，点击确定（比如，歌单来源平台为**网易云音乐**，则只启用**网易云**标签源，其他标签源都应**禁用**，若歌单来源平台为**酷狗音乐**，则启用**QQ与酷我**标签源，且QQ的优先级**高于**酷我）。\n    4. 返回到音乐标签主界面，点击右下角的**编辑**按钮，点击**自动匹配标签**。\n    5. 在弹出的对话框中，**仅勾选**标题、艺术家、专辑，**并同时启用**其右侧的覆盖选项，按需调整“网络搜索线程数”，点击确定。\n    6. 等待音乐标签批量匹配完成。\n\n### 3. 🔎 扫描设备中的所有歌曲文件\n\n1. 打开**歌单无界**应用程序。\n2. 点击底部导航栏的**扫描**按钮（应用打开默认处于本页面）[支持的音乐格式](README.md#-支持的音乐格式)。\n3. 若您需要将扫描结果导出，请启用**导出结果**开关（仅当您需要在其他设备上进行歌单转换操作时，才需要打开本开关），并选择文件格式：\n    - 在另一台Android设备上使用：选择**数据库.db文件**。\n    - 在电脑、平板等大屏设备上使用：选择**文本.txt文件**\n4. 点击**开始**按钮，并授予[请求的权限](README.md#-需要使用的权限)（如果未授予的话）。\n5. 选择您设备中存放音乐文件的目录，方法如下表格所示：\u003cbr\u003e\n   \u003cdetails\u003e\n   \u003csummary\u003e展开表格\u003c/summary\u003e\n\n   **注意图片中第一行显示的当前父目录**\n\n   | 音乐文件存放类型 | 在同一个目录中                                |\n      |----------|----------------------------------------|\n   | 目录树示例    | ![img.png](markdownResources/img1.png) | \n   | 操作方法     | 直接选择到父目录`Music`即可                      | \n\n   | 音乐文件存放类型 | 在同一目录的子目录中                             |\n      |----------|----------------------------------------|\n   | 目录树示例    | ![img.png](markdownResources/img2.png) |\n   | 操作方法     | 直接选择到父目录`Music`即可                      |\n\n   | 音乐文件存放类型 | 在不同目录中                                                               |\n      |----------|----------------------------------------------------------------------|\n   | 目录树示例    | ![img.png](markdownResources/img3.png)                               |\n   | 操作方法     | 需要进行多次选择操作，每次选择**一个**存放音乐的目录(如图中的`中文歌曲`、`temp`)，并在接下来的冲突对话框中选择**追加** |\n\n   \u003c/details\u003e\n\n6. 等待应用扫描完成（完成后会有Toast与震动提示）。\n\n### 4. 🚀 进行歌单的转换\n\n\u003e **ℹ️提示ℹ️**\n\u003e\n\u003e 若您使用**在线获取歌单数据**功能，请跳转查看[第4.3节 开始歌单转换的操作](README.md#43--开始歌单转换的操作)。\n\n#### 4.1. 📓 获取在线音乐平台的歌单数据\n\n1. 打开需要使用的在线音乐平台客户端APP。\n2. 登录账号。\n3. **依次**点击进入自己的所有歌单（或者需要导出的歌单），并滑动到歌单页的**最底部**，加载当前歌单的所有歌曲。\n4. 重复上述步骤，直到所有要导出的歌单**都加载过一次**。\n5. 主动关闭在线音乐平台客户端（在软件菜单中选择**关闭**\\[推荐\\]，或在多任务界面中将其划掉）。\n\n#### 4.2. 🛰️ 获取歌单来源App的数据库文件\n\n- 若设备**已有**Root权限，且在**设置**中启用了**使用Root权限**开关的用户，**可跳过本步骤**。\n- 若设备**没有**Root权限：\n  - **但已安装**修补后的音乐平台App，只需记下数据库的文件名或目录名，**无需复制文件**。\n  - **且未安装**修补后的音乐平台App，需在虚拟机中进行本步骤。\n\n1. 打开文件管理器，**授予Root权限**，进入在线音乐平台客户端的**数据目录**，找到**databases**文件夹，找到指定的数据库文件。\u003cbr\u003e\n   *若觉得各个软件的数据目录比较难找，可以使用MT管理器快速定位：`点击左上角菜单-点击安装包提取-选择需要的音乐APP-点击数据目录1`，即可快速跳转到数据目录。*\n    \u003cdetails\u003e\n    \u003csummary\u003e展开数据路径\u003c/summary\u003e\n\n    - 网易云音乐\n        - 数据目录：`/data/user/0/com.netease.cloudmusic/databases`\n        - Patch后的数据目录：`网易云音乐/data/databases`\n        - 数据库文件：`cloudmusic.db`\n    - QQ音乐\n        - 数据目录： `/data/user/0/com.tencent.qqmusic/databases`\n        - Patch后的数据目录：`QQ音乐/data/databases`\n        - 数据库文件：`QQMusic`\n    - 酷狗音乐\n        - 数据目录：`/data/user/0/com.kugou.android/databases`\n        - Patch后的数据目录：`酷狗音乐/data/databases`\n        - 数据库文件：`kugou_music_phone_v7.db`\n    - 酷我音乐\n        - 数据目录：`/data/user/0/cn.kuwo.player/databases`\n        - Patch后的数据目录：`酷我音乐/data/databases`\n        - 数据库文件：`kwplayer.db`\n    - 汽水音乐\n        - 数据目录：`/data/user/0/com.luna.music/cache/NetCacheLoader/[非0目录]`\n        - Patch后的数据目录：`汽水音乐/data/cache/NetCacheLoader/[非0目录]`\n\n   \u003c/details\u003e\n2. 将数据库文件复制到外部存储空间的任意目录中（如Download、Document等）。\n\n#### 4.3. 🚩 开始歌单转换的操作\n\n1. 打开**歌单无界**应用程序。\n2. 点击底部导航栏的**转换**按钮。\n3. 选择转换模式为**流媒体 → 本地**\n4. 选择**歌单来源平台**：\n    - 选择歌单来源App的数据库文件 **（在线获取歌单、Root用户忽略）**\n5. 选择**歌单获取方式**：\n    - 在线获取：在点击下一步按钮后，弹出的对话框中选择登录方式：\n        - 网页/二维码 登录：软件将打开所选择的在线音乐平台的登录网页，您需要登录账号（扫码、输入账号密码皆可），登录成功后，点击**确定**按钮。\n        - Cookie/用户ID 登录：使用上次网页登录时保留的Cookie信息（若存在且未过期，软件会自动填写），或[来自其他浏览器的Cookie信息](README.md#-使用浏览器获取音乐平台的cookie信息)登录，在输入框内输入Cookie信息，点击**确定**按钮。\n        \u003cdetails\u003e\n         \u003csummary\u003e展开各平台需要的Cookie信息\u003c/summary\u003e\n\n      提供的Cookie**包含必需信息即可**，填写格式为：`key1=value1; key2=value2; key3=value3`，**不需要**填写`path`、`domain`等信息。\n\n      如：`MUSIC_U=XXYYZZ998877; __csrf=aabbcc112233; uid=13811012138`\n\n        - 网易云音乐：`MUSIC_U`、`__csrf`、`uid`（uid需要您[自行获取](README.md#-获取网易云音乐uid)）\n        - QQ音乐：`uin`或`wxuin`、`qm_keyst`\n        - 酷狗音乐：仅支持扫描二维码登录。（使用车机版的登录接口，需要使用酷狗APP扫码；或者酷狗账号绑定微信后，微信扫码关注“酷狗智能设备”公众号。）\n        - 酷我音乐：`Hm_Iuvt`\n        - 汽水音乐：`sessionid`或`sessionid_ss`\n        - Spotify：用户ID（需要您[自行获取](README.md#-获取spotify用户id)）\n       \u003c/details\u003e\n\n    - 数据库获取：选择歌单来源App的数据库文件或目录。\n        - 若已安装**经过修补**的音乐平台APP，点击`文件提供者`左上角的菜单按钮，选择对应的音乐平台，在database或cache目录中，选择对应的文件或目录。\n        - 若使用的是**自行提取**的数据文件，点击`文件提供者`左上角的菜单按钮，选择当前设备的名称，选择对应的文件或目录。\n6. 选择使用本软件的扫描结果，还是来自其他设备的扫描结果。\n7. 选择转换后要导入的音乐播放器。\n8. 点击**下一步**按钮，并授予[请求的权限](README.md#-需要使用的权限)（如果未授予的话）。\n9. 查看检测到的有效歌单，检查**歌单名称、包含的歌曲数量**是否正常，若使用在线获取，还可以点击添加按钮，输入歌单编号或歌单分享链接，将其他歌单添加到待转换列表。\n10. 勾选要转换的歌单，点击**下一步**按钮。\n11. 根据需要自定义[转换选项](README.md#-转换选项说明)。\n12. 点击**预览转换结果**按钮，等待转换完成（完成后会有震动提示）。\n13. 查看转换结果，可以使用**筛选**功能对结果进行相关筛选。\n    - 若对当前结果满意，可以直接点击**保存转换结果**按钮，选择要保存的转换状态，继续下一个歌单的转换操作（如果有的话）。\n    - 若对当前结果有点不满意，可以点击**转换错误的歌曲**，在您的本地曲库中搜索并修改转换的结果（点击对话框中的“歌名”、“歌手”、“专辑”项，可以快速输入该项内容到输入框中），或者从结果中删除某首歌曲。\n    - 若对当前结果非常不满意，可以点击**重新修改参数**按钮，或者直接**返回**，回到上一页，对转换选项进行相关修改后，再次尝试转换。\n14. 待之前选择的所有歌单均转换完成后，会跳转到“转换完成”页，可以点击**复制目录路径**按钮，便于直接使用文件管理器，前往查看结果文件；或者点击 **打开\\[播放器名称\\]** 按钮，直接打开对应的音乐播放器，进行歌单的导入操作。\n15. （仅歌单获取方式为**在线获取**才可使用，可选）点击“转换完成”页中的退出登录按钮，退出音乐平台的登录状态。（会导致在第4步时**无法自动填写**Cookie信息）\n\n### 5. 💝 导入歌单到本地音乐播放器\n\n- 🌟 Salt Player（或糖醋音乐）\n    \u003cdetails\u003e\n    \u003csummary\u003e展开步骤\u003c/summary\u003e\n\n    1. 打开Salt Player（或糖醋音乐）。\n    2. 点击左上角的**菜单**按钮，或向右滑动。\n    3. 点击**歌单**项。\n    4. 点击右上角的**菜单**按钮。\n    5. 点击 **导入歌单(.txt)** 按钮。\n    6. 选择生成的转换结果文件。\n\n  \u003c/details\u003e\n- 🌟 APlayer\n    \u003cdetails\u003e\n    \u003csummary\u003e展开步骤\u003c/summary\u003e\n\n    1. 打开APlayer。\n    2. 点击左上角的**菜单**按钮。\n    3. 点击**设置**项。\n    4. 点击**歌单导入**项。\n    5. 选择 **从外部存储导入(.m3u)** 。\n    6. 选择生成的转换结果文件。\n\n    \u003c/details\u003e\n- 🌟 Poweramp\n    \u003cdetails\u003e\n    \u003csummary\u003e展开步骤\u003c/summary\u003e\n\n    1. 使用文件管理器(系统自带或第三方皆可)，前往生成的转换结果文件所在的目录。\n    2. 将所有.m3u8文件复制/移动到Poweramp的媒体库目录中。\n    3. 打开Poweramp。\n    4. 点击左下角的**媒体库**按钮。\n    5. 点击**播放列表**项。\n    6. 点击右上角的**菜单**按钮。\n    7. 点击**重新扫描/解析播放列表**项。\n\n    \u003c/details\u003e\n\n### 6. ℹ️ 查看应用的关于信息\n\n1. 打开**歌单无界**应用程序。\n2. 点击底部导航栏的**设置**按钮。\n3. 滑动到页面底部，点击**关于**按钮。\n4. 查看应用的相关信息：\n    - 应用图标\n    - 应用名称\n    - 应用版本\n    - 制作人员（包含❤️感谢名单❤️）\n    - 检查更新（手动）\n    - 开源代码许可证\n    - 打开Salt Convertor 电脑版\n    - 赞赏开发者\n5. 联系开发者\n    - 加入QQ群\n    - 关注酷安\n    - 关注哔哩哔哩\n    - 查看本项目的GitHub仓库\n    - 查看本项目的GitLab仓库\n    - ~~查看本项目的Gitee仓库~~\n\n### 7. 🏷️ 管理本地音乐的标签信息\n\n- 已支持以下标签的编辑\n  - 标题（歌名）\n  - 艺术家（歌手）\n  - 专辑\n  - 专辑艺术家\n  - 专辑封面\n  - 流派\n  - 作词\n  - 作曲\n  - 编曲\n  - 发行年份\n  - 音轨号\n  - 碟号\n  - 歌词\n\n- 已支持以下标签的自动补全（长按列表中的任意音乐项，可以进入多选状态，此时将只对选中的歌曲进行补全操作；进入多选状态后，再次长按任意音乐项，将该音乐项作为区间选择的开头，再次长按任意音乐项，将该音乐项作为区间选择的结束）\n  - 专辑艺术家\n    \u003cdetails\u003e\n    \u003csummary\u003e展开详细说明\u003c/summary\u003e\n\n    **该功能依赖于本地歌曲的「专辑」与「艺术家」标签信息**。\n\n    获取每个歌曲文件的「专辑」标签，在本地歌曲中查找是否有其他歌曲属于同一张专辑，将同一张专辑所有歌曲的「艺术家」标签汇总，并按照`艺术家1/艺术家2/艺术家3`的格式，写入「专辑艺术家」标签中。\n    - 例（本地音乐中有以下歌曲）：\n      - 歌曲1：离别时刻 - 娄艺潇 - 离别时刻 爱情公寓5电视剧原声带\n      - 歌曲2：你的每个瞬间 - 成始璄 - 来自星星的你 OST - Part.7\n      - 歌曲3：走在冷风中 - 刘思涵 - 拥抱你\n      - 歌曲4：新婚礼进行曲 (进场篇) - 爱情公寓全体 - 离别时刻 爱情公寓5电视剧原声带\n      - 歌曲5：最好的礼物 - 李金铭 - 离别时刻 爱情公寓5电视剧原声带\n      - 歌曲6：你的每个瞬间 (Piano VER.) - 成始璄 - 来自星星的你 OST - Part.7\n      - 歌曲7：孤独的角落 - 韦正 - 离别时刻 爱情公寓5电视剧原声带\n      - 歌曲8：借过 - 印子月 - 旋风少女 电视剧原声带\n    - 进行「专辑艺术家」标签快速补全后：\n      - 歌曲1、4、5、7的「专辑」均为`离别时刻 爱情公寓5电视剧原声带`，故将这4首歌曲的「艺术家」汇总为`娄艺潇/爱情公寓全体/李金铭/韦正`，并写入这4首歌的「专辑艺术家」标签中。\n      - 歌曲2、6的「专辑」均为`来自星星的你 OST - Part.7`，故将这2首歌曲的「艺术家」汇总为`成始璄`，并写入这2首歌的「专辑艺术家」标签中。\n      - 歌曲3的「专辑」为`拥抱你`，故将该歌曲的「艺术家」汇总为`刘思涵`，并写入该歌曲的「专辑艺术家」标签中。\n      - 歌曲8的「专辑」为`旋风少女 电视剧原声带`，故将该歌曲的「艺术家」汇总为`印子月`，并写入该歌曲的「专辑艺术家」标签中。\n\n    \u003c/details\u003e\n    \n  - 作词、作曲、编曲\n    \u003cdetails\u003e\n    \u003csummary\u003e展开详细说明\u003c/summary\u003e\n\n    **该功能依赖于本地歌曲的「歌词」标签信息**。\n\n    获取每个歌曲文件的「歌词」标签，识别出歌词中保存的作词、作曲、编曲信息，并按照`人名1/人名2/人名3`的格式，分别写入「作词」、「作曲」、「编曲」标签中。\n      - 目前支持以下歌词类型：\n          - [00:00.48]Written by\n          - [00:00.48]Lyrics by\n          - [00:00.48]Composed by\n          - [00:00.48]Arranged by\n          - [00:00.48]作词\n          - [00:00.48]作词 Lyrics\n          - [00:00.48]作詞\n          - [00:00.48]作曲\n          - [00:00.48]作曲 Composer\n          - [00:00.48]编曲\n          - [00:00.48]编曲 Arranger\n          - [00:00.48]编曲 Arrangement\n          - [00:00.48]編曲\n          - [00:00.48]词\n          - [00:00.48]詞\n          - [00:00.48]曲\n    \n    若您发现作词、作曲、编曲的识别有遗漏或错误，请联系开发者。\n\n    \u003c/details\u003e\n\n## 🎵 支持的音乐格式\n\n- OGG\n- MP3\n- FLAC\n- MP4\n- M4A\n- M4P\n- WMA\n- WAV\n- RA\n- RM\n- M4B\n- AIF\n- AIFF\n- AIFC\n- DSF\n- DFF\n\n## ⚙️ 转换选项说明\n\n### 相似度阈值\n\n程序认为两个字符串**相同**的相似度大小，详情：\n\n若当前阈值为0.8：\n\n- **相同**\n\n  字符串1：想いの眠るゆりかご (回忆长眠的摇篮)\u003cbr\u003e\n  字符串2：想いの眠るゆりかご (回忆长眠的摇篮)\u003cbr\u003e\n  相似度：1.0\n\n\n- **相同**\n\n  字符串1：伤感 II\u003cbr\u003e\n  字符串2：伤感 I\u003cbr\u003e\n  相似度：0.8\n\n\n- **不相同**\n\n  字符串1：I'M OK\u003cbr\u003e\n  字符串2：I AM OK\u003cbr\u003e\n  相似度：0.7142857142857143\n\n\n- **不相同**\n\n  字符串1：BANG BANG BANG (뱅뱅뱅)\u003cbr\u003e\n  字符串2：BANG BANG BANG\u003cbr\u003e\n  相似度：0.7\n\n\n- **不相同**\n\n  字符串1：이 사랑 (这份爱) (Inst.)\u003cbr\u003e\n  字符串2：이 사랑 (这份爱)\u003cbr\u003e\n  相似度：0.5555555555555556\n\n\n- **不相同**\n\n  字符串1：aaabbbccc\u003cbr\u003e\n  字符串2：abcabcabc\u003cbr\u003e\n  相似度：0.33333333333333337\n\n### 括号去除\n\n大部分音乐平台对外语歌曲信息的命名方式一般为： `外文 (中文翻译)`或`外文 (歌曲来源、歌曲版本等)`。\n\n如`City Of Stars (From \"La La Land\" Soundtrack)`、`CALL ME BABY (叫我) (Chinese Ver.)`、`桜色舞うころ (樱花纷飞时)`。\n\n启用此功能可以将字符串中的括号部分删去，只保留外文名，即：`外文`。如：`City Of Stars`、`CALL ME BABY`、`桜色舞うころ`，以此提高自动匹配成功率。\n\n但需要注意，部分歌曲会在歌名后用括号注明歌曲版本：`歌名 (歌曲版本)`。如`曾经我也想过一了百了 (Live)`、`TruE (Ed Ver.)`，在这种情况下，若启用了本功能，会将其变成：`曾经我也想过一了百了`、`TruE`，继而**可能会出现匹配错误**。\n\n请您根据您的实际情况，决定是否使用本功能。\n\n### 匹配模式\n\n例如：\n\n歌单中歌曲的信息如下：\n\n歌名：小幸运\n\n歌手：田馥甄\n\n专辑：我的少女时代 电影原声带\n\n---\n\n本地歌曲的信息如下：\n\n歌名：小幸运\n\n歌手：田馥甄\n\n专辑：我的少女时代 电影原声大碟\n\n#### 总体匹配\n\n将歌曲的\\[歌名\\] \\[歌手\\] \\[专辑\\]拼接成一个字符串，进行匹配，找到相似度最大的歌曲。表格中将显示整体匹配的相似度。\n\n本匹配方法将使用：\n\n`小幸运田馥甄我的少女时代 电影原声带`\n\n与\n\n`小幸运田馥甄我的少女时代 电影原声大碟`\n\n进行匹配，相似度结果为：89.47%。\n\n#### 分离匹配\n\n将歌曲的\\[歌名\\] \\[歌手\\] \\[专辑\\]分别进行匹配， 找到相似度最大的歌曲。 表格中将显示每个匹配项的相似度。\n\n本匹配方法将分别使用：\n\n- `小幸运`与`小幸运`\n- `田馥甄`与`田馥甄`\n- `我的少女时代 电影原声带`与`我的少女时代 电影原声大碟`\n\n进行匹配，相似度结果分别为：\n\n- 100%\n- 100%\n- 84.62%\n\n## 🎪 音乐平台的选择\n\n### **网易云音乐** 、 **QQ音乐** 、**汽水音乐**\n\n这三个平台的歌曲信息正确率较高，且较为完整，可以保证自动匹配的成功率。\n\n### 酷狗音乐\n\n该平台歌曲信息不太符合规范，合唱歌曲的艺术家名使用`、`分隔，且括号、斜杠的使用比较混乱，且**非【我喜欢】歌单**中歌曲的专辑信息不会保存到数据库中，导致匹配精确度下降，不太建议使用。\n\n### 酷我音乐\n\n该平台歌曲信息不太符合规范，合唱歌曲的艺术家名使用`\u0026`分隔，且括号、斜杠的使用比较混乱，且有很多用户自行上传的歌曲，这些歌曲的标签信息大部分都不完整且不合规范，可能导致匹配精确度下降，不太建议使用。\n\n### Spotify\n\n似乎该平台音乐的标题大多使用英语、繁体中文或音乐的原语言，故匹配准确率**可能有所降低**。\n\n## 🍬 获取网易云音乐UID\n\n- 移动端App：\n    1. 打开网易云音乐APP，并登录。\n    2. 点击屏幕下方中间的**我的**按钮。\n    3. 点击您的头像或昵称。\n    4. 点击右上角...，选择**编辑资料**，或直接点击**编辑资料**按钮。\n    5. 点击最后一项**账号和绑定设置**\n    6. 您的UID会显示在页面的最上方。\n\n- 电脑端（或移动端浏览器使用电脑UA）网页版：\n    1. 打开[网易云音乐](https://music.163.com/)，并登录。\n    2. 点击页面右上角的头像，点击弹出菜单中的**我的主页**项。\n    3. 查看浏览器地址栏中的`/home?id=xxxxx`，xxxxx即为您的UID。\n\n## 🍬 获取Spotify用户ID\n\n- 移动端APP：\n    1. 打开Spotify App，点击左上角您的用户头像。\n    2. 点击`设置和隐私`，点击`账号`。\n    3. `用户名`处显示的字符串即为您的Spotify用户ID。\n\n- 网页端：\n    1. 登录[Spotify网页版](https://accounts.spotify.com)。\n    2. 登录成功后，点击`账号总览`，`编辑个人资料`。\n    3. `用户名`处显示的字符串即为您的Spotify用户ID。\n\n## 🩹 修补应用，注入“文件提供者”\n\n各个Patch应用的修补方法大致相同，此处以**ONPatch**为例：\n\n1. 下载并安装**ONPatch**。\n2. 下载要使用的音乐平台的安装包。（实测时间：2024年5月14日）\n    - 网易云音乐：经实测，仅支持**8.9.22**及以下版本 [下载安装包](https://www.wandoujia.com/apps/293217/history_v8009022)。\n    - QQ音乐：经实测，支持最新版本（13.5.5.8）[下载安装包](https://www.coolapk.com/apk/com.tencent.qqmusic)，或通过其他方式获取安装包。\n    - 酷狗音乐：经实测，支持最新版本（12.2.6）[下载安装包](https://www.coolapk.com/apk/com.kugou.android)，或通过其他方式获取安装包。\n    - 酷我音乐：经实测，支持最新版本（10.8.0.1）[下载安装包](https://www.coolapk.com/apk/cn.kuwo.player)，或通过其他方式获取安装包。\n    - 汽水音乐：经实测，支持最新版本（10.0.0）[下载安装包](https://music.douyin.com/qishui)，或通过其他方式获取安装包。\n    - Spotify：暂不支持\n3. 打开**ONPatch**，点击左下角的**管理**，点击右下角的**添加**按钮，选择修补后安装包的存放目录。\n4. 点击右下角的**添加**按钮，点击**从存储目录中选择APK**，选择要修补的音乐平台安装包文件。\n5. 修补模式设置为**内置模式**，勾选**注入文件提供者**，其他选项可根据需要自行选择，点击**开始注入**。\n6. 等待修补完成，点击**安装**，安装修补后的音乐平台App。（由于修补后安装包的签名与官方签名不同，若已安装官方版，则需要先卸载官方版，才能安装）\n7. 按照[获取在线音乐平台的歌单数据](README.md#41--获取在线音乐平台的歌单数据)，将歌单数据加载到本地数据库中。\n\n## 📦 已使用ONPatch注入“文件提供者”的音乐平台安装包\n\n- [网易云音乐](https://www.123pan.com/s/eoQjVv-1Mbqh.html) 提取码:6vZc\n- [QQ音乐](https://www.123pan.com/s/eoQjVv-1Mbqh.html) 提取码:6vZc\n- [酷狗音乐](https://www.123pan.com/s/eoQjVv-1Mbqh.html) 提取码:6vZc\n- [酷我音乐](https://www.123pan.com/s/eoQjVv-1Mbqh.html) 提取码:6vZc\n- [汽水音乐](https://www.123pan.com/s/eoQjVv-1Mbqh.html) 提取码:6vZc\n- Spotify 暂不支持\n\n## 🍪 使用浏览器获取音乐平台的Cookie信息\n\n- 需要的软件\n    - 移动端：Kiwi Browser等可以使用`开发人员工具`的浏览器，并启用`桌面版网站`。\n    - 电脑端：所有现代的浏览器。（如：Google Chrome、Microsoft Edge、Firefox）\n- 操作\n    1. 打开获取Cookie的音乐平台网站。\n    2. 进行登录操作。\n    3. 打开浏览器提供的`开发人员工具`。（Kiwi Browser在右上角的菜单中；电脑端浏览器按`F12`，或在网页任意处右键，选择`检查`）\n    4. 切换到开发人员工具的`应用(程序)`选项卡，在左侧找到`Cookie`，并展开，选择出现的网址。\n    5. 寻找并获取[需要的值](README.md#43--开始歌单转换的操作)，按照`key1=value1; key2=value2; key3=value3`的格式填入软件，**不需要**填写`path`、`domain`等信息。\n\n## 🌟 星标历史\n\n[![Star History Chart](https://api.star-history.com/svg?repos=Winnie0408/LocalMusicHelper\u0026type=Date)](https://star-history.com/#Winnie0408/LocalMusicHelper\u0026Date)\n\n## 🥰 赞助与支持\n\n如果这个项目对您有所帮助，您可以给我一颗免费的⭐，或者请我喝杯咖啡！\u003cbr\u003e\n非常感谢您的支持！ \u003cbr\u003e\n⬇️⬇️⬇️\u003cbr\u003e\n\u003ca href=\"markdownResources/Alipay WeChatPay.jpg\"\u003e\n\u003cimg src=\"markdownResources/Sponsorship.png\" width = \"150\" height = \"90\" alt=\"Sponsorship.jpg\" align=center /\u003e\n\u003c/a\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWinnie0408%2FLocalMusicHelper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FWinnie0408%2FLocalMusicHelper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWinnie0408%2FLocalMusicHelper/lists"}