Savify — это библиотека Python, которая загружает песни от выбранного провайдера (по умолчанию YouTube), а затем извлекает метаинформацию из Spotify. По запросу Savify найдет и загрузит песни в формате mp3 с качеством до 320 кб/с ! Приложение также будет очищать и записывать теги id3v2 во все ваши песни. Теги включают название, исполнителей, год, альбом и даже обложку!
Savify поддерживает все ссылки на треки, альбомы и плейлисты Spotify. Кроме того, существует встроенная функция поиска , поэтому, даже если у вас нет ссылки на Spotify, вы можете просто ввести название песни, и Savify загрузит ее!
Помимо mp3, Savify также может загружать и конвертировать файлы других типов. Внутри приложения вы можете указать, в каком формате и качестве вы хотите загрузить песню, чтобы обеспечить максимальную совместимость на всех ваших устройствах. Доступные форматы: mp3, aac, flac, m4a, opus, vorbis и wav. Теги и обложки будут применяться только к песням, загруженным в формате mp3.
Обратите внимание, что эта библиотека никоим образом не противоречит Spotify TOS, песни не копируются непосредственно из Spotify, а вместо этого загружаются из других источников, таких как YouTube и Soundcloud, с использованием библиотеки Python youtube-dl. Spotify используется только для сбора точной метаинформации для встраивания в загруженные файлы песен.
Посетите наш официальный репозиторий образов Docker Hub и получите последнюю версию образа Docker: https://hub.docker.com/repository/docker/laurencerawlings/savify
Если у вас возникнут вопросы или отзывы, присоединяйтесь к Discord Server.
Savify использует библиотеку FFmpeg с открытым исходным кодом для преобразования и записи метаданных в загружаемые песни. Убедитесь, что FFmpeg установлен на вашем компьютере и добавлен в системный путь. Следуйте инструкциям здесь.
Если вы хотите использовать Savify для загрузки личных плейлистов Spotify, убедитесь, что для их видимости установлено значение «Общедоступный». Это сделано для того, чтобы Savify мог использовать API Spotify для получения сведений о песне из вашего плейлиста.
Если вы используете Windows, вы можете загрузить последний предварительно упакованный исполняемый пакет (который я рекомендую, поскольку вам не нужно будет предоставлять ключ API Savify) или вы можете загрузить библиотеку Python и запустить модуль напрямую с помощью CLI.
Перейдите сюда, чтобы загрузить последнюю версию Savify.exe, а затем убедитесь, что у вас есть:
FFmpeg загружен и добавлен в ваш путь.
Учетные данные Spotify API добавлены в переменные вашей среды.
Вот и все, вам пора идти! См. некоторые примеры использования ниже.
$ pip install -U savify
Клонируйте репозиторий и убедитесь, что вы находитесь в корневом каталоге. Выполните следующую команду сборки:
$ docker build -t savify:dev .
В настоящее время Savify поддерживает только URL-адреса и поисковые запросы Spotify, однако поддержка URI Spotify будет добавлена в будущем.
Если вы загрузили последнюю версию Savify.exe со страницы выпусков, откройте терминал и перейдите в тот же каталог, что и двоичный файл, затем вы можете запустить:
$ Savify.exe
Если вы используете пакет Python и savify установлен в пакеты вашего сайта, а ваша папка pip находится в вашем PATH (который должен быть по умолчанию), из любого места вы можете просто запустить:
$ savify
Для помощи выполните:
$ savify --help
Используя значение по умолчанию выше:
$ savify "https://open.spotify.com/track/4Dju9g4NCz0LDxwcjonSvI"
Указание собственных опций:
$ savify "https://open.spotify.com/track/4Dju9g4NCz0LDxwcjonSvI" -q best -f mp3 -o "/path/to/downloads" -g "%artist%/%album%"
С помощью поискового запроса:
$ savify "You & I - Bru-C" -t track -q best -f mp3 -o "/path/to/downloads" -g "%artist%/%album%"
Доступные переменные: %artist%, %album%, %playlist%
Например:
$ savify "You & I - Bru-C" -o /path/to/downloads -g "%artist%/%album%"
Загружается в следующую структуру каталогов:
/путь/к/загрузкам | |- /Брю-С | |- /Оригинальные звуки | |- Bru-C - Ты и я.mp3
Тип запроса: | отслеживать |
---|---|
Качество: | лучший |
Формат: | mp3 |
Путь: | Windows: ДОМОЙ/AppData/Роуминг/Savify/загрузки Linux: ДОМОЙ/.local/share/Savify/загрузки MacOS: ГЛАВНАЯ/Библиотеки/Поддержка приложений/Savify/Загрузки |
Группировка: | нет группировки |
Дополнительные примеры использования можно найти в документации.
Запустите savify внутри контейнера, который также можно подключить к сетям других контейнеров. Это удобно, если вы хотите запустить несколько экземпляров savify и/или использовать VPN для загрузки. Вы можете использовать собственный образ Docker или официальный. Обязательно используйте правильное имя и тег образа Docker.
$ docker run laurencerawlings/savify:latest
Если аргумент не указан, контейнер распечатает страницу справки. Просто добавьте свои аргументы, убедитесь, что вы смонтировали папку со своего хоста, чтобы загрузки были постоянными ( -v
) — pwd
используется для монтирования текущего каталога, в котором вы находитесь, — и удалите контейнер по завершении ( --rm
). Вам необходимо указать свой идентификатор и секрет клиента Spotify, используя переменные среды ( -e
):
$ docker run --rm -v "`pwd`:/root/.local/share/Savify/downloads" -e SPOTIPY_CLIENT_ID=client_id -e SPOTIPY_CLIENT_SECRET=client_secret laurencerawlings/savify:latest "https://open.spotify.com/playlist/..."
Если вы хотите сохранить свои журналы, вы можете смонтировать каталог журналов, просто добавив следующий аргумент в команду запуска Docker: -v "./logs:/root/.local/share/Savify/logs"
Автоматизация с помощью сценария оболочки:
$ nano savify.sh
#!/bin/bashdocker run --rm -v "`pwd`:/root/.local/share/Savify/downloads" -e SPOTIPY_CLIENT_ID=client_id -e SPOTIPY_CLIENT_SECRET=client_secret laurencerawlings/savify:последний $1
Затем запустите:
$ sh savify.sh "https://open.spotify.com/track/4Dju9g4NCz0LDxwcjonSvI"
У вас также есть возможность быстро начать использовать наш сценарий докера, который имеет встроенную проверку VPN, чтобы увидеть, есть ли какие-либо VPN-контейнеры, к которым может подключиться сценарий. Скрипт идеально подходит для планирования с помощью cron:
$ wget https://github.com/laurencerawlings/savify/latest/download/savify-docker-scripts.zip $ разархивируйте savify-docker-scripts.zip && rm savify-docker-scripts.zip $ cd savify-docker-scripts/
Затем вам нужно отредактировать файл конфигурации с помощью предпочитаемого вами текстового редактора (мы предпочитаем nano), сохранить его (Ctrl + X, Y для сохранения изменений в nano) и переименовать его в config.sh
.
$ нано шаблон.config.sh $ mv template.config.sh config.sh
Затем вы можете запустить скрипт:
$ bash Bulk-download.sh
Чтобы использовать модуль Savify Python, вам понадобится собственное приложение разработчика Spotify для доступа к их API. Для этого зарегистрируйтесь здесь. Когда вы создадите новое приложение, запишите свой идентификатор и секрет клиента. Вы можете передать идентификатор и секрет в Savify двумя способами:
Теперь вам нужно добавить в вашу систему две переменные среды:
SPOTIPY_CLIENT_ID
SPOTIPY_CLIENT_SECRET
Чтобы узнать, как это сделать, найдите в Интернете учебное пособие для вашей конкретной операционной системы. Как только вы это сделаете, обязательно перезапустите оболочку.
Вы можете передать свой идентификатор и секрет, используя кортеж при создании объекта Savify:
s = Savify(api_credentials=("CLIENT_ID","CLIENT_SECRET"))
Установите пакет в свою среду:
$ pip install savify
Импортируйте и используйте Savify:
from savify import Savifyfrom savify.types import Type, Format, Qualitys = Savify()# Spotify URLs.download("SPOTIFY URL")# Поисковый запрос# Типы: TRACK, ALBUM, PLAYLISTs.download("QUERY", query_type=Type. ОТСЛЕЖИВАТЬ)
Сохраните необязательные аргументы конструктора (см. значения по умолчанию выше):
журнал импорта из импорта savify Savify из savify.types импорт Тип, Формат, Качество из savify.utils импортировать PathHolder # Варианты качества: WORST, Q32K, Q96K, Q128K, Q192K, Q256K, Q320K, BEST. # Варианты формата: MP3, AAC, FLAC, M4A, OPUS, VORBIS, WAV. Savify(api_credentials=None, качество=Quality.BEST, download_format=Format.MP3, path_holder=PathHolder(downloads_path='path/for/downloads'), group='%artist%/%album%', quiet=False,skip_cover_art =False, log_level=logging.INFO)
Ручная настройка параметров youtube-dl:
из savify import Savifyoptions = {'cookiefile': 'cookies.txt'}Savify(ydl_options=options)
Передача собственного регистратора:
from savify import Savifyfrom savify.logger import Loggerlogger = Logger(log_location='path/for/logs', log_level=None) # Тихий выводSavify(logger=logger)
Аргумент group используется для сортировки загруженных вами песен по выходному пути. Возможные переменные для строки пути: %artist%, %album% и %playlist%. Переменные заменяются метаданными песни. Например, песня, загруженная с помощью вышеуказанного объекта Savify, будет сохранена по следующему пути: path/for/downloads/Example Artist/Example Album/Example Song.mp3.
Если вы хотите попробовать свои силы в добавлении в Savify, воспользуйтесь инструкциями здесь. Отсюда вы можете внести любые дополнения, которые, по вашему мнению, сделают Savify лучше.
Если вы разрабатываете Savify, установите пакет pip локально, чтобы можно было внести и протестировать изменения. Из корневого каталога запустите:
$ pip install -e .
Затем вы можете запустить модуль Python:
$ savify
Этот пакет был создан с помощью Cookiecutter и шаблона проекта audreyr/cookiecutter-pypackage.