About this project
Go Music DL is a music search and download tool written in Go, providing three usage modes: Web interface, TUI terminal, and desktop application. Beyond single-track search and download, it supports playlist search and parsing, playlist category browsing, my playlists, album search and parsing, as well as viewing and batch processing of entire playlists/albums.
Key capabilities:
- Multi-platform aggregated search covering NetEase Cloud Music, QQ Music, Kugou, Kuwo, Migu, Qianqian, Soda Music, 5sing, Jamendo, JOOX, Bilibili, Apple Music, and more (10+ platforms), with concurrent multi-source search support.
- Three search types: single track, playlist, and album. You can directly paste share links for songs/playlists/albums to auto-detect the source and enter the details.
- Lossless audio parsing: NetEase Cloud, QQ Music, and Bilibili support FLAC lossless downloads; Kugou supports FLAC for regular songs.
- Dual-format lyrics: NetEase Cloud, QQ, and Kugou support original/translated/romaji word-by-word LRC display and karaoke-style word-by-word highlighting.
- Preview, lyrics, and cover downloads; Range probing shows file size and bitrate; filters out paid resources.
- Local custom playlists: create local favorites, aggregate songs from different platforms, with persistent data.
- Playlist categories and my playlists: on the Web, browse official category playlists by platform; after login, access personal playlists/favorite playlists.
- Cookie QR-code login: settings panel supports NetEase Cloud, QQ, Kugou, and Bilibili QR scanning to obtain and auto-save cookies; Soda Music QR login is not yet functional due to risk-control signing.
- Local music management: reads local download directory, supports upload, metadata completion, cover/lyrics retrieval, deletion, and can serve as a first-class search source; list pagination with cached scanning and metadata.
- Source switching: finds alternative versions on other platforms based on song/artist similarity, duration proximity, and playability probing; supports batch source switching.
- Daily playlist recommendations: available on both Web and TUI, aggregating NetEase Cloud, QQ, Kugou, and Kuwo.
- WebDAV sync: can upload downloaded files to WebDAV simultaneously.
- Video generation related buttons have been moved to Web settings for management, disabled by default.
Deployment and usage:
- Desktop app: download music-dl-desktop-rust.exe or music-dl-desktop-go.exe from Releases, unzip and double-click to run; supports Windows, macOS, and Linux.
- Mobile: Releases provide Android APK (arm64-v8a recommended, x86_64, and a non-split compatible package); the APK includes ffmpeg and ffprobe. For iOS, an unsigned ipa is provided; signed packages can be supplied after certificate configuration.
- Web mode: ./music-dl web, default mounted at /music path; use --base-path to mount at a subdirectory; includes Nginx reverse proxy example. Normal features require no login; only system configuration operations require admin login, with the first-time admin account created via a one-time initialization token printed in the terminal.
- TUI mode: ./music-dl -k "keyword", supports arrow key navigation, space to select, a to select all, r to switch source, Enter to download, w for daily recommendations, q to quit.
- Docker: provides docker-compose.yml (pulls prebuilt image), docker-compose.dev.yml (local build), and docker run; default mounts ./data for persistent downloads, config, and favorites; runs as non-root user.
- CLI supports specifying search source (-s), download directory (-o), and including cover and lyrics (--cover --lyrics).
Tech stack: core dependency is the music-lib platform library; CLI uses Cobra, Web uses Gin, TUI uses Bubble Tea, desktop uses Rust + Tao/Wry or Go + webview2, mobile uses Go + Gio. Data is uniformly stored in the data directory, containing downloads, video_output, cookies.json, and settings.db (SQLite, storing settings/cookies/custom playlists).
The project is licensed under AGPL-3.0. The README states it is for learning and technical exchange only; downloaded music resources should be deleted within 24 hours.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.