このプロジェクトについて

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時間以内に削除することを明記しています。