Autor Tema: Streamrip: Nueva aplicación por línea de comandos para descargar desde Tidal,...  (Leído 1194 veces)

efectozero

  • 100+
  • ***
  • Mensajes: 185
Buenas tardes,

Acabo de descargar esta aplicación (aunque en verdad es de trabajo en terminal) y parece que va muy bien. Al parecer funciona con Qobuz, Tidal, Deezer y SoundCloud. Se puede usar tanto para Windows como para Mac.
LA he conseguido instalar, pero a la hora de ejecutarla no consigo poner bien los comandos.
Si alguno se maneja con este tipo de apps en terminal, en MacOS, y me da un poco de luz, lo invito a unas birras.  ;D ;D

Aquí el proyecto: https://github.com/nathom/streamrip

Se que está funcionando porque pude instalar python, y me devuelve los valores correctos al ver la versión, pero no consigo configurar lo del directorio de descarga, calidad de conversión, configuración, etc.
Tu foro de Audifonos Auriculares Headphones HIFI www.auriculares-hifi.com

pobre4hifi

  • 100+
  • ***
  • Mensajes: 237
Eso mismo lo lleva haciendo tidal-dl desde hace años, no?
Y también está qobuz-dl para Qobuz...

efectozero

  • 100+
  • ***
  • Mensajes: 185
Exacto,

lo que me parece es que esta se actualiza más a menudo y maneja varias plataformas de musica por streaming a la vez. De todas formas tampoco lo he conseguido con tidal-dl.
Necesito un manual para torpes  :(. Instalo librerías y todo ese rollo, pero cuando empiezo con los comandos del propio programa me pierdo
Tu foro de Audifonos Auriculares Headphones HIFI www.auriculares-hifi.com

efectozero

  • 100+
  • ***
  • Mensajes: 185
Estas son las opciones de ayuda que me devuelve el programa al escribir: rip -help. Pero de aquí no se como llegar a descargar mi música  :( :(. Me imagino que no debe ser muy complicado, pero mi época de MS-DOS quedó muy atrás  ;D ;D

Options:
--version      Show the version and exit.

--config-path PATH     Path to the configuration file
-f, --folder DIRECTORY      The folder to download items into.
-nab, --no-db     Download items even if they have been logged in the database

-Q, --quality INTEGER RANGE The maximum quality allowed to download
[0<=x<=4]
-c, --codec TEXT
Convert the downloaded files to an audio codec
(ALAC, FLAC, MP3, AAC, or OGG)
--no-progress     Do not show progress bars
-V, --verbose      Enable verbose output (debug mode)
--help     Show this message and exit.



Commands:
config      Manage configuration files.

database     View and modify the downloads and failed downloads databases.

file        Download content from URLs in a file.

id        Download an item by ID.

lastfm       Download tracks from a last.fm playlist.

search        Search for content using a specific source.

url             Download content from URLs.
Tu foro de Audifonos Auriculares Headphones HIFI www.auriculares-hifi.com

LETRA

  • 250+
  • ****
  • Mensajes: 413
Buenas tardes,

Acabo de descargar esta aplicación (aunque en verdad es de trabajo en terminal) y parece que va muy bien. Al parecer funciona con Qobuz, Tidal, Deezer y SoundCloud. Se puede usar tanto para Windows como para Mac.
LA he conseguido instalar, pero a la hora de ejecutarla no consigo poner bien los comandos.
Si alguno se maneja con este tipo de apps en terminal, en MacOS, y me da un poco de luz, lo invito a unas birras.  ;D ;D

Aquí el proyecto: https://github.com/nathom/streamrip

Se que está funcionando porque pude instalar python, y me devuelve los valores correctos al ver la versión, pero no consigo configurar lo del directorio de descarga, calidad de conversión, configuración, etc.

Has tenido suerte, porque de muchas cosas que se comentan en el foro yo no tengo conocimientos, pero de software, y entre otros de este tipo de software, sí que sé bastante. Llevo usando estas apps desde hace siete años...

Vamos a ver, aunque uso qobuz-dl porque es mucho más completo en el etiquetado, y con stream rip en Tidal vas a tener un montón de campos vacíos, además de problemas con las portadas y otras cosas que se descarga en mp3 en vez de en flac, te puedo decir cómo se configura. En el mac yo lo tengo en esta ruta:

~/Library/Application Support/streamrip/config.toml

Abres el archivo con el BBEdit por ejemplo, metes los parámetros y listo.

Y luego para descargar me parece que era rip seguido de la url del álbum en el servicio de streaming que uses.

Saludos.

efectozero

  • 100+
  • ***
  • Mensajes: 185
Muchísimas gracias compañero,

Que suerte tener a alguien que controle en el tema. Ayuda muchísimo. Si no te importa te envío un privado para comentarte.

Saludos
Tu foro de Audifonos Auriculares Headphones HIFI www.auriculares-hifi.com

LETRA

  • 250+
  • ****
  • Mensajes: 413
Muchísimas gracias compañero,

Que suerte tener a alguien que controle en el tema. Ayuda muchísimo. Si no te importa te envío un privado para comentarte.

Saludos

Hola. No he recibido el DM, pero encantado de responderte, tanto si son cuestiones que prefieres hablar en privado, como si son preguntas que se pueden comentar en el hilo por si a alguien más le pueden servir de ayuda.

Un saludo

efectozero

  • 100+
  • ***
  • Mensajes: 185
Buenos días,

tienes razón, quizás alguien más está interesado en la configuración del programa y le puede ayudar. En ese sentido, son programas minoritarios, de los que poca info se encuentra en la red (yo al menos no he encontrado casi nada, ni buscando en head-fi). Yo pensaba escribirte por privado por si no era de interés por aquí, pero seguro que no somos los únicos que les puede interesar este tema.

Al toro  ;D,  he podido comprobar que el fichero de configuración que comentas, está en la misma ruta que dijiste en mi Mac también. He abierto con TextEdit el fichero config.toml y la información que aparece desanima a cualquiera.
Entiendo que ahí es donde se deben de poner todos los "parámetros" que quiero para el programa.

Mi idea es en principio (si me animo y lo voy entendiendo más, después tocaría más opciones) descargar album enteros en mp3 (sacrilegio  ;D ;D) para llevármelos al coche. Aunque no "incrustara" las portadas, (comentas que es un problema) no sería problema, porque para el coche no me hace falta

Veo que la mayor parte del texto tiene en la primera línea de cada párrrafo "#", no se si es como cuando programaba en Fortran jajaja  que se ponía eso para que "no leyera" esa línea el programa.

Aparece esto donde está descargas:
folder = "/Users/jesusgomez/StreamripDownloads"

Pero por ejemplo voy a buscar esa carpeta y no está en el Mac. Lo dicho muy perdido.

Otra duda que me asalta es en donde aparece la información de Tidal, ¿no debo poner ninguna info de mi suscripción?(Tengo Tidal HiFi Plus). 

EN las líneas de Tidal aparece todo esto:

[tidal]
# 0: 256kbps AAC, 1: 320kbps AAC, 2: 16/44.1 "HiFi" FLAC, 3: 24/44.1 "MQA" FLAC
quality = 3
# This will download videos included in Video Albums.
download_videos = true

# Do not change any of the fields below
user_id = ""
country_code = ""
access_token = ""
refresh_token = ""
# Tokens last 1 week after refresh. This is the Unix timestamp of the expiration
# time. If you haven't used streamrip in more than a week, you may have to log
# in again using `rip config --tidal`
token_expiry = ""

Otra cosa, en la parte de [conversion] entiendo que tendría que cambiar codec = "ALAC" por codec = "MP3"


Gracias por la ayuda

Tu foro de Audifonos Auriculares Headphones HIFI www.auriculares-hifi.com

LETRA

  • 250+
  • ****
  • Mensajes: 413
Buenos días,

tienes razón, quizás alguien más está interesado en la configuración del programa y le puede ayudar. En ese sentido, son programas minoritarios, de los que poca info se encuentra en la red (yo al menos no he encontrado casi nada, ni buscando en head-fi). Yo pensaba escribirte por privado por si no era de interés por aquí, pero seguro que no somos los únicos que les puede interesar este tema.

Buenos días. Creo que te lo puedo solucionar todo. Lo de que son programas minoritarios es porque la curva de aprendizaje está hecha así a propósito, para que no se popularicen y a las plataformas no les rente hacer lo que sería un cambio total de su infraestructura. Pero vamos por partes con tu mensaje.

Al toro  ;D,  he podido comprobar que el fichero de configuración que comentas, está en la misma ruta que dijiste en mi Mac también. He abierto con TextEdit el fichero config.toml y la información que aparece desanima a cualquiera.
Entiendo que ahí es donde se deben de poner todos los "parámetros" que quiero para el programa.

No utilices nunca Text Edit para editar archivos de configuración porque no respeta el formato original de los retornos de carro (sic) que en los archivos de configuración suelen estar en formato UNIX y Text Edit los cambia al formato de Apple. O te cambia la extensión del archivo a txt o rtf. Eso hace que la app no lea el archivo. Bájate BBEdit de la App Store, que es un editor para programadores gratuito y que tiene muchas funciones que luego te pueden servir para diversas cosas.


Mi idea es en principio (si me animo y lo voy entendiendo más, después tocaría más opciones) descargar album enteros en mp3 (sacrilegio  ;D ;D) para llevármelos al coche. Aunque no "incrustara" las portadas, (comentas que es un problema) no sería problema, porque para el coche no me hace falta

Veo que la mayor parte del texto tiene en la primera línea de cada párrrafo "#", no se si es como cuando programaba en Fortran jajaja  que se ponía eso para que "no leyera" esa línea el programa.

Sí, eso es común a casi todas las apps que tienen un archivo de configuración transparente para el usuario en texto plano. Se pone así para diferenciar las líneas con comentarios sobre la configuración de los parámetros en sí, que son órdenes directas a la aplicación.

Aparece esto donde está descargas:
folder = "/Users/jesusgomez/StreamripDownloads"

Pero por ejemplo voy a buscar esa carpeta y no está en el Mac. Lo dicho muy perdido.

Tienes que crear esa carpeta. Puedes hacerlo desde el finder o desde la terminal con el comando:
Código: [Seleccionar]
mkdir /Users/jesusgomez/StreamripDownloads
O
Código: [Seleccionar]
mkdir ./StreamripDownloads

También puedes cambiarle el nombre a esa carpeta o la ubicación, si por ejemplo tienes poco espacio en el disco y prefieres ubicarla en un hdd externo. En tal caso sería algo así como
Código: [Seleccionar]
/Volumes/nombre_del_hdd/carpeta_de_descarga
Puedes verlo en el finder fácilmente.

Otra duda que me asalta es en donde aparece la información de Tidal, ¿no debo poner ninguna info de mi suscripción?(Tengo Tidal HiFi Plus).


Me parece que en streamrip cuando vayas a descargar de Tidal y pongas por ejemplo rip url https://tidal.com/browse/album/147569387 te va a salir en el terminal un mensaje para que abras una dirección en el navegador, hagas login y entonces te salga un código numérico que tienes que poner en el terminal. Me parece que era así, pero no estoy seguro porque ni uso streamrip, ni uso Tidal. En cualquier caso lo vemos cuando consigas arrancar el programa.

EN las líneas de Tidal aparece todo esto:

[tidal]
# 0: 256kbps AAC, 1: 320kbps AAC, 2: 16/44.1 "HiFi" FLAC, 3: 24/44.1 "MQA" FLAC
quality = 3
# This will download videos included in Video Albums.
download_videos = true

Esto es muy fácil aunque no lo parezca. Las líneas comentadas te están dando la información de los parámetros que tienes que introducir. Por ejemplo "quality = 3" es el tipo de archivo en el que quieres realizar las descargas. "3" sería FLAC (lo pone arriba). Para mp3 no parece que en Tidal haya una opción, porque la 1 y la 2 son en formato AAC, que no sé si lo podrás usar en el coche. Si esa es tu intención quizás tengas que descargar en FLAC y luego utilizar un conversor de audio externo o el de la propia aplicación por el que preguntas más abajo.

El siguiente parámetro es habitual en los archivos de configuración. Hay órdenes que pueden ser "true" o "false". Si quieres descargar los vídeos de Tidal asociados al álbum (cuando estén disponibles) déjalo en "true". Si no quieres bajarlos pon "false".

Una cosa importante al editar archivos de configuración. Cualquier cambio respecto al original en espacios, mayúsculas, sintaxis varias, da luego error en el programa. Hay que editar con mucho cuidado salvando los cambios en cada paso que des y estés seguro de que lo has realizado correctamente. Si pones "False" con mayúscula por ejemplo, la app te va a dar error al iniciarse y te va a arrojar un mensaje con el número de línea del archivo de configuración en el que se ha producido ese error. Entonces tendrías que volver a abrir el archivo con BBEdit, marcar la opción para que muestre los números de línea en el lateral de la ventana, ir a la línea que te dice que se ha producido el fallo y corregirlo. Pero a veces no es tan fácil porque el mensaje de error despista. Por eso ten siempre una copia de seguridad de los archivos que modifiques.

# Do not change any of the fields below
user_id = ""
country_code = ""
access_token = ""
refresh_token = ""
# Tokens last 1 week after refresh. This is the Unix timestamp of the expiration
# time. If you haven't used streamrip in more than a week, you may have to log
# in again using `rip config --tidal`
token_expiry = ""

En esta parte no hay que tocar nada. Te lo está diciendo en la línea comentada: # Do not change any of the fields below

Otra cosa, en la parte de [conversion] entiendo que tendría que cambiar codec = "ALAC" por codec = "MP3"

Gracias por la ayuda

Sí, y por si acaso cambiar sampling_rate = 48000 a sampling_rate = 44100, aunque nunca he utilizado esa opción y no encuentro información en Google al respecto, y bit_depth = 24 a bit_depth = 16, eso sí, seguro.

Saludos.

efectozero

  • 100+
  • ***
  • Mensajes: 185
Buenas,

Muchas gracias por el manual de primeros pasos.

Ya creé el directorio e hice las modificaciones con el BBEDIT. En principio todo bien y hace la llamada a la búsqueda del album, pero me lanza error:

Last login: Sat Feb 10 13:45:47 on ttys000
jesusgomez@Jesuss-MacBook-Air ~ % rip url https://tidal.com/browse/album/334512189
╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packa │
│ ges/aiohttp/connector.py:992 in _wrap_create_connection                      │
│                                                                              │
│    989 │   │   │   async with ceil_timeout(                                  │
│    990 │   │   │   │   timeout.sock_connect, ceil_threshold=timeout.ceil_thr │
│    991 │   │   │   ):                                                        │
│ ❱  992 │   │   │   │   return await self._loop.create_connection(*args, **kw │
│    993 │   │   except cert_errors as exc:                                    │
│    994 │   │   │   raise ClientConnectorCertificateError(req.connection_key, │
│    995 │   │   except ssl_errors as exc:                                     │
│                                                                              │
│ /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/ba │
│ se_events.py:1103 in create_connection                                       │
│                                                                              │
│                           ... 2 frames hidden ...                            │
│                                                                              │
│ /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/ss │
│ lproto.py:188 in feed_ssldata                                                │
│                                                                              │
│ /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/ssl.py:975 │
│ in do_handshake                                                              │
│                                                                              │
│    972 │                                                                     │
│    973 │   def do_handshake(self):                                           │
│    974 │   │   """Start the SSL/TLS handshake."""                            │
│ ❱  975 │   │   self._sslobj.do_handshake()                                   │
│    976 │                                                                     │
│    977 │   def unwrap(self):                                                 │
│    978 │   │   """Start the SSL shutdown handshake."""                       │
╰──────────────────────────────────────────────────────────────────────────────╯
SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify
failed: unable to get local issuer certificate (_ssl.c:997)

The above exception was the direct cause of the following exception:

╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /Library/Frameworks/Python.framework/Versions/3.10/bin/rip:8 in <module>     │
│                                                                              │
│   5 from streamrip.rip import rip                                            │
│   6 if __name__ == '__main__':                                               │
│   7 │   sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])     │
│ ❱ 8 │   sys.exit(rip())                                                      │
│   9                                                                          │
│                                                                              │
│ /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packa │
│ ges/click/core.py:1157 in __call__                                           │
│                                                                              │
│                           ... 19 frames hidden ...                           │
│                                                                              │
│ /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packa │
│ ges/aiohttp/connector.py:1204 in _create_direct_connection                   │
│                                                                              │
│   1201 │   │   │   )                                                         │
│   1202 │   │   │                                                             │
│   1203 │   │   │   try:                                                      │
│ ❱ 1204 │   │   │   │   transp, proto = await self._wrap_create_connection(   │
│   1205 │   │   │   │   │   self._factory,                                    │
│   1206 │   │   │   │   │   host,                                             │
│   1207 │   │   │   │   │   port,                                             │
│                                                                              │
│ /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packa │
│ ges/aiohttp/connector.py:994 in _wrap_create_connection                      │
│                                                                              │
│    991 │   │   │   ):                                                        │
│    992 │   │   │   │   return await self._loop.create_connection(*args, **kw │
│    993 │   │   except cert_errors as exc:                                    │
│ ❱  994 │   │   │   raise ClientConnectorCertificateError(req.connection_key, │
│    995 │   │   except ssl_errors as exc:                                     │
│    996 │   │   │   raise ClientConnectorSSLError(req.connection_key, exc) fr │
│    997 │   │   except OSError as exc:                                        │
╰──────────────────────────────────────────────────────────────────────────────╯
ClientConnectorCertificateError: Cannot connect to host auth.tidal.com:443
ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed: unable to get local issuer certificate
(_ssl.c:997)')]
Exception ignored in: <bound method BaseEventLoop.call_exception_handler of <_UnixSelectorEventLoop running=False closed=True debug=False>>
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py", line 1791, in call_exception_handler
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/logging/__init__.py", line 1506, in error
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/logging/__init__.py", line 1624, in _log
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/logging/__init__.py", line 1634, in handle
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/logging/__init__.py", line 1696, in callHandlers
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/logging/__init__.py", line 968, in handle
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/rich/logging.py", line 160, in emit
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/rich/logging.py", line 221, in render
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/rich/_log_render.py", line 43, in __call__
ImportError: sys.meta_path is None, Python is likely shutting down
jesusgomez@Jesuss-MacBook-Air ~ %


Ni idea si es un fallo de certificado o algo parecido.  Además al final me pone:  "Python is likely shutting down"

Entiendo por qué quieren que estos programas sean minoritarios jejeje.
Tu foro de Audifonos Auriculares Headphones HIFI www.auriculares-hifi.com

LETRA

  • 250+
  • ****
  • Mensajes: 413
Esperemos que no sea un fallo en la instalación de python porque darte las instrucciones para instalarlo correctamente, sobre una instalación realizada de forma errónea anteriromente, sería lo más difícil.

Lo que tienes que configurar primero es Tidal, que por lo que ahora he visto es como te decía, se te va a abrir una ventana en el navegador y ahí haces login, y para ello tienes que poner el siguiente comando en el terminal:

Código: [Seleccionar]
rip config --tidal
Y una vez configurado, vuelves a intentar el comando rip url https://tidal.com/browse/album/147569387

Un consejo con estas aplicaciones, y en general con todo lo que se puede instalar de Github y otros repositorios de software libre, es que bucees en las páginas de ayuda (que por ejemplo en la duda de Tidal te habría servido https://github.com/nathom/streamrip/wiki/Troubleshooting ) y en la pestaña de "Issues" a la que se accede desde la página principal del programa en Github y que en StreamRip estaría en https://github.com/nathom/streamrip/issues. Ahí se pueden realizar búsquedas de los fallos que aún permanecen en estado "open" (nadie ha contestado o no se ha solucionado el bug) y "closed" donde se ha cerrado el hilo al encontrarse la respuesta. Utilizando estos programas vas a tener que recurrir a las páginas de Github con frecuencia. Y más aún usando Tidal porque da fallos cada dos por tres, por ejemplo con las descargas en MQA o en 24bits, pero a lo mejor para los mp3 te va bien.

Saludos.

efectozero

  • 100+
  • ***
  • Mensajes: 185
No me pareció que me diera errror al instalar python, pero entre todos los mensajes que me salieron, a saber jejeje.
A ver si lo vuelvo a intentar, pero lo estoy viendo bastante complicado. Estoy viejo ya para estos trasteos. Muchísimas gracias de todas formas por la ayuda.

Saludos
Tu foro de Audifonos Auriculares Headphones HIFI www.auriculares-hifi.com

LETRA

  • 250+
  • ****
  • Mensajes: 413
No me pareció que me diera errror al instalar python, pero entre todos los mensajes que me salieron, a saber jejeje.
A ver si lo vuelvo a intentar, pero lo estoy viendo bastante complicado. Estoy viejo ya para estos trasteos. Muchísimas gracias de todas formas por la ayuda.

Saludos

Primero prueba rip config --tidal, haz login en Tidal, déjalo configurado y ya, si no te funciona, me preguntas si quieres.

efectozero

  • 100+
  • ***
  • Mensajes: 185
Conseguido 👏👏👏

El problema no era python, sino la última versión de streamrip que daba error al poner el comando rip config  --tidal y no permitía loguearme.
En los problemas vi que alguien comentaba que con la versión anterior de streamrip no daba ese problema y efectivamente pude loguearme y empezar a descargar.

Muchísimas gracias compañero, hubiese sido imposible sin tu ayuda echarlo a caminar.

PD.: Que maravilla descargar un disco en flac en segundos...maravilloso. He utilizado programas pi...tas para descargar y lo hacen reproduciendo en segundo plano el disco, vamos un coñazo, porque la descarga casi dura lo que el disco.
 
Tu foro de Audifonos Auriculares Headphones HIFI www.auriculares-hifi.com

Mrmojo

  • 1000+
  • *****
  • Mensajes: 1770
¿Sabéis si los discos en Dolby Atmos se pueden descargar?

Me gustaría guardarme una copia de mis discos favoritos en Atmos de Tidal para el Home Cinema por si en un futuro los quitan ya que no se encuentran en ningún otro sitio estas mezclas (salvo en Apple Music).

El Blue Train de Jhon Coltrane suena de miedo en multicnal.
« última modificación: Febrero 11, 2024, 12:37:08 pm por Mrmojo »