このプロジェクトについて
Go Music DL は Go で書かれた音楽検索・ダウンロードツールで、Web インターフェース、TUI ターミナル、デスクトップアプリの3つの利用方法を提供します。単曲の検索・ダウンロードに加え、プレイリストの検索・解析、プレイリストのカテゴリ別閲覧、マイプレイリスト、アルバムの検索・解析、およびリスト全体/アルバム全体の曲表示と一括処理をサポートします。
主な機能:
- マルチプラットフォーム集約検索:NetEase Cloud、QQ Music、Kugou、Kuwo、Migu、Qianqian、Soda Music、5sing、Jamendo、JOOX、Bilibili、Apple Music など10以上のプラットフォームをカバーし、マルチソース同時検索に対応。
- 単曲、プレイリスト、アルバムの3つの検索タイプをサポート。曲/プレイリスト/アルバムの共有リンクを直接貼り付けると、ソースを自動認識して詳細画面に移動。
- ロスレス音質解析: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 の3つの方法を提供。デフォルトで ./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.