Skip to content

Releases: LengxiQwQ/playlistout

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 17:19

Playlist Out CLI · 把你的歌单带走 - 桌面版

把你的音乐回忆,稳稳备份在自己的电脑里 ☕

经过很长一段时间的打磨,Playlist Out CLI 终于迎来了里程碑式的 v3.0.0 大版本更新!🎉

这次我们把整个程序做成了纯绿色、免安装的独立版本,无论你是 Windows、Mac 还是 Linux,下载之后双击就能直接用!🎈


✨ 新增特性

  • 💻 点开就用的独立程序 — 再也不用安装 Python 和运行库了!Windows 用户直接双击 .exe,Mac 用户直接双击内附的启动器。

  • 🎼 几大主流音乐平台 — 在原有的网易云、QQ 音乐、酷狗、汽水音乐基础上,酷我、咪咕音乐也加入了!无论你的歌单散落在哪个平台,现在都能一网打尽。

  • 💡 像聊天一样的交互式菜单 — 完全不懂命令行也没关系!双击打开后,只需把复制的歌单链接直接粘贴进去,程序会自动帮你识别是哪个平台的,敲回车就能搞定。

  • ⚡ 为极客准备的静默批处理 — 如果你想写自动化脚本,新版本同样支持完整的命令行参数调用(支持指定平台 -p、格式 -f、批量提取 --user),导出完毕后静默退出。

  • 📊 多种导出格式选择 — 支持一键导出排版精美、适合日常浏览的 Excel 表格 (.xlsx) 与最全元数据标准的 Canonical JSON,同时兼备 CSV、TXT 与播放器通用的 M3U8 格式。


📥 获取与安装 Playlist Out CLI

⚡ 方式一:包管理器一键安装(推荐终端玩家 ⭐)

平台 安装与使用命令 状态 特性
📦 NPM npm install -g playlistout
(安装后终端直接输入:playlistout)
🟢 已上线 跨平台全生态支持,一次安装全局永久可用
🪟 WinGet winget install LengxiQwQ.PlaylistOut ⏳ 审核中 Windows 官方商店包管理器,支持静默升级
🍨 Scoop scoop install playlistout ⏳ 审核中 极客友好,自动配置系统环境变量与开始菜单快捷方式

🗂️ 方式二:绿色单文件直接下载(推荐普通用户 ⭐)

💡 适合不希望使用命令行的用户,下载后双击即可直接使用:

操作系统 架构 推荐下载文件 使用说明
🪟 Windows x64 ⬇️ PlaylistOut-CLI-v3.0.0-windows-x64.exe ⭐ 下载后直接双击打开运行,无需解压
🍎 macOS arm64 ⬇️ PlaylistOut-CLI-v3.0.0-macos-arm64.tar.gz ⭐ 解压后双击 PlaylistOut.command 运行
🍏 macOS x64 ⬇️ PlaylistOut-CLI-v3.0.0-macos-x64.tar.gz 解压后双击 PlaylistOut.command 运行
🐧 Linux x64 ⬇️ PlaylistOut-CLI-v3.0.0-linux-x64.tar.gz 解压后在终端运行 ./PlaylistOut 即可

🍎 Mac 首次打开小贴士:由于未购买苹果商业开发者签名,系统可能提示“无法打开”,只需在系统「设置 → 隐私与安全性」底部点击「仍要打开」,或在终端执行 xattr -d com.apple.quarantine PlaylistOut 即可。


💖 常见问题与反馈

  • ❓ 导出的文件保存在哪里? — 默认保存在程序运行目录的 output 文件夹里,每导完一个歌单,程序都会自动贴心地帮你弹窗打开该文件夹!
  • ❓ 遇到 Bug 或解析失败怎么办? — 欢迎来 GitHub Issues 提交反馈,也可以附上解析失败的公开链接,作者会尽快修复适配。
  • 🌟 如果这个小工具帮到了你,不妨在右上角给项目点一颗 Star ⭐,这会给后续维护注入满满的动力!

v2.2.0

Choose a tag to compare

@LengxiQwQ LengxiQwQ released this 18 Sep 18:51

Playlist Out

继 v2.1.0 批量导出后,v2.2.0 带来了 PlaylistOut 迄今最大规模的功能跨越:正式接入三大音乐平台,发布开放的 Public API v1,并全面升级导出规格与歌曲状态识别能力。

Following v2.1.0 batch export, v2.2.0 is the biggest feature leap for PlaylistOut to date: three new music platforms, an open Public API v1, and a fully upgraded export spec with VIP and availability status.


🎧 新增平台支持 / New Platform Support

  • 网易云音乐 (NetEase Cloud Music)
    粘贴歌单链接、手机短链(163cn.tv)或纯数字 ID,支持 UID 用户主页批量拉取全部歌单。
    Paste a playlist link, mobile short URL, or numeric ID. Also supports batch fetching all playlists by user UID.

  • 汽水音乐 (Soda Music / 抖音音乐)
    支持抖音分享短链(qishui.douyin.com/s/...)及纯数字 ID,完整覆盖抖音同步收藏歌单与官方原声识别。
    Supports Douyin share links and numeric IDs, including synced Douyin favorites and official soundtrack playlists.

  • 酷狗音乐 (KuGou Music)
    支持公开歌单链接解析,免登录即可预览与导出。扫码登录后可解锁完整歌单内容与开发者凭证。
    Public playlists can be previewed and exported without login. QR login unlocks full content and developer credentials.

🔌 PlaylistOut Public API v1

面向开发者的公开 REST API 正式上线,无需账号,直接调用:

The open REST API for developers is now live — no account required:

  • GET /api/v1/resolve — 智能解析任意歌单链接或 ID,自动消歧义 / Smart resolver for any link or ID, with disambiguation
  • GET /api/v1/playlist — 获取单个歌单完整信息 / Fetch full info for a single playlist
  • GET /api/v1/user/playlists — 批量获取用户公开歌单 / Fetch all public playlists for a user
  • GET /api/v1/stats — 匿名使用统计 / Anonymous usage stats
  • GET /api/v1/health — 服务健康检查 / Health check

所有公开接口支持跨域(Access-Control-Allow-Origin: *),纯前端项目可直接调用。完整文档见 docs/API.md。

All public endpoints support CORS and can be called directly from browser frontends. Full docs at docs/API.md.

🔐 酷狗双模态授权 / KuGou Dual-Mode Login

  • 桌面端:弹窗内扫描动态二维码完成登录
    Desktop: scan the QR code in the popup to log in
  • 手机端:一键通过 kugouURL:// 协议拉起官方酷狗 App 完成登录,解决手机无法自扫的问题
    Mobile: tap to launch the official KuGou app via deep link — no self-scan needed
  • 登录成功后可一键复制开发者 API 凭证(cURL 示例、Token、UserID)
    After login, copy your developer API credentials (cURL snippet, Token, UserID) with one click
  • 凭据仅保存在本地浏览器,不上传至任何服务器
    Credentials are stored locally in your browser only — never sent to any server

🎵 歌曲 VIP 与版权状态 / Song VIP & Availability Status

  • 自动识别每首歌曲的当前状态:正常可播 / 下架 / VIP 专享 / 付费专辑
    Automatically detects each track's current status: available / unavailable / VIP only / paid album
  • 网页预览表格新增「VIP」与「状态」两列,彩色徽章直观呈现
    Two new columns in the preview table — colorful badges for quick scanning
  • 导出格式同步升级为 7 列(CSV / Excel),TXT 自动附带 [状态] 后缀,JSON 包含完整状态字段
    Exports upgraded to 7 columns (CSV / Excel); TXT appends [status] suffix; JSON includes full status fields

🔀 跨平台数字 ID 智能消歧义 / Multi-Platform Disambiguation

输入纯数字时,系统并发探测各平台的歌单与用户主页,发现多个匹配时自动弹出消歧义卡片供选择。

When entering a numeric ID, all platforms are probed concurrently. If multiple matches are found, a disambiguation card appears so you can pick the right one.


完整变更记录 / Full Changelog:CHANGELOG.md

v2.1.0

Choose a tag to compare

@LengxiQwQ LengxiQwQ released this 15 Sep 08:32

Playlist Out

v2.1.0 聚焦于批量歌单导出的完整落地,并对整体 UI 的手账沉浸感进行了深度打磨。

v2.1.0 delivers a complete batch playlist export workflow and significantly enriches the music journal visual identity.

🌟 新特性 / Highlights

  • QQ 号批量歌单解析与导出 / Batch Playlist Export by QQ Number:
    • 输入 QQ 号或用户主页链接(y.qq.com/portal/profile.html?uin=...)即可一键拉取该用户所有公开自建歌单。
    • Input a QQ number or profile URL to fetch all publicly-created playlists in one click.
    • 支持多选 / 全选 / 取消全选,自由组合需要导出的歌单子集。
    • Multi-select, select-all, and deselect-all to choose any subset for export.
    • 5 种批量导出格式:多 Sheet Excel 合集(所有歌单在同一 .xlsx 中各占一 Sheet)+ ZIP 压缩包(含独立 xlsx / csv / txt / json)。
    • 5 export formats: multi-sheet Excel workbook, and ZIP archives with per-playlist xlsx / csv / txt / json.
    • 实时进度条显示抓取状态,支持随时取消。
    • Real-time progress bar during batch fetch with cancel support at any time.
  • 智能双模式识别 / Smart Dual-Detection for Numeric Input:
    • 纯数字输入时,系统并行探测「单一歌单 ID」与「QQ 用户号」,自动选最合理结果。
    • Numeric input concurrently probes both single-playlist and user-QQ interpretations, auto-selecting the best match.
    • 两者均命中时展示「碰撞提示横幅」供用户手动切换。
    • A collision banner is shown when both interpretations are valid, letting the user switch manually.
  • 歌单详情无缝返回 / Seamless Back-to-Collection Navigation:
    • 从批量列表下钻进单歌单后,顶部出现「🔙 返回歌单集合」按钮,点击立即切回,无需重新请求。
    • After drilling into a single playlist from the batch view, a back button returns to the collection instantly — all selection state and format preferences preserved.
  • 手账背景板装饰 / Scrapbook Background Decorations:
    • 页面背景层随机散落贴纸、胶带与手绘涂鸦(♪ ★ ✧ ❥ ♬),全面增强「音乐手账」的沉浸感。
    • Stickers, tape strips, and hand-drawn doodles (♪ ★ ✧ ❥ ♬) are scattered across the page background for a deeper music journal feel.
    • 所有装饰均为 pointer-events: none,完全不干扰任何交互。
    • All decorations are pointer-events-none and never interfere with user interaction.

🔧 优化与修复 / Improvements & Fixes

  • 「全选」按钮位置下移至歌单目录标题行右侧,语义更贴近被控对象,操作更直观。
  • Moved "Select All" button to the playlist catalog header row for better contextual clarity.
  • 粉色胶带改贴纸张左上角边缘(更大尺寸、更大旋转角),金色星星移至右外侧,不再遮挡标题区域。
  • Repositioned decorative tape and star on the batch paper for better visual balance without obstructing content.
  • 收窄绝对定位装饰的外移量,防止在小屏幕下触发横向滚动条。
  • Tightened decorative element offsets to prevent overflow-x on narrow viewports.
  • 修复 Tape 组件错误使用 color="blue"(不在合法颜色联合类型中),替换为 "cyan",解决 CI 严格类型检查失败。
  • Fixed Tape color="blue" TypeScript error that caused CI strict typecheck failures; replaced with valid "cyan".

v2.0.0

Choose a tag to compare

@LengxiQwQ LengxiQwQ released this 12 Sep 11:14

Playlist Out

这是 PlaylistOut 的一次重要里程碑升级:项目从最初本地运行的 QQ 音乐 Python 命令行脚本,正式升级为开箱即用的现代化 Web 应用(线上访问:playlistout.com)。用户无需在本地安装 Python 环境或依赖包,在浏览器中即可直接解析与导出公开歌单。

This is a major milestone release for PlaylistOut: the project has evolved from a local Python command-line script into a modern, ready-to-use web application at playlistout.com. You can now parse and export public playlists directly in your browser without needing Python or local packages.

🌟 新特性 / Highlights

  • 开箱即用的 Web 界面 / Web-based Interface:
    • 打开 playlistout.com,直接粘贴 QQ 音乐公开歌单链接(网页链接、移动端分享链接或纯歌单 ID)即可快速解析。
    • Visit playlistout.com and paste a public QQ Music playlist URL or ID to parse it instantly.
  • 客户端本地多格式导出 / 100% Client-Side Exports:
    • 支持导出为 TXT、CSV(带 UTF-8 BOM,Excel 打开不乱码)、Excel (.xlsx) 与 JSON 格式。
    • Export into TXT, CSV (UTF-8 with BOM), Excel (.xlsx), and JSON.
    • 文件由浏览器端本地内存生成,不经过服务端暂存,导出的文件绝不上传至任何服务器。
    • All export files are constructed locally in browser memory; no playlist data is stored on our servers.
    • 内置防公式注入转义保护(对 =, +, -, @\ 开头的字段自动转义)。
    • Built-in formula injection protection for spreadsheet exports.
  • 快速剪贴板复制 / One-Click Clipboard Copy:
    • 提供 3 种格式快速复制到剪贴板(仅歌名 / 歌名 - 歌手 / 完整歌曲信息)。
    • Copy whole playlists to clipboard in 3 flexible formats (Title / Title - Artist / Full info).
  • 超大歌单自动分页 / Automatic Bounded Pagination:
    • 后端支持自动跨页拉取 1000+ 首歌曲的大型歌单,内置死循环检测,同时完整保留合法的重复歌曲。
    • Seamless multi-page fetching for large playlists with 1000+ songs while preserving duplicate tracks.
  • 隐私与轻量架构 / Privacy-First Architecture:
    • 纯无状态后端设计,无账号、无登录,不保存任何用户历史或歌曲条目。
    • Stateless Cloudflare Worker API with zero user accounts or server-side retention.
    • 基于 Cloudflare D1 仅记录按天聚合的成功/失败解析频次,不记录 IP、Cookie 或歌单标识。
    • Anonymous aggregated daily counters only; no personal data or playlist content is logged.
  • 经典工具保留 / Classic CLI Preserved:
    • 原有的独立 Python 命令行工具完整保留在 [\cli/qqmusic/](https://github.com/LengxiQwQ/playlistout/tree/main/cli/qqmusic),供偏好终端环境的用户继续使用。
    • The standalone Python CLI remains available and maintained in [\cli/qqmusic/](https://github.com/LengxiQwQ/playlistout/tree/main/cli/qqmusic).

v1.1.0

Choose a tag to compare

@LengxiQwQ LengxiQwQ released this 12 Sep 11:10

QQ Music Playlist Exporter

这是早期 QQ 音乐 Python CLI 工具的功能增强版本,最重要的升级是支持直接输入 QQ 号,一键批量获取并导出该用户公开创建的所有自建歌单。

This is an enhanced release of the early QQ Music Python CLI tool. The major feature is batch exporting: you can now enter a QQ number to fetch and export all public user-created playlists at once.

🌟 主要变化 / Highlights

  • QQ 号批量导出 / Batch Export by QQ Number:
    • 输入用户 QQ 号,自动查询该用户所有公开自建歌单并支持按选定格式批量抓取导出。
    • Enter a QQ number to query all public playlists created by the user and export them in batch.
  • 智能歧义消解 / Smart Disambiguation:
    • 当输入的纯数字既可能是歌单 ID 也可能是 QQ 号时,交互式提示用户明确选择单歌单导出或批量导出。
    • Prompts the user to choose between single-playlist export and user batch export if a number matches both patterns.
  • 过滤无效系统歌单 / System Playlist Filtering:
    • 自动跳过无 ID 的系统预设歌单(如空间背景音乐等)。
    • Automatically skips system-generated playlists without IDs (e.g. QZone background music).
  • 控制台体验优化 / Console Encoding Fixes:
    • 修复 Windows 控制台中文输出可能出现的乱码问题。
    • Resolved potential Chinese character encoding issues in Windows console environments.

注:该版本为历史 Python 命令行工具。当前完整代码已妥善归档并保留在仓库的 \cli/qqmusic/\ 目录下。
Note: This release represents the historical Python CLI tool. The complete CLI code is preserved and maintained under \cli/qqmusic/.

v1.0.0

Choose a tag to compare

@LengxiQwQ LengxiQwQ released this 12 Sep 11:10

QQ Music Playlist Exporter

这是 PlaylistOut 早期作为 QQ 音乐 Python 命令行工具(CLI)的第一个正式版本。支持通过歌单链接或歌单 ID 将公开歌单导出为多种格式。

This is the initial release of PlaylistOut during its early Python CLI era. It allows exporting public QQ Music playlists into multiple file formats via playlist URLs or playlist IDs.

🌟 新增功能 / What's New

  • 多格式导出 / Multiple Export Formats:
    • Excel (.xlsx)
    • CSV (.csv, UTF-8 带 BOM / with UTF-8 BOM)
    • JSON (.json)
    • 纯文本 / Plain Text (.txt)
  • 智能文件名处理 / Automatic Filename Sanitization:
    • 自动将 Windows 不支持的文件名特殊字符替换为空格。
    • Automatically replaces characters not allowed by Windows filenames with spaces.
  • 交互式命令行循环 / Interactive CLI Loop:
    • 导出完成后可继续输入新歌单,输入 \