用于研究音乐服务 API 集成、下载任务管理和音频元数据处理的桌面应用。
项目将搜索、二维码登录、歌曲与歌单解析、下载队列以及 ID3 元数据写入整合到统一界面,重点验证完整桌面产品流程和异步任务体验。
本项目仅供个人学习与技术研究使用。请遵守服务条款和版权法规,不得下载或传播无权使用的内容。
一个完整的媒体下载工具不仅需要获取文件,还需要处理身份状态、搜索结果、任务队列、错误反馈、文件命名、封面和元数据。本项目围绕这些环节构建了端到端桌面应用,目标是让"搜索—解析—下载—入库"成为一次连贯的交互,而不是一堆脚本的拼接。
- 多维度解析引擎:关键词搜索(歌名 / 歌手)结果列表化展示;支持通过歌曲 ID 或 URL 精准解析单曲;支持歌单 / 专辑 ID 或 URL 一键批量解析全部曲目。
- 多音质下载:提供标准、极高、无损、Hi-Res 等多档音质选项(可选音质取决于账号权限);下载任务在后台工作线程执行,界面保持响应并实时显示进度条。
- 智能文件命名:自动按"歌手 - 歌名"格式生成文件名,并过滤特殊字符以保证跨平台兼容性。
- 自动化元数据写入:下载完成后自动将歌曲名、歌手、专辑、音轨号等 ID3 标签写入文件,抓取并嵌入高清专辑封面;支持 MP3、FLAC、M4A 等主流格式,同时保存歌词。
- 二维码扫码登录:集成扫码登录,用网易云音乐 App 扫码确认即可完成登录,本地自动管理 Cookie 生命周期,无需手动抓取凭证。
- 一体化交互:界面划分为歌曲搜索、单曲解析、歌单 / 专辑解析、音乐下载四个功能区;解析后可即时预览封面、详细信息与歌词。
- 集中异常处理:网络错误、解析失败、下载中断在统一通道内捕获与提示,不会拖垮界面线程。
music_api.py:HTTP 会话、接口请求加密参数构造(签名与加解密流程)、搜索、解析与登录流程music_downloader.py:下载任务调度、文件格式处理与元数据写入cookie_manager.py:登录状态与 Cookie 的获取、持久化与失效处理workers.py:基于 QThread 的后台任务与界面信号通信,避免阻塞主线程main_window.py:桌面交互、四大功能区与任务状态展示
主要技术:Python、PyQt5、Requests、Cryptography、Mutagen、QR Code。
- Windows、macOS 或 Linux(主要在 Windows 环境验证)
- Python 3.8+
git clone https://github.com/toki-plus/netease-downloader.git
cd netease-downloader
python -m venv venv激活虚拟环境后:
pip install -r requirements.txt
python main.py首次使用建议从菜单 登录 -> 二维码登录 完成扫码登录,状态栏显示已登录后即可按账号权限选择更高音质。双击搜索结果中的歌曲会自动切换到单曲解析并展示封面与歌词预览。
- 本项目仅供个人学习与技术研究使用,请在下载前自行确认拥有相应内容的合法使用权。
- 第三方接口或登录流程变化可能导致部分功能失效。
- 用户应自行确认账号权限、内容授权和地区法规。
- Cookie 属于敏感信息,不应提交到仓库或分享给他人。
- 当前版本尚未建立完整的自动化测试与 CI。
本项目展示了桌面应用中的 API 适配(含加密参数构造)、身份状态管理、异步任务、错误处理和媒体元数据管理,而不仅是单一下载脚本。从扫码登录的状态维护到 ID3 元数据的规范化写入,每个环节都按"完整产品"的标准处理边界情况。
- video-mover — 多平台内容分发自动化流水线:素材处理、文案生成、定时调度与多平台适配
- ai-highlight-clip — 长视频智能初筛:Whisper 转写 + LLM 评分 + 人工终审,分钟级定位高光片段
- ai-ttv-workflow — 文案到短视频的桌面工作流,关键节点保留人工确认
- ai-video-workflow — 多模型 AIGC 视频生成流水线:文生图、图生视频、文生音乐的异步编排
- ai-mixed-cut — 素材库结构化与脚本重组的视频再创作工作流
- ai-trader-for-mt4 — LLM×MT4 受控执行框架:工具约束、风控规则、状态管理与异步桥接
- ai-trader-for-mt5 — 面向 MT5 的 AI 交易助手与 EA 工程化框架
- auto-usps-tracker — 跨境电商批量物流追踪与 Excel 报告自动化
- AB-Video-Deduplicator — 基于高帧率抽帧混合的视频再创作实验工具
See LICENSE.

