Skip to content

Repository files navigation

Playlist Out

Playlist Out(把你的歌单带走)

你的歌单,不应该只困在一个音乐平台里。

Website Stars License: MIT React TypeScript Vite

🌐 playlistout.lengxiqwq.com

📖 README Language:简体中文 · English


💡 为什么做 Playlist Out?

我们在各大音乐平台上花了很多时间和心血整理歌单,但往往遇到这样的尴尬: 想换平台听歌时,旧平台的歌单无法直接迁移;想备份自己的心血时,没有一个地方能把歌曲列表以干净的格式导出来;或者只是想把歌曲整理成表格打印、做统计分析,却只能手动一首首复制粘贴。

主流音乐平台的封闭生态把用户的歌单牢牢锁在单一 App 里。

Playlist Out 的目标很简单:把公开歌单解析成结构化数据,交还到你的手中。

  • 纯客户端导出:所有导出文件 100% 在用户浏览器本地内存中生成并触发下载,不回传服务器。
  • 零门槛与安全授权:QQ 音乐与网易云音乐公开歌单 100% 免登录直接导出全部歌曲;酷狗音乐支持免登录公开预览,亦可使用手机 App 扫码安全授权解锁完整歌单(授权凭据仅保存在浏览器本地,服务器零存储)。无需安装任何扩展或客户端软件。
  • 专注且纯粹:它不是播放器,不下载音频文件,也不做冗余的云端同步;只专一、稳定、完整地解决“歌单数据导出备份与迁移”这一件事。

🚀 在线使用

无需安装任何软件,直接打开 playlistout.lengxiqwq.com 即可开始:

  1. 粘贴歌单 — 支持 QQ 音乐、网易云音乐、酷狗音乐与汽水音乐等平台链接(网页链接、手机短链、纯歌单 ID 或带有文字的 App 分享内容,系统自动提取)。输入用户主页链接或数字 ID 亦可直接加载该用户的所有公开歌单合集。
  2. 实时解析 — 边缘 Worker 自动解析歌单元数据、歌曲名、歌手、专辑、封面以及 VIP/下架可用性状态。
  3. 完整预览 — 在导出前直接在网页中核对完整歌曲列表、曲目总数与歌曲状态。
  4. 一键导出 / 复制 — 本地保存为 TXT / CSV / Excel (.xlsx) / JSON / M3U8,或直接一键复制到剪贴板;支持多歌单批量打包为多 Sheet 工作簿或 ZIP 压缩包。

✨ 主要功能

🔗 跨平台公开歌单极速解析与导出

原生支持 QQ 音乐、网易云音乐、酷狗音乐 与 汽水音乐 公开歌单:

  • QQ 音乐 / 网易云音乐:纯网页免登录直解,无需输入 Cookie 或授权 Token,即可一键解析并无损全量导出整张歌单。
  • 汽水音乐 (Soda Music):免登录直解分享短链与播放列表,完整解析抖音同步收藏与官方原声原唱。
  • 酷狗音乐:受上游 H5 防爬拉活机制限制,未登录状态下网页端仅提供前 10 首歌曲公开预览;支持在网页端一键扫码或在 API 请求头中直接附带 Token 凭证,无限制解锁整张歌单 100% 全量曲目。

📊 平台支持与上游机制限制对照表

平台名称 平台代号 单歌单能力 用户主页歌单能力 上游机制与限制说明
QQ 音乐 qqmusic 🟢 免登录全量解析 (无曲目上限) 🟢 免登录全量获取 (支持 QQ 号/直链) 无需任何 Token 或 Cookie,纯网页公开协议直通。
网易云音乐 netease 🟢 免登录全量解析 (智能分页拉取 1000+ 首) 🟢 免登录全量获取 (支持 UID/直链) 解决第三方工具未登录仅截取 10 首的痛点,免登录全量解析。
汽水音乐 qishui 🟢 免登录全量解析 (支持抖音同步原声) ⚪ 平台暂无公开用户主页 无需 Token,完整提取分享短链内全部歌曲。
酷狗音乐 kugou 🟡 免登录仅前 10 首预览
🟢 附带 Token 解锁 100% 全量
🟡 必须提供 Token 与 Userid 官方机制限制:酷狗分享页对未登录用户仅在 HTML 嵌入前 10 首,其余强行引导前往 App。若需导出 10 首以上的完整歌单或批量导出用户个人歌单,需附带歌单创建者凭证:
• 网页端:点击「连接酷狗账号」一键扫码解锁;
• API 端:在请求头中附带 Authorization 与 X-Kugou-Userid。

📚 用户公开歌单合集与批量打包

输入用户 QQ 号、网易云 UID 或用户主页链接,一键加载该用户公开创建的所有歌单合集。支持多选与全选,可一键批量打包导出为 多 Sheet Excel 工作簿(各歌单独占一页)或 ZIP 压缩包(内含各歌单独立的 Excel / CSV / TXT / JSON / M3U8 文件)。

🐕 酷狗音乐扫码安全解锁

酷狗官方未登录状态仅提供前部分歌曲公开预览。PlaylistOut 创新支持酷狗手机 App 扫码安全授权,零存储无感换取官方临时凭据,无限制解锁完整超长歌单。所有凭证严格保存在用户本地浏览器,绝不上报或存储在服务器端。

🏷️ 歌曲 VIP 与可用性状态识别

自动探测并标注歌曲状态:正常可播、下架/无版权变灰、VIP 专享、付费专辑等,在网页预览表格与导出的 CSV / Excel / TXT / JSON / M3U8 文件中清晰呈现,避免导入其他平台时出现“盲盒式失效”。

🔍 跨平台纯数字 ID 智能消歧义

当用户直接输入纯数字时,系统并发探测 QQ 音乐与网易云音乐的单歌单及用户主页,自动辨析或弹出手账风格的消歧义选择窗口,供用户精准挑选目标。

🎵 大歌单深度翻页支持

彻底打破许多第三方工具“只能抓前 100 首”或“网易云未登录截断 10 首”的限制。PlaylistOut 内置智能分页与分批详情引擎,无缝支持 1000+ 首的超大歌单,严格保留原始添加顺序与合法的重复歌曲,绝不静默丢歌或截断。

📦 5 种文件格式本地导出

解析出的歌单可直接导出为多种主流格式,满足不同场景需求:

  • M3U8 — 工业级通用扩展歌单文件(Extended M3U),含精准时长与歌手信息,可直接无缝导入至 Navidrome、Jellyfin、Foobar2000、椒盐音乐、Poweramp、VLC 等本地与自建家庭音乐服务器。
  • TXT — 简洁易读的纯文本清单,带信纸卡片排版与状态标注,适合快速查看、记事本备份或导入部分小众播放器。
  • CSV — 国际标准的逗号分隔文本(默认带 UTF-8 BOM,包含 VIP 与状态列,解决 Windows Excel 打开乱码问题)。
  • Excel (.xlsx) — 原生带样式的电子表格,包含完整元信息卡片、自适应列宽、VIP 与状态标注,适合用 Microsoft Excel、WPS 等软件进行归档、排序与批量整理。
  • JSON — 结构化完整数据,完整收录歌单封面直链 (coverUrl) 与 单曲封面图片直链 (tracks[i].coverUrl)、歌曲 ID、歌手、专辑、时长、VIP、可用性状态等丰富元数据,第三方音乐播放器与自动化脚本可直接请求并渲染封面图片。

所有文件均由前端直接在浏览器内存中组装并生成下载链接,数据不经过任何第三方服务器中转。

📋 3 种剪贴板快速复制

如果不需要下载文件,可直接复制格式化内容:

  • 仅歌名:每行一首歌曲名,干净整洁。
  • 歌名 - 歌手:最通用的文本格式,便于直接粘贴到其他音乐软件的搜索框或导入框。
  • 歌名 - 歌手 - 专辑:完整的制表符分隔格式(TSV),可直接 Ctrl+V 粘贴进任意电子表格。

🛡️ 严格安全与防公式注入

导出 CSV / Excel 时,对首字符为 =、+、-、@ 等特殊符号的内容自动添加安全转义,防止导出的表格在 Microsoft Excel / WPS 打开时触发恶意的公式注入执行(CSV Injection / DDE)。同时,全链路 API 配备速率限制与安全防护标头。


🌐 Public API v1 (开放接口)

PlaylistOut 正式开放统一的跨平台公共 API,支持第三方开发者、自动化脚本及自建客户端直接调用。

  • 生产 API 基础地址:https://playlistout-api.lengxiqwq.com
  • 核心万能解析接口:GET /api/v1/resolve?q=<用户输入>
    • 模拟网站大搜索框的完整识别与清洗逻辑(支持 QQ 音乐、网易云音乐、酷狗音乐、汽水音乐四家平台歌单、用户主页、短链与分享文本)。
    • 支持 &type=auto|playlist|user 与 &platform=auto|qqmusic|netease|kugou|qishui 显式消歧参数。
    • 公开 GET 接口全面开放跨域(Access-Control-Allow-Origin: *),支持在浏览器端直接 fetch 调用。
  • 单歌单稳定接口:GET /api/v1/playlist?url=<歌单链接或ID>
  • 用户合集稳定接口:GET /api/v1/user/playlists?uid=<UID或QQ号>
  • 酷狗 Token 凭证获取与传递:
    • 获取方式:在网页端「连接酷狗账号」弹窗中,支持桌面端二维码扫码与手机端一键跳转酷狗 App 登录;连接后可直接在弹窗的「开发者 API 凭证」卡片中一键复制包含凭据的 cURL 命令、Token 与 UserID。
    • 安全规范:严格遵循安全规范,禁止在 Query 参数中传递凭证(如 ?token=... 会被直接拦截拒绝),须通过标准 HTTP 请求头传递:
    # 携带 Token 与 Userid 完整拉取酷狗 400+ 首全量歌单
    curl -s "https://playlistout-api.lengxiqwq.com/api/v1/resolve?q=https://m.kugou.com/songlist/gcid_xxx/" \
      -H "Authorization: Bearer <kugou_token>" \
      -H "X-Kugou-Userid: <kugou_userid>"
  • 完整接口文档与接入示例(cURL / JavaScript / Python):请参阅 docs/API.md。

📋 数据导出格式规范与开放集成

为方便第三方音乐平台、开发者工具及外部自动化流水线无缝接入与识别从 PlaylistOut 导出的歌单,我们正式确立并标准化了以下 5 种文件格式的存储结构与数据规范。

💡 第三方平台接入建议:推荐优先读取并解析 JSON 格式。JSON 格式包含了最完备的元信息字段、精准类型约束以及未转义的原始曲目数据。


1. JSON 格式 (.json) —— 推荐平台接入规范

  • 编码标准:UTF-8(无 BOM)
  • MIME 类型:application/json
  • 设计目标:跨平台导入导出、第三方音乐播放器歌单互通、自动化批处理。
  • 图片直链支持:根对象包含歌单高清封面图片直链 (coverUrl),每个曲目条目均包含单曲/专辑高清封面图片直链 (tracks[i].coverUrl),第三方播放器、媒体中心或自动化脚本可直接读取并展示封面图,无需二次请求或反查。

💡 完整数据字典与格式规范说明:为了保持自述文件简洁,JSON 格式所有的富文本字段(如 coverUrl, artistList, rawIds, totalDurationMs 等 30+ 维度的底层元数据)的具体解释与类型定义,请查阅专用的详细解释文档:《JSON 数据格式规范 (Schema Document)》。


2. CSV 格式 (.csv)

  • 文件编码:UTF-8 with BOM(首字节包含 \uFEFF,防止 Windows 系统下 Microsoft Excel 打开乱码)
  • 行换行符:\r\n (CRLF)
  • 纯表格标准输出:默认遵循标准 RFC 4180 规范输出干净纯表格(9 列数据,包含最右侧的歌曲链接列),不添加额外的注释前缀行,以保证与各类现代表格解析器及音乐迁移工具的最大兼容性;
  • 元数据扩展模式:在高级配置中启用元数据时,文件首部以 # 输出歌单元信息与导出工具平台标识;
  • 防公式注入保护:单元格若以 =, +, -, @, \t, \r 开头,自动添加 ' 前缀进行安全转义,阻断电子表格宏代码执行风险;
  • 字段引用规则:遵循 RFC 4180 规范,包含逗号或双引号的内容使用双引号包裹,内部双引号使用双重转义 ""。

CSV 文件示例

序号,歌曲标题,歌手,专辑,时长,类型,VIP,歌曲状态,歌曲链接
1,晴天,周杰伦,叶惠美,04:29,歌曲,—,正常,https://y.qq.com/n/ryqq/songDetail/0039MnYb0qxYAc
2,说好不哭,"周杰伦, 阿信",说好不哭,03:42,歌曲,—,正常,https://y.qq.com/n/ryqq/songDetail/0027fM2M3wD4gS

3. Excel 格式 (.xlsx)

  • 文件规格:原生 Microsoft Excel OpenXML 工作簿 (.xlsx)
  • 工作表名称:歌单歌曲
  • 布局结构:
    1. 元数据卡片区(第 1-6/7 行,双列键值对布局):
      • 行 1:['歌单名称', playlist.name, '', '']
      • 行 2:['创建时间', createTime, '导出时间', exportedAt](创建时间第 1 位,导出时间第 2 位并列紧邻)
      • 行 3:['导出工具', 'PlaylistOut', '平台网址', 'https://playlistout.lengxiqwq.com']
      • 行 4:['歌单作者', creator, '歌曲总数', trackCountStr]
      • 行 5:['最后更新', updateTime, '总播放量', playCountStr]
      • 行 6:['风格标签', tagsStr, '歌单链接', sourceUrl]
      • 行 7(可选):['歌单简介', description, '', ''](仅在有简介时生成)
    2. 空行分隔区(第 8 行):空白行作为卡片区与数据表格的天然分界线。
    3. 表格列头(第 9 行):序号、歌曲标题、歌手、专辑、时长、类型、VIP、歌曲状态、歌曲链接(共 9 列)。
    4. 歌曲数据行(第 10 行起):按序填入曲目数据,内置防公式注入防护,并预设自适应列宽(10 / 32 / 22 / 25 / 10 / 12 / 8 / 14 / 45)。

4. TXT 纯文本格式 (.txt)

  • 文件编码:UTF-8
  • 排版风格:信纸手账式排版(Stationery Format),兼顾人眼直观阅读与简单脚本行读取;
  • 排版结构:
    • 顶部以 ================================================== 分界线封装元数据卡片;
    • 头部首行固定为 创建时间:,次行固定为 导出时间:,第三行为 导出工具: PlaylistOut (https://playlistout.lengxiqwq.com);
    • 依次展示歌单名、作者、最后更新、曲目数与总时长、标签、播放量、链接及歌单简介(部分预览歌单时会清晰注明已解析曲目数及对应时长);
    • 分界线下方为曲目清单,逐行输出:${歌曲标题} - ${歌手} - ${专辑}(若无专辑则输出 ${歌曲标题} - ${歌手});
    • 若歌曲为下架、VIP、付费等非默认状态,行末自动附带状态标签(如 [下架/无版权]、[VIP专享]);
    • 保留纯净原始文本,不添加表格转义符号。

TXT 文件示例

==================================================
  创建时间: 2021-06-18 14:30:00
  导出时间: 2026-09-14 23:30:00
  导出工具: PlaylistOut (https://playlistout.lengxiqwq.com)
  歌单名称: 华语经典流行精选集
  歌单作者: 音乐咖啡馆
  最后更新: 2024-03-01 09:15:20
  歌曲总数: 2 首 (总时长 8 分钟)
  风格标签: 流行 · 经典 · 华语
  总播放量: 128,500 次
  歌单链接: https://y.qq.com/n/ryqq/playlist/773829104
--------------------------------------------------
  歌单简介:
  收录那些触动心灵的华语旋律,陪你度过安静时光。
==================================================

晴天 - 周杰伦 - 叶惠美
说好不哭 - 周杰伦, 阿信 - 说好不哭

5. M3U8 格式 (.m3u8) —— 开源播放器与 NAS 自建库通用标准

  • 文件编码:UTF-8(无 BOM)
  • 规范标准:标准 Extended M3U 播放列表协议(RFC 8216 / 行业 De Facto 歌单标准)
  • 兼容应用:Navidrome、Jellyfin、Emby、Subsonic、Foobar2000、VLC、椒盐音乐 (Salt Player)、Poweramp、AIMP 等
  • 工作机制:
    • 首行输出 #EXTM3U 协议头,次行输出 #PLAYLIST:歌单名;
    • 逐曲写入 #EXTINF:时长秒数,歌手 - 歌曲标题;
    • 下一行写入 ${歌手 - 歌曲标题}.mp3 关联文件名;
    • 本地播放器或家庭私有云音乐服务器(如 Navidrome/Jellyfin)在扫描该 .m3u8 时,可根据文件名及 #EXTINF 标签自动在本地媒体库中匹配歌曲并一键点亮恢复完整歌单。

M3U8 文件示例

#EXTM3U
#PLAYLIST:华语经典流行精选集
#EXTINF:269,周杰伦 - 晴天
周杰伦 - 晴天.mp3
#EXTINF:222,周杰伦, 阿信 - 说好不哭
周杰伦, 阿信 - 说好不哭.mp3

🎧 支持平台

平台 网页版支持 备注
QQ 音乐 ✅ 已支持 歌单分享链接 / ID / App 分享文本 / QQ 号公开自建歌单批量导出(免登录)
网易云音乐 ✅ 已支持 歌单链接 / 短链 / 纯 ID / 用户 UID 公开自建歌单批量 / VIP与版权状态识别(免登录)
酷狗音乐 ✅ 已支持 网页及 App 分享链接 / 纯 ID(免登录支持公开前排预览;完整全量歌单需手机 App 扫码授权)
酷我音乐 计划中 路线图规划中
咪咕音乐 计划中 路线图规划中
汽水音乐 计划中 路线图规划中

每个音乐平台都作为独立的 Provider 模块接入,前端始终保持统一的数据结构与导出体验。


🔒 隐私与数据

PlaylistOut 坚持极简与透明的隐私承诺:

  • 无网站账号体系:PlaylistOut 本身不设任何注册、登录或账户系统。QQ 音乐与网易云音乐解析完全免登录;使用酷狗音乐扫码解锁完整歌单时,换取的官方临时 Token 仅严格保存在用户本地浏览器 LocalStorage 中,绝不上报或留存在任何服务器数据库。
  • 无状态边缘代理:歌曲列表仅在请求时由边缘 Cloudflare Worker 代理抓取并实时返回前端,服务器不设歌单数据库,不留存歌曲条目。
  • 全本地导出:TXT、CSV、XLSX、JSON 和 M3U8 文件全部在用户本地浏览器生成,文件内容绝不上传到服务器。
  • 匿名聚合指标:仅在 Cloudflare D1 中记录匿名聚合计数(如请求成功/失败数、导出格式分布),用于服务健康监控与容量评估,绝不记录用户 IP、歌单 URL 或具体曲目。
  • 完整性熔断原则:向上游抓取歌单时,若遇到数据残缺或网络异常,系统会直接报错提示,绝不为了“伪装成功”而生成缺斤少两的残缺导出。

⌨️ 命令行工具 (CLI)

除了网页版外,仓库在 cli/ 目录下还提供了独立的 Python 命令行脚本,适合开发者进行定时备份、自动化流水线或脚本集成:

  • 支持平台:现已支持 QQ 音乐 (cli/qqmusic/) 与 网易云音乐 (cli/netease/)。
  • 核心能力:支持单歌单链接/ID 快速导出,以及通过 QQ 号或网易云 UID 批量导出名下所有公开自建歌单;网易云 CLI 独家支持歌曲可用性与 VIP 状态识别。

进入对应目录安装依赖即可运行(更详尽的说明请查阅各目录下的 README.md):

# QQ 音乐 CLI
cd cli/qqmusic && pip install -r requirements.txt && python qq_music_playlist_export.py

# 网易云音乐 CLI
cd cli/netease && pip install -r requirements.txt && python netease_playlist_export.py

💻 开发者

PlaylistOut 是一个轻量级 Monorepo 仓库:

模块 说明
web/ 前端应用,基于 React 18 + TypeScript + Vite
worker/ 边缘 API 服务,基于 Cloudflare Workers + TypeScript + D1
cli/qqmusic/ 原始 Python QQ 音乐 CLI 工具
cli/netease/ 独立 Python 网易云音乐 CLI 工具
docs/ 项目路线图、架构规范、API 文档与运维手册

本地运行

git clone https://github.com/LengxiQwQ/playlistout.git
cd playlistout
npm install
npm run dev

质量检查与构建

# TypeScript 类型检查
npm run typecheck

# 单元测试与组件测试(Web & Worker)
npm run test

# 验证真实公开歌单解析与翻页(QQ 音乐 / 网易云 / 酷狗)
npm --prefix worker run test:live

# 全栈生产构建
npm run build

📚 文档


🤝 Contributing

欢迎提交 Issue 与 Pull Request!

在添加新的音乐平台 Provider 时,请确保将平台专有解析逻辑封装在独立 Provider 模块内,并转换为通用的标准化歌单数据模型,以确保全平台导出与复制功能的一致性。


📄 License

PlaylistOut 基于 MIT License 开源。详情参见 LICENSE。


🌐 网站运营与活跃数据看板

📊 数据由 Cloudflare D1 边缘节点 实时聚合计算,每日自动化同步存档。

📌 核心流量与使用规模

💡 👥 累计日独立访问 = 每天匿名去重后的访客数累加;同一访客跨日可能再次计入,PlaylistOut 不进行跨日追踪。

👥 累计日独立访问 📄 页面浏览 (PV) 🎵 解析歌单数 💿 处理歌曲数 📦 文件导出数 ⏱️ 稳定运行
290
今日独立 +12
581
今日 +17
803
今日 +104
236,133
今日 +37,262
173
今日 +7
20 天
上线于 2026-09-12

📊 业务转化与平台偏好

  • 🎵 平台解析份额: QQ 音乐 51% (410 次) | 网易云音乐 24% (192 次) | 酷狗音乐 19% (149 次) | 汽水音乐 6% (52 次)
  • 📦 导出格式偏好: Excel 表格 (.xlsx) 34% | TXT 纯文本 25% | CSV 表格 11% | JSON 数据 23% | M3U8 歌单 7%

🛡️ 隐私保证:本统计严格遵循开源宪法规范,所有数据均由边缘节点以粗粒度匿名原子计数存储,绝不记录真实 IP 地址、私密歌单内容或个人身份凭据。


⭐ Star 历史

Star History Chart

📊 仓库流量

访问次数:763 | 不重复访客:188(近 14 天) | 仓库克隆:3,041 | 不重复克隆:469(近 14 天)

热门来源(近 14 天): Bing · github.com · Google · open.cd · Baidu · chatgpt.com
热门内容(近 14 天): releases/tag/v2.2.0 · tree/main · commits/main · issues

数据开始:2026-09-07 · 最后更新:2026-10-01


Made with ❤️ by LengxiQwQ

About

Playlist Out(把你的歌单带走)— 主流音乐平台歌单解析与多格式导出工具,支持 TXT / CSV / Excel / JSON / m3u8|Playlist parser and multi-format exporter for major music platforms, supporting TXT, CSV, Excel, JSON, and m3u8.

Topics

Resources

Contributing

Security policy

Stars

35 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages