Spotify используется как источник метаданных. Аудио подбирается на выбранных пользователем внешних сервисах и сохраняется с обложкой и ID3-тегами.
Important
Проект находится в стадии Beta. Перед загрузкой большого плейлиста проверьте несколько треков вручную.
- один локальный интерфейс вместо нескольких консольных инструментов;
- Spotify-треки, альбомы и плейлисты любого размера;
- автоматический поиск на YouTube Music, YouTube, SoundCloud и MP3Party;
- сопоставление по названию, исполнителю, длительности, альбому и explicit;
- обложки, расширенные ID3-теги, тексты песен,
.lrcи.m3u8; - ручной «парашют» для сложных, редких и перезалитых треков;
- отчёты, отмена заданий, кэш и обработка уже скачанных файлов;
- отображение фактического источника каждого результата.
Программа показывает источник и уверенность для каждого найденного кандидата, чтобы сомнительные совпадения можно было заметить заранее.
После обработки рядом с каждым треком отображается реальный источник аудио. Отдельный файл можно скачать повторно прямо из списка.
git clone https://github.com/Dunterbabochka/SpotifyMusicDownloader.git
cd SpotifyMusicDownloader
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
python main.pyОткройте http://localhost:8000. Запуск от администратора не требуется:
сервер по умолчанию доступен только на 127.0.0.1.
FFmpeg и Deno можно добавить в PATH либо положить ffmpeg.exe и deno.exe
рядом с main.py.
Для YouTube Premium или при ограничениях YouTube экспортируйте cookies в
Netscape-формате и сохраните как cookies.txt рядом с main.py.
Caution
Никому не отправляйте cookies.txt и не добавляйте его в Git. Файл уже
исключён через .gitignore.
Настройки источников, качества, совпадений, текстов и дубликатов доступны непосредственно в интерфейсе. Дополнительные параметры запуска:
| Переменная | Назначение | По умолчанию |
|---|---|---|
SMD_DOWNLOADS_DIR |
папка загрузок | Desktop/SpotifyDownloads или Music/SpotifyDownloads |
SMD_DATA_DIR |
кэш и отчёты | системная папка данных приложения |
SMD_COOKIES_FILE |
путь к cookies | ./cookies.txt |
SMD_CONCURRENCY |
параллельные загрузки | 3 |
SMD_MAX_TRACKS |
треков в одном задании | 5000 |
SMD_HOST |
адрес сервера | 127.0.0.1 |
SMD_PORT |
порт | 8000 |
SMD_LOG_LEVEL |
уровень журнала | INFO |
Если вы намеренно меняете SMD_HOST на 0.0.0.0, самостоятельно добавьте
аутентификацию и сетевые ограничения.
python -m pip install -e ".[dev]"
python -m ruff check .
python -m ruff format --check .
python -m pytest -qGitHub Actions автоматически выполняет эти проверки на Python 3.11 и 3.14.
- MP3Party может возвращать HTTP 451 при использовании VPN или прокси;
- доступность внешних источников может меняться независимо от проекта;
- ремиксы, перезаливы и clean/explicit-версии иногда требуют ручной проверки;
- приложение предназначено для локального запуска одним пользователем.
Проект предназначен для личного использования с материалами, которые пользователь имеет право загружать. Соблюдайте условия использования источников и применимое законодательство. Репозиторий не содержит и не распространяет аудиофайлы.
Подходы к модели трека, скорингу совпадений, дубликатам и метаданным вдохновлены spotDL 4.5. Код этого проекта остаётся самостоятельным и не импортирует локальную копию spotDL.
Spotify Music Downloader распространяется по лицензии GNU General Public License v3.0. Производные версии при распространении также должны сохранять открытый исходный код на условиях GPLv3.
Нашли ошибку или неудачное совпадение? Создайте Issue и приложите название трека, выбранный источник и обезличенный фрагмент журнала.
- История изменений: CHANGELOG.md
- Безопасность: SECURITY.md


