Skip to content

Latest commit

 

History

38 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spotify Music Downloader

Локальный Spotify-метадата-матчер и загрузчик MP3 с удобным веб-интерфейсом

Version CI Python License

Spotify используется как источник метаданных. Аудио подбирается на выбранных пользователем внешних сервисах и сохраняется с обложкой и ID3-тегами.

Загруженный Spotify-плейлист

Important

Проект находится в стадии Beta. Перед загрузкой большого плейлиста проверьте несколько треков вручную.

Зачем этот проект

  • один локальный интерфейс вместо нескольких консольных инструментов;
  • Spotify-треки, альбомы и плейлисты любого размера;
  • автоматический поиск на YouTube Music, YouTube, SoundCloud и MP3Party;
  • сопоставление по названию, исполнителю, длительности, альбому и explicit;
  • обложки, расширенные ID3-теги, тексты песен, .lrc и .m3u8;
  • ручной «парашют» для сложных, редких и перезалитых треков;
  • отчёты, отмена заданий, кэш и обработка уже скачанных файлов;
  • отображение фактического источника каждого результата.

Интерфейс

Проверка совпадений до загрузки

Предварительная проверка совпадений

Программа показывает источник и уверенность для каждого найденного кандидата, чтобы сомнительные совпадения можно было заметить заранее.

Готовые треки и фактические источники

Завершённые загрузки и источники

После обработки рядом с каждым треком отображается реальный источник аудио. Отдельный файл можно скачать повторно прямо из списка.

Настройки источников, качества и файлов
Настройки загрузки

Быстрый запуск

Требования

  • Windows 10/11;
  • Python 3.11–3.14;
  • FFmpeg;
  • Deno — рекомендуется для части YouTube-видео.

Установка

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 cookies

Для 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 -q

GitHub 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 и приложите название трека, выбранный источник и обезличенный фрагмент журнала.

About

Local Spotify metadata matcher and MP3 downloader with a web UI

Topics

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages