explaingit

trazyn/ieasemusic

8,760JavaScriptAudience · generalComplexity · 2/5LicenseSetup · easy

TLDR

ieaseMusic is an unofficial desktop client for NetEase Cloud Music that adds FLAC audio, Last.fm scrobbling, offline downloads, and automatic unblocking of region-restricted tracks.

Mindmap

mindmap
  root((ieaseMusic))
    Features
      FLAC lossless audio
      Last.fm scrobbling
      Track unblocking
    Platforms
      macOS Linux Windows
      Homebrew .deb .rpm
    Controls
      Keyboard shortcuts
      Alfred workflow
    Tech stack
      Electron React
      MobX JSS
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Listen to NetEase Cloud Music as a native desktop app with lossless FLAC audio quality.

USE CASE 2

Scrobble your NetEase listening history to Last.fm automatically for music tracking and recommendations.

USE CASE 3

Play tracks that are normally blocked or unavailable in your region by routing them through alternative music libraries.

USE CASE 4

Control music playback from the macOS Alfred launcher without switching windows.

Tech stack

JavaScriptElectronReactMobXJSS

Getting it running

Difficulty · easy Time to first run · 5min

Users outside China may need additional hosts-based unblocking configuration to access NetEase Cloud Music content.

MIT license, use freely for any purpose, including commercial, as long as you keep the copyright notice.

In plain English

ieaseMusic is an unofficial desktop client for NetEase Cloud Music, a popular Chinese music streaming service. It is built with Electron, which means it runs as a native desktop application on macOS, Linux, and Windows, wrapping the web-based service in a standalone app with additional features. Beyond basic playback, the app supports FLAC lossless audio for higher quality sound, scrobbling your listening history to Last.fm, downloading tracks for offline use, and desktop notifications. You can log in using a WeChat QR code scan and share music to social platforms. A keyboard shortcut system covers all common playback controls. On macOS, there is also an Alfred 3 workflow that lets you control the player from the Alfred launcher. One notable feature is a dead link fix: some tracks on NetEase Cloud Music are blocked or unavailable in certain regions. The app routes those through other music libraries, including QQ Music, Xiami, Kugou, Kuwo, MiGu, and Baidu Music, so they play anyway. A separate unblocking setup using modified system hosts entries is also documented for users outside China. Installation is available through standard package managers and formats on each platform. macOS users can install via Homebrew Cask. Linux users can download a .deb package for Debian and Ubuntu, an .rpm for CentOS and RHEL, or an AppImage for other distributions. Arch Linux users can install it through pacman. The source is MIT licensed. The project is built with React and MobX on top of Electron and uses JSS for styling. It is a third-party project, not affiliated with NetEase.

Copy-paste prompts

Prompt 1
I want to fork ieaseMusic and add synchronized lyrics that scroll with the current playback position. How do I fetch lyrics from the NetEase API and animate them in a React component inside Electron?
Prompt 2
How does the track unblocking feature in ieaseMusic work? Explain how it detects a blocked track and routes audio from an alternative source like QQ Music or Kugou.
Prompt 3
I want to add a global hotkey in ieaseMusic to toggle shuffle mode on macOS. How do I register global keyboard shortcuts in Electron?
Prompt 4
How do I build ieaseMusic from source and package it as a macOS .dmg installer using Electron Builder?
Prompt 5
Explain how MobX manages playback state in ieaseMusic, how does the store connect to React components for the play button and progress bar?
Open on GitHub → Explain another repo

← trazyn on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.