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.