Bistutu/GoMusic: Convert NetEase, Qishui and QQ Music Playlists into Text You Can Import Elsewhere
迁移网易云/汽水/QQ音乐歌单至 Apple/Youtube/Spotify Music
At a glance
- What is it?
- GoMusic is a Go and Vue web service that reads a Chinese streaming playlist link and returns a plain track list. It does not move your library itself; it hands the list to a transfer site. Here is what it does, how to deploy it, and where it stops.
- Who is it for?
- Adopt GoMusic if you are moving a NetEase Cloud, Qishui or QQ Music playlist into Apple Music, YouTube Music or Spotify Music and want the track list as text before handing it to a transfer service. Skip it if you expected an in-app login flow, a native mobile client, or a one-click migration that never leaves the site.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Activity is slowing. The repository last received commits 7 months ago.
- What is it written in?
- Mainly Go, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The gap GoMusic fills between Chinese streaming services and Western ones
NetEase Cloud Music, Qishui and QQ Music hold large libraries, but their playlists do not travel. Apple Music, YouTube Music and Spotify Music have no importer for them. GoMusic sits in that gap. You paste a playlist link, such as the short form 163cn.tv link the README shows, and the service returns a list of tracks as text. The project describes itself as a migration tool, and the web front end is the intended entry point at music.unmeta.cn. The audience is narrow and identifiable: someone with a playlist on one of the three Chinese services who wants it on one of the three Western ones. It is not a general music utility, and the README does not present it as one.
How the Gin backend turns a playlist link into a track list
The repository layout is small and readable. main.go starts the service, handler/ holds the HTTP layer, logic/ holds the extraction work, and repo/ holds persistence. The backend is Go with Gin, and go.mod pins Gin 1.9.1, go-redis/redis v8, go-sql-driver/mysql, zap for logging, and golang.org/x/sync. Two dependencies are worth noting. The otto package is a JavaScript interpreter, which suggests the extraction path evaluates JavaScript rather than only parsing static HTML. The bits-and-blooms/bloom filter is present, which fits a service that must avoid repeating work across many requests. The README does not explain either choice, so treat that as inference from the dependency list rather than documented design.
The front end is Vue with ElementUI. The flow visible in the README is short: submit a link, copy the returned list, then paste it into a transfer service. GoMusic does not authenticate against Apple, YouTube or Spotify on your behalf. That boundary is the whole design, and it is why the project stays small. The README gives one worked example, the 163cn.tv short link, and points to a GitHub issue for the reverse direction, moving into NetEase Cloud or QQ Music.
Deploying GoMusic and running a first conversion
The README does not put install steps in the main file. It says deployment is covered in DEPLOYMENT.md, and that document is where the concrete commands and configuration keys live. The repository does not ship a Dockerfile at the top level, so the deployment path is a Go build plus whatever services DEPLOYMENT.md names. Because go.mod requires MySQL and Redis clients, expect the backend to need both before it will serve requests.
Build the binary from the repository root. The module is named GoMusic, and the entry point is main.go.
What the README does not tell you
Several things a deployer needs are absent from the README. There is no list of configuration keys, no environment variable names, no default port, and no schema for the MySQL database. The README defers all of that to DEPLOYMENT.md, and the top-level README text reproduced here does not include it. The repository has no releases listed, so there is no tagged version to pin to and no changelog to read before upgrading. The README also does not document rollback, rate limits, or what happens when a source playlist is private. The reverse migration path, into NetEase Cloud or QQ Music, is not described in the README at all; it is a pointer to issue 17. If you need that direction, the issue tracker is the only documented route.
Where GoMusic is the wrong tool
GoMusic does not perform the migration. It produces a list, and a third party does the matching. That split has consequences. Track matching, the step where a title and artist are resolved to a specific catalogue entry, happens on TuneMyMusic or Spotlistr, not here, so any mismatch is outside GoMusic's control. The README gives no indication that the service handles authentication for the destination platform, and no login flow appears in the documented steps. If your playlist is private, or if the source service requires a session to view it, the README offers no guidance. And if you want an automated, repeatable sync rather than a one-time list, this is the wrong shape: the output is text you copy by hand.
GoMusic against a direct transfer service
TuneMyMusic and Spotlistr are the two services the README names as destinations for the copied list. They are not alternatives to GoMusic so much as the other half of the pipeline, and the difference is where the source reading happens. A transfer service connects to platforms through its own integrations and moves tracks directly between accounts. GoMusic reads the Chinese source itself and emits plain text, which means the transfer service never needs a NetEase Cloud or QQ Music integration. The trade-off is a manual copy step and a dependency on two systems instead of one. If a transfer service already supports your source platform, GoMusic adds a hop. If it does not, GoMusic is the part that makes the transfer possible at all.
Licence, maintenance and upgrade cost
The project is MIT licensed, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are kept. That is the licence text, not legal advice; read LICENSE for the exact terms. On maintenance, the last push to the default branch was on 2026-03-04, which is more than six months before today. There are no retrieved releases, so there is no version history to consult. Upgrading means tracking the main branch, and the go.mod pins are specific enough that dependency drift is a real cost: Gin is held at 1.9.1, the Redis client at v8, and the MySQL driver at 1.7.1. The README does not describe a migration or upgrade procedure, so a deployer is on their own for that.
Editorial conclusion
Adopt GoMusic if you are moving a NetEase Cloud, Qishui or QQ Music playlist into Apple Music, YouTube Music or Spotify Music and want the track list as text before handing it to a transfer service. Skip it if you expected an in-app login flow, a native mobile client, or a one-click migration that never leaves the site. Before deploying, read DEPLOYMENT.md and confirm which storage the backend expects, since the README does not document the configuration keys, and verify the playlist link formats you actually use still resolve.
Frequently asked questions
What is Bistutu/GoMusic?
It is a Go and Vue web service that takes a NetEase Cloud, Qishui or QQ Music playlist link and returns a track list as text, which you then paste into a transfer site such as TuneMyMusic or Spotlistr to move it to Apple Music, YouTube Music or Spotify Music.
How do I use GoMusic to move a playlist?
The README gives four steps: enter the playlist link, copy the query result, open TuneMyMusic or Spotlistr, then choose any text as the source, paste the list, and select Apple, YouTube or Spotify Music as the destination.
Do I need to log in to GoMusic?
The documented flow has no login step. You submit a playlist link and copy the returned list, and GoMusic does not authenticate against the destination platform for you.
How do I deploy GoMusic myself?
The README points to DEPLOYMENT.md for deployment details. The backend is Go with Gin and the module requires MySQL and Redis clients, so those services are part of the setup, but the README itself does not list the configuration keys.
Can GoMusic move a playlist into NetEase Cloud or QQ Music?
The README does not describe that direction. It refers readers to GitHub issue 17 for migrating to NetEase Cloud or QQ Music, so the issue tracker is the only documented source for it.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/bistutu-gomusic)