Savify es una biblioteca de Python que descarga canciones de un proveedor seleccionado (por defecto, YouTube) y luego extrae la metainformación de Spotify. Si realiza una consulta, Savify buscará y descargará canciones en formato mp3 con una calidad de hasta 320 kb/s . La aplicación también extraerá y escribirá etiquetas id3v2 en todas tus canciones. Las etiquetas incluyen título, artistas, año, álbum e incluso portada.
Savify admite todos los enlaces de pistas, álbumes y listas de reproducción de Spotify. Además, hay una función de búsqueda integrada , por lo que incluso si no tienes el enlace de Spotify, puedes simplemente ingresar el nombre de la canción y Savify la descargará.
Además de mp3, Savify también puede descargar y convertir a otros tipos de archivos. Dentro de la aplicación, puedes especificar en qué formato y calidad deseas descargar la canción para lograr la máxima compatibilidad en todos tus dispositivos. Formatos disponibles: mp3, aac, flac, m4a, opus, vorbis y wav. Las etiquetas y carátulas solo se aplicarán a las canciones descargadas en formato mp3.
Tenga en cuenta que esta biblioteca no va en contra de los TOS de Spotify de ninguna manera, las canciones no se extraen directamente de Spotify, sino que se descargan de otras fuentes como YouTube y Soundcloud utilizando la biblioteca youtube-dl python. Spotify solo se utiliza para recopilar metainformación precisa que se incluirá en los archivos de canciones descargados.
Visite nuestro repositorio de imágenes oficial de Docker Hub y obtenga la imagen de Docker más reciente: https://hub.docker.com/repository/docker/laurencerawlings/savify
Cualquier duda o comentario únete al Servidor de Discord
Savify se basa en la biblioteca FFmpeg de código abierto para convertir y escribir metadatos en las canciones que descarga. Asegúrese de que FFmpeg esté instalado en su computadora y agregado a la RUTA del sistema. Sigue el tutorial aquí.
Si desea utilizar Savify para descargar listas de reproducción personales de Spotify, asegúrese de que su visibilidad esté configurada como "Pública". Esto es para que Savify pueda usar la API de Spotify para recuperar los detalles de la canción de su lista de reproducción.
Si está en Windows, puede descargar el último paquete ejecutable precompactado (lo cual recomiendo ya que no tendrá que proporcionar una clave API de Savify), o puede descargar la biblioteca de Python y ejecutar el módulo directamente usando la CLI.
Vaya aquí para descargar la última versión de Savify.exe y luego asegúrese de tener:
FFmpeg se descargó y se agregó a su ruta
Credenciales de la API de Spotify agregadas a sus variables de entorno
Eso es todo, ¡deberías estar listo para comenzar! Vea algunos ejemplos de uso a continuación.
$ pip install -U savify
Clona el repositorio y asegúrate de estar en el directorio raíz. Ejecute el siguiente comando de compilación:
$ docker build -t savify:dev .
Actualmente, Savify solo admite consultas de búsqueda y URL de Spotify; sin embargo, en el futuro se agregará compatibilidad con URI de Spotify.
Si ha descargado el último Savify.exe desde la página de versiones, abra su terminal y navegue hasta el mismo directorio que el binario, luego podrá ejecutar:
$ Savify.exe
Si está utilizando el paquete Python y savify está instalado en los paquetes de su sitio y su carpeta pip está en su RUTA (que debería estar de forma predeterminada), desde cualquier lugar simplemente puede ejecutar:
$ savify
Para obtener ayuda, ejecute:
$ savify --help
Usando el valor predeterminado anterior:
$ savify "https://open.spotify.com/track/4Dju9g4NCz0LDxwcjonSvI"
Especificando sus propias opciones:
$ savify "https://open.spotify.com/track/4Dju9g4NCz0LDxwcjonSvI" -q best -f mp3 -o "/path/to/downloads" -g "%artist%/%album%"
Con una consulta de búsqueda:
$ savify "You & I - Bru-C" -t track -q best -f mp3 -o "/path/to/downloads" -g "%artist%/%album%"
Variables disponibles: %artist%, %album%, %playlist%
Por ejemplo:
$ savify "You & I - Bru-C" -o /path/to/downloads -g "%artist%/%album%"
Se descargaría en la siguiente estructura de directorios:
/ruta/a/descargas | |- /Bru-C | |- /Sonidos Originales | |- Bru-C - Tú y yo.mp3
Tipo de consulta: | pista |
---|---|
Calidad: | mejor |
Formato: | mp3 |
Camino: | Windows: INICIO/AppData/Roaming/Saviify/descargas Linux: INICIO/.local/share/Savify/descargas MacOS: INICIO/Biblioteca/Soporte de aplicaciones/Savify/descargas |
Agrupamiento: | sin agrupación |
Para obtener más ejemplos de uso, lea los documentos.
Ejecute savify dentro de un contenedor que también se puede conectar a las redes de otros contenedores. Esto es útil si desea ejecutar varias instancias de savify y/o desea utilizar VPN para descargar. Puede utilizar la imagen de Docker que haya creado usted mismo o la oficial. Asegúrese de utilizar la etiqueta y el nombre de imagen de Docker correctos.
$ docker run laurencerawlings/savify:latest
Si no se especifica ningún argumento, el contenedor imprimirá la página de ayuda. Simplemente agregue sus argumentos, asegúrese de montar una carpeta desde su host para que las descargas sean persistentes ( -v
) - pwd
se usa para montar el directorio actual en el que se encuentra - y elimine el contenedor cuando haya terminado ( --rm
). Debe especificar su ID de cliente de Spotify y su secreto utilizando variables de entorno ( -e
):
$ ventana acoplable ejecutar --rm -v "`pwd`:/root/.local/share/Savify/downloads" -e SPOTIPY_CLIENT_ID=id_cliente -e SPOTIPY_CLIENT_SECRET=secreto_cliente laurencerawlings/savify:último "https://open.spotify.com/playlist/..."
Si desea conservar sus registros, puede montar el directorio de registro simplemente agregando el siguiente argumento al comando de ejecución de Docker: -v "./logs:/root/.local/share/Savify/logs"
Automatizar con un script de shell:
$ nano savify.sh
#!/bin/bashdocker run --rm -v "`pwd`:/root/.local/share/Saviify/downloads" -e SPOTIPY_CLIENT_ID=id_cliente -e SPOTIPY_CLIENT_SECRET=secreto_cliente laurencerawlings/savify:último $1
Luego ejecuta con:
$ sh savify.sh "https://open.spotify.com/track/4Dju9g4NCz0LDxwcjonSvI"
También tiene la opción de iniciar rápidamente utilizando nuestro script de Docker que tiene una verificación de VPN integrada para ver si hay algún contenedor VPN al que se pueda conectar el script. El script es perfecto para programarlo con cron:
$ wget https://github.com/laurencerawlings/savify/latest/download/savify-docker-scripts.zip $ descomprimir saviify-docker-scripts.zip && rm saviify-docker-scripts.zip $ cd savify-docker-scripts/
Luego debe editar el archivo de configuración con su editor de texto preferido (preferimos nano), guardarlo (Ctrl + X, Y para guardar los cambios en nano) y cambiarle el nombre a config.sh
.
$ nano plantilla.config.sh $ mv plantilla.config.sh config.sh
Luego puede ejecutar el script:
$ bash descarga masiva.sh
Para utilizar el módulo Savify Python, necesitará su propia aplicación de desarrollador de Spotify para acceder a su API. Para hacer esto regístrate aquí. Cuando haya creado una nueva aplicación, tome nota de su identificación de cliente y su secreto. Puedes pasar el id y el secreto a Savify de dos maneras:
Ahora necesitas agregar 2 variables de entorno a tu sistema:
SPOTIPY_CLIENT_ID
SPOTIPY_CLIENT_SECRET
Para saber cómo hacer esto, busque un tutorial en línea para su sistema operativo específico. Una vez que haya hecho esto, asegúrese de reiniciar su shell.
Puedes pasar tu identificación y secreto usando una tupla al crear tu objeto Savify:
s = Savify(api_credentials=("CLIENT_ID","CLIENT_SECRET"))
Instale el paquete en su entorno:
$ pip install savify
Importar y utilizar Savify:
from savify import Savifyfrom savify.types import Tipo, formato, calidades = Savify()# Spotify URLs.download("SPOTIFY URL")# Consulta de búsqueda# Tipos: PISTA, ÁLBUM, PLAYLISTs.download("CONSULTA", query_type=Tipo. PISTA)
Savify argumentos opcionales del constructor (consulte los valores predeterminados más arriba):
importar registro desde savafy importar Savify desde savify.types importar Tipo, Formato, Calidad desde savify.utils importar PathHolder # Opciones de calidad: PEOR, Q32K, Q96K, Q128K, Q192K, Q256K, Q320K, MEJOR # Opciones de formato: MP3, AAC, FLAC, M4A, OPUS, VORBIS, WAV Savify(api_credentials=Ninguno, calidad=Calidad.BEST, download_format=Format.MP3, path_holder=PathHolder(downloads_path='ruta/para/descargas'), grupo='%artista%/%album%', quiet=False, skip_cover_art =Falso, log_level=logging.INFO)
Personalización manual de las opciones de youtube-dl:
de savify import Savifyoptions = {'cookiefile': 'cookies.txt'}Savify(ydl_options=options)
Pasando su propio registrador:
from savify import Savifyfrom savify.logger import Loggerlogger = Logger(log_location='ruta/para/logs', log_level=None) # Salida silenciosaSavify(logger=logger)
El argumento de grupo se utiliza para ordenar las canciones descargadas dentro de la ruta de salida. Las posibles variables para la cadena de ruta son: %artista%, %álbum% y %playlist%. Las variables se reemplazan con los metadatos de las canciones. Por ejemplo, una canción descargada con el objeto Savify anterior se guardaría en una ruta como esta: ruta/para/descargas/Artista de ejemplo/Álbum de ejemplo/Canción de ejemplo.mp3
Si quieres intentar agregar a Savify, sigue las instrucciones aquí. Desde allí puedes hacer cualquier adición que creas que mejoraría Savify.
Si está desarrollando Savify, instale el paquete pip localmente para poder realizar y probar los cambios. Desde el directorio raíz ejecute:
$ pip install -e .
Luego puede ejecutar el módulo Python:
$ savify
Este paquete fue creado con Cookiecutter y la plantilla de proyecto audreyr/cookiecutter-pypackage.