프로젝트 소개
Go Music DL은 Go로 작성된 음악 검색 및 다운로드 도구로, Web 인터페이스, TUI 터미널, 데스크톱 애플리케이션의 세 가지 사용 방식을 제공합니다. 단일 곡 검색·다운로드 외에도 플레이리스트 검색·파싱, 플레이리스트 분류 탐색, 내 플레이리스트, 앨범 검색·파싱, 전체 플레이리스트/앨범 곡 조회 및 일괄 처리를 지원합니다.
주요 기능:
- 다중 플랫폼 통합 검색: NetEase Cloud, QQ Music, Kugou, Kuwo, Migu, Qianqian, Soda Music, 5sing, Jamendo, JOOX, Bilibili, Apple Music 등 10개 이상 플랫폼을 지원하며, 다중 소스 동시 검색이 가능합니다.
- 단일 곡, 플레이리스트, 앨범의 세 가지 검색 유형을 지원하며, 곡/플레이리스트/앨범 공유 링크를 직접 붙여넣으면 출처를 자동으로 인식하여 상세 페이지로 이동합니다.
- 무손실 음질 파싱: NetEase Cloud, QQ Music, Bilibili는 FLAC 무손실 다운로드를 지원하며, Kugou는 일반 곡의 FLAC을 지원합니다.
- 가사 이중 형식 지원: NetEase Cloud, QQ, Kugou는 원문/번역/로마자 음역의 LRC 표시와 가라오케식 글자별 하이라이트를 지원합니다.
- 미리 듣기, 가사, 커버 다운로드, Range 탐지로 크기와 비트레이트 표시, 유료 리소스 필터링.
- 로컬 맞춤 플레이리스트: 새 로컬 즐겨찾기를 생성하여 다른 플랫폼의 곡을 모아 저장할 수 있으며, 데이터가 영구 보존됩니다.
- 플레이리스트 분류 및 내 플레이리스트: Web에서 플랫폼별 공식 분류 플레이리스트를 탐색할 수 있으며, 로그인 후 개인 플레이리스트/즐겨찾기 플레이리스트를 읽을 수 있습니다.
- Cookie QR 로그인: 설정 패널에서 NetEase Cloud, QQ, Kugou, Bilibili의 QR 스캔으로 Cookie를 획득하고 자동 저장합니다. Soda Music의 QR 로그인은 리스크 관리 서명 문제로 아직 연동되지 않았습니다.
- 로컬 음악 관리: 로컬 다운로드 디렉터리를 읽고, 업로드, 메타데이터 보완, 커버/가사 읽기, 삭제를 지원하며, 일급 검색 소스로 검색에 참여할 수 있습니다. 목록은 페이지네이션으로 로드되고 스캔 및 메타데이터가 캐시됩니다.
- 소스 전환: 곡명/가수 유사도, 길이 근접도, 재생 가능 여부 탐지를 기반으로 다른 플랫폼에서 대체 버전을 찾으며, 일괄 소스 전환을 지원합니다.
- 일일 플레이리스트 추천: Web과 TUI에서 모두 확인 가능하며, NetEase Cloud, QQ, Kugou, Kuwo를 통합합니다.
- WebDAV 동기화: 다운로드 파일을 WebDAV에 동시 업로드할 수 있습니다.
- 비디오 생성 관련 버튼은 Web 설정으로 이동하여 관리되며, 기본적으로 비활성화되어 있습니다.
배포 및 사용:
- 데스크톱 앱: Releases에서 music-dl-desktop-rust.exe 또는 music-dl-desktop-go.exe를 다운로드하여 압축 해제 후 더블 클릭으로 실행합니다. Windows, macOS, Linux를 지원합니다.
- 모바일: Releases에서 Android APK(arm64-v8a 권장, x86_64, 분할 없는 호환 패키지)를 제공하며, APK에 ffmpeg와 ffprobe가 내장되어 있습니다. iOS는 서명 대기 중인 ipa를 제공하며, 인증서 구성 후 서명된 패키지도 제공할 수 있습니다.
- Web 모드: ./music-dl web, 기본적으로 /music 경로에 마운트되며, --base-path로 하위 디렉터리에 마운트할 수 있고 Nginx 리버스 프록시 예시가 포함됩니다. 일반 기능은 로그인 없이 사용 가능하며, 시스템 구성 작업만 관리자 로그인이 필요하고, 최초 실행 시 터미널에 출력되는 일회성 초기화 토큰으로 관리자 계정을 생성합니다.
- TUI 모드: ./music-dl -k "키워드", 방향키 이동, 스페이스 선택, a 전체 선택, r 소스 전환, Enter 다운로드, w 일일 추천, q 종료 등의 키를 지원합니다.
- Docker: docker-compose.yml(사전 컴파일된 이미지 풀), docker-compose.dev.yml(로컬 빌드), docker run의 세 가지 방식을 제공하며, 기본적으로 ./data를 마운트하여 다운로드, 구성, 즐겨찾기 데이터를 영구 보존하고 비-root 사용자로 실행합니다.
- CLI는 검색 소스(-s), 다운로드 디렉터리(-o), 커버 및 가사 포함(--cover --lyrics) 등의 매개변수를 지원합니다.
기술 스택: 핵심 의존성은 music-lib 음악 플랫폼 라이브러리이며, CLI는 Cobra, Web은 Gin, TUI는 Bubble Tea, 데스크톱은 Rust + Tao/Wry 또는 Go + webview2, 모바일은 Go + Gio를 사용합니다. 데이터는 data 디렉터리에 통합 저장되며, downloads, video_output, cookies.json, settings.db(SQLite, 설정/Cookie/맞춤 플레이리스트 저장)가 포함됩니다.
프로젝트는 AGPL-3.0 라이선스를 사용하며, README는 학습 및 기술 교류 목적으로만 제공되고, 다운로드한 음악 리소스는 24시간 내에 삭제해야 한다고 명시합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.