Об этом проекте
Go Music DL — это инструмент для поиска и скачивания музыки, написанный на Go, с тремя способами использования: веб-интерфейс, TUI-терминал и десктопное приложение. Помимо поиска и скачивания отдельных треков, поддерживаются поиск и разбор плейлистов, просмотр категорий плейлистов, мои плейлисты, поиск и разбор альбомов, а также просмотр треков целого плейлиста/альбома и пакетная обработка.
Основные возможности:
- Многоплатформенный агрегированный поиск, охватывающий более 10 платформ: NetEase Cloud Music, QQ Music, Kugou, Kuwo, Migu, Qianqian, Qishui Music, 5sing, Jamendo, JOOX, Bilibili, Apple Music и другие, с поддержкой многопоточного поиска по нескольким источникам.
- Поддержка трёх типов поиска: трек, плейлист, альбом. Можно напрямую вставить ссылку на трек/плейлист/альбом, чтобы автоматически распознать источник и перейти к деталям.
- Разбор lossless-качества: NetEase Cloud Music, QQ Music и Bilibili поддерживают скачивание FLAC без потерь, Kugou поддерживает FLAC для обычных песен.
- Поддержка двух форматов текстов песен: NetEase Cloud Music, QQ и Kugou поддерживают отображение LRC с оригиналом/переводом/ромадзи по словам и караоке-подсветку по словам.
- Прослушивание, скачивание текстов и обложек, определение размера и битрейта через Range-запросы, фильтрация платных ресурсов.
- Локальные пользовательские плейлисты: можно создавать локальные коллекции, объединять песни с разных платформ, данные сохраняются.
- Категории плейлистов и мои плейлисты: в веб-версии можно просматривать официальные плейлисты по платформам, после входа — личные плейлисты/избранные плейлисты.
- Вход по QR-коду с Cookie: панель настроек поддерживает сканирование QR-кода для NetEase Cloud Music, QQ, Kugou и Bilibili с автоматическим сохранением Cookie; сканирование QR-кода для Qishui Music пока не работает из-за подписи антифрода.
- Управление локальной музыкой: чтение локального каталога загрузок, поддержка загрузки, дополнения метаданных, чтения обложек/текстов, удаления, а также участие в поиске как первоочередной источник; списки загружаются постранично с кэшированием сканирования и метаданных.
- Смена источника: поиск альтернативных версий на других платформах по схожести названия/исполнителя, близости длительности и проверке воспроизводимости, с поддержкой пакетной смены источника.
- Ежедневные рекомендации плейлистов: доступны в веб-версии и TUI, агрегируют NetEase Cloud Music, QQ, Kugou и Kuwo.
- Синхронизация WebDAV: скачанные файлы можно одновременно загружать на WebDAV.
- Кнопки, связанные с генерацией видео, перенесены в веб-настройки и по умолчанию отключены.
Развёртывание и использование:
- Десктопное приложение: скачайте music-dl-desktop-rust.exe или music-dl-desktop-go.exe из Releases, распакуйте и запустите двойным щелчком; поддерживаются Windows, macOS, Linux.
- Мобильная версия: в Releases доступен Android APK (рекомендуется arm64-v8a, x86_64, совместимый пакет без фрагментации), APK включает ffmpeg и ffprobe; для iOS предоставляется ipa для подписи, после настройки сертификата можно получить подписанный пакет.
- Веб-режим: ./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 для сохранения загрузок, конфигурации и избранного, запуск от непривилегированного пользователя.
- CLI поддерживает указание источника поиска (-s), каталога загрузки (-o), включение обложки и текстов (--cover --lyrics) и другие параметры.
Технологический стек: основная зависимость — библиотека музыкальных платформ music-lib, CLI использует Cobra, веб — 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.