Savify é uma biblioteca python que baixa músicas de um provedor selecionado (por padrão, YouTube) e, em seguida, extrai as metainformações do Spotify. A partir de uma consulta, o Savify encontrará e baixará músicas em formato mp3 com qualidade de até 320 kb/s ! O aplicativo também irá copiar e escrever tags id3v2 em todas as suas músicas. As tags incluem título, artistas, ano, álbum e até capa!
Savify oferece suporte a todos os links de faixas, álbuns e listas de reprodução do Spotify. Além disso, existe uma função de pesquisa integrada , portanto, mesmo que você não tenha o link do Spotify, basta inserir o nome da música e o Savify fará o download!
Além do mp3, o Savify também pode baixar e converter para outros tipos de arquivo. Dentro do aplicativo, você pode especificar em qual formato e qualidade deseja baixar a música para obter compatibilidade máxima em todos os seus dispositivos. Formatos disponíveis: mp3, aac, flac, m4a, opus, vorbis e wav. Tags e capas serão aplicadas apenas a músicas baixadas em formato mp3.
Observe que esta biblioteca não vai contra os TOS do Spotify de forma alguma, as músicas não são extraídas diretamente do Spotify, mas são baixadas de outras fontes, como YouTube e Soundcloud, usando a biblioteca python youtube-dl. O Spotify é usado apenas para coletar metainformações precisas para serem incorporadas aos arquivos de músicas baixados.
Visite nosso repositório oficial de imagens do Docker Hub e obtenha a imagem mais recente do Docker: https://hub.docker.com/repository/docker/laurencerawlings/savify
Qualquer dúvida ou feedback entre no Discord Server
Savify depende da biblioteca FFmpeg de código aberto para converter e gravar metadados nas músicas que baixa. Certifique-se de que o FFmpeg esteja instalado no seu computador e adicionado ao System PATH. Siga o tutorial aqui.
Se você quiser usar o Savify para baixar playlists pessoais do Spotify, certifique-se de que sua visibilidade esteja definida como ‘Pública’. Isso ocorre para que o Savify possa usar a API do Spotify para recuperar os detalhes da música da sua playlist.
Se você estiver no Windows, poderá baixar o pacote executável pré-compactado mais recente (que eu recomendo, pois você não precisará fornecer uma chave de API Savify) ou poderá baixar a biblioteca python e executar o módulo diretamente usando a CLI.
Clique aqui para baixar o Savify.exe mais recente e certifique-se de ter:
FFmpeg baixado e adicionado ao seu caminho
Credenciais da API Spotify adicionadas às suas variáveis de ambiente
É isso, você deve estar pronto para ir! Veja alguns exemplos de uso abaixo.
$ pip install -U savify
Clone o repositório e certifique-se de estar no diretório raiz. Execute o seguinte comando de construção:
$ docker build -t savify:dev .
Atualmente, o Savify suporta apenas URLs e consultas de pesquisa do Spotify, no entanto, o suporte para URIs do Spotify será adicionado no futuro.
Se você baixou o Savify.exe mais recente da página de lançamentos, abra seu terminal e navegue até o mesmo diretório do binário, então você pode executar:
$ Savify.exe
Se você estiver usando o pacote Python e o savify estiver instalado em seus pacotes de sites e sua pasta pip estiver em seu PATH (que deveria estar por padrão), de qualquer lugar você pode simplesmente executar:
$ savify
Para obter ajuda, execute:
$ savify --help
Usando o padrão acima:
$ savify "https://open.spotify.com/track/4Dju9g4NCz0LDxwcjonSvI"
Especificando suas próprias opções:
$ savify "https://open.spotify.com/track/4Dju9g4NCz0LDxwcjonSvI" -q best -f mp3 -o "/path/to/downloads" -g "%artist%/%album%"
Com uma consulta de pesquisa:
$ savify "You & I - Bru-C" -t track -q best -f mp3 -o "/path/to/downloads" -g "%artist%/%album%"
Variáveis disponíveis: %artist%, %album%, %playlist%
Por exemplo:
$ savify "You & I - Bru-C" -o /path/to/downloads -g "%artist%/%album%"
Seria baixado na seguinte estrutura de diretórios:
/caminho/para/downloads | |- /Bru-C | |- /Sons Originais | |- Bru-C - Você e eu.mp3
Tipo de consulta: | acompanhar |
---|---|
Qualidade: | melhor |
Formatar: | mp3 |
Caminho: | Windows: HOME/AppData/Roaming/Savify/downloads Linux: HOME/.local/share/Savify/downloads MacOS: HOME/Biblioteca/Suporte a aplicativos/Savify/downloads |
Agrupamento: | sem agrupamento |
Para mais exemplos de uso, leia a documentação.
Execute savify dentro de um contêiner que também pode ser conectado a redes de outros contêineres. Isso é útil se você deseja executar várias instâncias do savify e/ou usar VPNs para download. Você pode usar sua imagem Docker criada por você mesmo ou a imagem oficial. Certifique-se de usar o nome e a tag corretos da imagem do Docker.
$ docker run laurencerawlings/savify:latest
Se nenhum argumento for especificado, o contêiner imprimirá a página de ajuda. Simplesmente anexe seus argumentos, certifique-se de montar uma pasta do seu host para que os downloads sejam persistentes ( -v
) - pwd
é usado para montar o diretório atual em que você está - e remova o contêiner quando terminar ( --rm
). Você deve especificar seu ID de cliente Spotify e segredo usando variáveis de ambiente ( -e
):
$ docker run --rm -v "`pwd`:/root/.local/share/Savify/downloads" -e SPOTIPY_CLIENT_ID=client_id -e SPOTIPY_CLIENT_SECRET = segredo_do_cliente laurencerawlings/savify:mais recente "https://open.spotify.com/playlist/..."
Se quiser preservar seus logs, você pode montar o diretório de log simplesmente adicionando o seguinte argumento ao comando docker run: -v "./logs:/root/.local/share/Savify/logs"
Automatize com um script de shell:
$ nano savify.sh
#!/bin/bashdocker execute --rm -v "`pwd`:/root/.local/share/Savify/downloads" -e SPOTIPY_CLIENT_ID=client_id -e SPOTIPY_CLIENT_SECRET = segredo_do_cliente laurencerawlings/savify:último $1
Então execute com:
$ sh savify.sh "https://open.spotify.com/track/4Dju9g4NCz0LDxwcjonSvI"
Você também tem a opção de iniciar rapidamente usando nosso script docker, que possui uma verificação de VPN integrada para ver se há algum contêiner VPN ao qual o script possa se conectar. O script é perfeito para ser agendado com cron:
$ wget https://github.com/laurencerawlings/savify/latest/download/savify-docker-scripts.zip $ descompacte savify-docker-scripts.zip && rm savify-docker-scripts.zip $ cd savify-docker-scripts/
Você então deve editar o arquivo de configuração com seu editor de texto preferido (preferimos nano), salvá-lo (Ctrl + X, Y para salvar as alterações no nano) e renomeá-lo para config.sh
.
$ nano modelo.config.sh $ mv template.config.sh config.sh
Você pode então executar o script:
$ bash download em massa.sh
Para usar o módulo Savify Python, você precisará de seu próprio aplicativo de desenvolvedor Spotify para acessar sua API. Para fazer isso cadastre-se aqui. Quando você fizer um novo aplicativo, anote seu ID e segredo do cliente. Você pode passar o id e o segredo para o Savify de duas maneiras:
Agora você precisa adicionar 2 variáveis de ambiente ao seu sistema:
SPOTIPY_CLIENT_ID
SPOTIPY_CLIENT_SECRET
Para descobrir como fazer isso, encontre um tutorial online para o seu sistema operacional específico. Depois de fazer isso, reinicie o shell.
Você pode passar seu id e segredo usando uma tupla ao criar seu objeto Savify:
s = Savify(api_credentials=("CLIENT_ID","CLIENT_SECRET"))
Instale o pacote em seu ambiente:
$ pip install savify
Importe e use Savify:
from savify import Savifyfrom savify.types import Type, Format, Qualitys = Savify()# Spotify URLs.download("SPOTIFY URL")# Consulta de pesquisa# Tipos: TRACK, ALBUM, PLAYLISTs.download("QUERY", query_type=Type. ACOMPANHAR)
Savify argumentos opcionais do construtor (veja os padrões acima):
registro de importação de savify importar Savify de savify.types importar Tipo, Formato, Qualidade de savify.utils importar PathHolder # Opções de qualidade: PIOR, Q32K, Q96K, Q128K, Q192K, Q256K, Q320K, MELHOR # Opções de formato: MP3, AAC, FLAC, M4A, OPUS, VORBIS, WAV Savify(api_credentials=Nenhum, qualidade=Qualidade.BEST, download_format=Format.MP3, path_holder=PathHolder(downloads_path='path/for/downloads'), group='%artist%/%album%', quiet=False, skip_cover_art =Falso, log_level=logging.INFO)
Personalizando manualmente as opções do youtube-dl:
from savify import Savifyoptions = {'cookiefile': 'cookies.txt'}Savify(ydl_options=options)
Passando seu próprio logger:
from savify import Savifyfrom savify.logger import Loggerlogger = Logger(log_location='path/for/logs', log_level=None) # Silent outputSavify(logger=logger)
O argumento group é usado para classificar as músicas baixadas dentro do caminho de saída. As variáveis possíveis para a string do caminho são: %artist%, %album% e %playlist%. As variáveis são substituídas pelos metadados das músicas. Por exemplo, uma música baixada com o objeto Savify acima seria salva em um caminho como este: path/for/downloads/Example Artist/Example Album/Example Song.mp3
Se você quiser tentar adicionar ao Savify, use as instruções aqui. A partir daí, você pode fazer quaisquer acréscimos que achar que tornariam o Savify melhor.
Se você estiver desenvolvendo o Savify, instale o pacote pip localmente para poder fazer e testar suas alterações. No diretório raiz, execute:
$ pip install -e .
Você pode então executar o módulo Python:
$ savify
Este pacote foi criado com Cookiecutter e o modelo de projeto audreyr/cookiecutter-pypackage.