mrkeyoor.com_
Tue 03 Nov 05:00 UTC
Self-Hostedevaluationupdated 25 Oct 2026

go-music-dl review

Go Music DL is a music search, playback, download, and local-library application with documented Web, TUI, desktop, Android, and iOS options. Its supplied README is in Chinese. The README at our recorded commit lists 12 online platforms, including NetEase Cloud Music, QQ Music, Kugou, Kuwo, Migu, Soda, and Apple Music. Listed capabilities are documentation claims, not services we verified in operation.

+99stars / 7d
Verdict

Go Music DL is worth a limited trial for Chinese-speaking NAS users who want several music sources and local-library tools together. Its documented Web access model requires care: ordinary functions remain available without administrator login. Our September 18, 2026 run at c1b188c did not establish a clean build or installed application. The test command failed with native-library and Gio webviewer diagnostics, while the parser's 10/5/15 summary is not verified unique package coverage. Evaluate the chosen client and source on a copied music folder before relying on it.

We ran it

Lab card: what happened when we ran go-music-dlScreenshot of go-music-dl (music.zkkp.nyc.mn)
Install✓ · 32s153 packages
Build✓ · 51s
Tests✗ · 24s10 passed · 5 failed of 15 (go test)
Repo154 files~35,785 lines of source · 4.4 MB · 5 CI workflows · Dockerfile

Answers from our run

Does go-music-dl build from source?

Dependencies installed in 32 seconds (153 packages), and the build succeeded in 51 seconds. We cloned commit c1b188c into a clean Debian container with 3 CPUs and no project-specific setup.

Do go-music-dl's tests pass?

No. The project's own test command finished in 24 seconds and reported 10 passed, 5 failed (go test).

Who should not use go-music-dl?

Users who require an English setup guide in the supplied documentation.

What are the alternatives to go-music-dl?

spotDL, yt-dlp. Go Music DL is worth a limited trial for Chinese-speaking NAS users who want several music sources and local-library tools together.

Setup3/5Release and Compose routes are documented. The September 18, 2026 run at c1b188c has a conflicting build record and no installed-binary check.
Docs3/5The supplied Chinese READMEs explain deployment, cookies, local files, and FFmpeg. Deployment instructions differ between the tested and current versions; no English guide is supplied.
Community2/5Supplied issue extracts contain maintainer replies and closures. They do not establish adoption, typical response times, or support capacity.
Maturity2/5v1.1.1 is documented, but the READMEs retain source-specific limits and our recorded run does not verify released desktop, mobile, or music-service workflows.

Who it’s for

Chinese-speaking listeners evaluating a shared interface for several music services and local files.
NAS owners who can restrict access to the Web service and protect saved platform cookies.
Users willing to check their chosen source, client, and download workflow before importing an existing library.

Who it’s NOT for

Users who require an English setup guide in the supplied documentation.
Operators who expect the Web administrator login to restrict ordinary listening and download functions. The README explicitly leaves those functions available without login.
Users who need verified desktop or mobile compatibility from this review. Our recorded run did not establish that.
Teams requiring a passing repository-wide test command before evaluation. Our September 18, 2026 run at c1b188c exited with code 1; its raw output includes package build failures.

Setup reality

In our recorded run on September 18, 2026 at commit c1b188c366ece39cb19a61d108e4fbf7c29271e5, the install step exited 0 in about 32 seconds. Its visible tail records downloading Go 1.25.1. The dependency metric is 153; this does not prove that 153 packages or a runnable CLI were installed.

The build step is recorded as exit 0 after about 51 seconds, but its tail contains missing native-library diagnostics, Gio webviewer compilation errors, and vet-exit:1. That conflicting record cannot establish a clean project build. The test step exited 1 after about 24 seconds. No installed-binary check, interactive playback, download workload, or library benchmark is supplied.

For deployment, distinguish the documentation versions. The tested README requires users to create a writable host data directory and includes a mode-777 example. The current supplied README says Compose creates ./data and configures container write permissions automatically. We did not execute either Compose workflow.

The README says ordinary Web search, playback, downloads, and playlist browsing need no login; administrator authentication protects settings and Cookie changes. Restrict access accordingly. Docker and Android packages are documented as including FFmpeg and ffprobe; CLI, desktop, and iOS users must provide them for the features that need them.

A NAS trial starts with the access model

Go Music DL's administrator login does not restrict ordinary Web listening and downloads. Both supplied README versions say search, playback, downloads, and playlist browsing are available without login; settings and Cookie changes require an administrator account. For a NAS owner, deciding who can reach the service comes before adding account cookies or a music collection.

The project combines online music search with local files, playlists, lyrics, and metadata tools. The tested README lists 12 online platforms, not 11: NetEase Cloud Music, QQ Music, Kugou, Kuwo, Migu, Qianqian, Soda, 5sing, Jamendo, JOOX, Bilibili, and Apple Music. This is documented adapter coverage. Our run did not verify that each platform could search, play, or download music.

The supplied documentation is Chinese. It covers Web, TUI, desktop, Android, and iOS workflows, but an English setup guide is not included in the supplied evidence. iOS distribution also needs attention: the README says the unsigned IPA requires the user's own signing before installation.

What our recorded run establishes

Our stored run is dated September 18, 2026 at 12:27:59.758 UTC and used commit c1b188c366ece39cb19a61d108e4fbf7c29271e5, associated with v1.1.1. The recorded environment had 3 CPUs, 8 GB of memory, and the image label golang:1.24-bookworm. The install tail shows Go 1.25.1 being downloaded, so the image label alone does not identify the toolchain used throughout the run.

The install step exited 0 in 31.548 seconds, rounded to 32 seconds in the stored summary. The dependency metric was 153. Neither observation establishes that the CLI was installed or launched.

The build step took 50.714 seconds, rounded to 51 seconds, and its wrapper recorded exit 0. Its captured tail nevertheless contains missing xkbcommon, wayland-client, GTK, and WebKitGTK diagnostics, Gio webviewer compilation errors, and vet-exit:1. Without the complete command and reconciled output, this is a conflicting build record rather than proof of a successful project build.

The test step exited 1 in 24.432 seconds, rounded to 24 seconds. The visible output contains successful package results for cmd/music-dl, core, internal/appshell, internal/cli, and internal/web. It marks desktop_app and desktop_go as build failures. The README identifies desktop_app as the mobile application directory, so these are not both desktop targets. The output also identifies three packages with no test files.

The stored parser summary reports 10 passed, 5 failed, and 15 total. Its tail repeats package results under a summary heading, and the supplied count-scope warning says exhaustive unique coverage was not verified. We retain those figures as parser output, not as a verified count of passing tests or distinct failed packages. Packages without test files are not failed tests.

The checkout metrics were 154 files, approximately 35,785 lines of source, and 4.4 MB. The record also identifies five CI workflows, a Dockerfile, and a Compose file. These describe the checkout, not runtime reliability. There was no installed-binary check, music-service workload, playback trial, or local-library performance measurement. The failed command does not establish that the released application is broken.

Use the deployment instructions for the version you choose

The tested README describes persisting the container's /home/appuser/data directory and running as UID 1000. It tells users to create the host directory first and includes a mode-777 example. The current supplied README instead says Compose creates ./data and configures write permissions automatically. Do not carry the older manual permission step into a current deployment without checking the selected version's instructions.

Both versions document a Web service whose ordinary functions remain available without login. The tested README describes a one-time initialization token, an administrator password of at least 6 characters, and a default 7-day session. It separately says embedded desktop and mobile services listen on 127.0.0.1 and disable the Web administrator login flow. Those embedded-client settings should not be assumed to describe a standalone Web deployment.

For a NAS trial, restrict network access and protect the persisted data directory. The README says platform cookies are stored locally and should not be shared publicly. Administrator login alone is not access control for the ordinary Web functions described above. This recommendation follows the documented access model; it is not a security audit finding.

Check the features you intend to use

The current README documents scanning, uploading, searching, and organizing local audio, with SQLite indexing, pagination, snapshot caching, and background refresh. The tested README specifies a 10-second snapshot cache. Neither its claims about large libraries nor its caching design are our performance measurements.

FFmpeg and ffprobe are documented as included in Docker images and Android APKs. CLI, desktop, and iOS packages require users to install them when needed for probing or metadata writing. The documentation says missing FFmpeg causes metadata embedding to be skipped rather than preventing raw audio downloads. The existing diagnostic command is ffmpeg -version; running it successfully would still be a separate check from exercising metadata writing in the application.

Source support has explicit limits. The supplied READMEs mark Soda QR login as unavailable, Apple Music downloads as previews with full downloads requiring gamdl, and Qianqian and Jamendo playlist search as potentially returning empty results. The current README adds Soda full-track signing options that are absent from the tested version. Those newer claims were not exercised by our September run.

Start with a copied folder. Check the selected service's login, one permitted download, filename handling, lyrics, metadata, and behavior after deleting a file outside the application. These are proposed evaluation steps, not tests we performed.

How to read the scores

The scores are editorial judgments of the supplied evidence: 1 means little basis for adoption, 2 means material gaps, 3 means a documented evaluation path with unresolved limits, 4 means strong evidence across the relevant workflows, and 5 requires broad independent verification. They are not benchmarks or adoption measurements.

Setup receives 3 because release and Compose routes are documented, but our build record is contradictory and no runnable installation was checked. Documentation receives 3 because deployment, cookies, local files, and FFmpeg are explained, while the supplied material is Chinese and differs between versions. Community receives 2 because the supplied issue extracts show maintainer replies, but do not measure support responsiveness or adoption. Maturity receives 2 because documented source limitations and unverified client workflows leave substantial questions for an operator.

When a narrower downloader fits

spotDL fits a Spotify-playlist input workflow: its README says it finds the songs on YouTube and downloads them with album art, lyrics, and metadata. It does not download the audio from Spotify.

yt-dlp fits command-line downloads from supported audio/video URLs. Its README describes support for thousands of sites. Neither alternative's supplied description establishes that it replaces Go Music DL's combined local-library and multi-service interface.

Choose Go Music DL for a controlled evaluation of that combined workflow. The next useful evidence is a successful trial of the exact client, source, and library operations you need.

Alternatives

ProjectWhat it isPick it when
spotDLA downloader that finds songs from Spotify playlists on YouTube and downloads them with album art, lyrics, and metadata.Choose it when Spotify playlists are your input and YouTube is an acceptable audio source.
yt-dlp gh↗A command-line audio/video downloader whose README describes support for thousands of sites.Choose it when you want to download audio or video from supported URLs through a command-line workflow.

What people are saying

  1. [github-trending] guohuiyuan/go-music-dl

Sources

  1. Go Music DL repository
  2. Go Music DL README at tested commit
  3. Go Music DL v1.1.1 release
  4. Issue 236: QQ Music QR login failure
  5. Issue 209: AppImage WebKit path on Arch Linux
  6. Issue 239: deleted download remains skipped

More self-hosted reviews

linkwarden · CasaOS · ezbookkeeping · honk · aivpn · Free-GST-Billing-Software · the whole board →