desktop

Tu propio Network-Music-Player o como reciclar una PC obsoleta

Para comprar música en mi dispositivo musical uso QBittorrent, se instala ultra fácil (automágicamente) y se gestiona desde una página web, recomendado.

Mi server con Mopidy anda un lujo, hace rato que no tengo problemas con Youtube ni con ningún otro servicio, estoy enamorado 🥰
 
Después de dar vueltas durante casi 6 años, finalmente pude migrar el NMP a este "simulador de disco IDE" que usa una SD-Card como medio de almacenamiento y que taaaantos problemas me dió hasta ahora.
Afortunadamente, lo primero que me ayudó fue un video de YouTube de un hombre que usando algo de ingeniería inversa y un descule importante de software, finalmente encontró cual es el problema de estos adaptadores, y es simple: están pensados para usarlos bajo Windows y nó bajo Linux 🤷‍♂️ . Les dejo el video para que quede de referencia por si alguien pretende hacer lo mismo que yo:
En este video hay un error importante, por que cuando se describe la partición FAT32 que es necesario crear (y formatear!!!) como primera partición primaria del "disco" SD, no le dá mucha bola al tamaño de la partición y comenta al pasar que con uno o dos MB alcanza por que el adaptador solo ocupa dos sectores más el de booteo. Pues esto está completamente mal ya que las particiones FAT32 deben tener un tamaño mínimo de alrededor de 300MB y la herramienta de formateo vfat que está en Linux se rehúsa a formatearla si es mas pequeña, así que hay que crear una partición FAT32 lo suficientemente grande (como a mí me re-sobra espacio en la SD-Card yo usé 500MB), y luego hay que crear las particiones normales para Linux, que en esta configuración había elegido todo el disco de 8GB para Linux excepto un espacio de 300MB para el archivo de swap...que nunca he usado....
Les dejo una foto de las particiones que tuve que crear usando el fdisk de Linux (acá lo muestro luego de iniciar el sistema con el nuevo "disco" y por eso aparece en el dispositivo /dev/sda, pero en las instrucciones siguientes las particiones van a aparecer en el dispositivo /dev/sdb por que tuve que manejar ambos discos a la vez).
80-particiones-SD-Card.jpg
Luego, antes de hacer mas nada y sin siquiera reiniciar la PC, hay que formatear la partición FAT32:
Bash:
sudo mkfs.fat /dev/sdb2 -s 8 -F 32
Donde -F 32 dice que forzozamente debe formatear en FAT32 y el -s 8 es para asegurarse que los clusters tengan 4K de capacidad...
Ahora apagamos la PC esperamos 10 segundos y volvemos a encenderla, ejecutamos el mismo comando
Bash:
sudo fdisk -l
Y nos tiene que mostrar las mismas particiones que teníamos antes mas las nuevas que hemos creado en la SD-Card, por que si reporta un error en la FAT de la SD, es que hemos hecho algo mal (partición muy chica o no hemos formateado).

Si todo fué OK, ahora hay que copiar la partición Linux del disco original (/dev/sda1 en mi caso) a la que será la nueva partición Linux en la SD-Card (/dev/sdb2) y para eso usamos el comando dd:
Bash:
sudo dd if=/dev/sda1 of=/dev/sdb2 bs=64K conv=sync,noerror
y esto se demorará un rato para copiar los 8GB originales a la nueva partición. Una vez que termine hay que preparar la SD-Card para que pueda bootear la copia del original pero ahora desde la tarjeta SD. Esto es un lío, así que recordando que el Linux original está en /dev/sda1 y la copia en la SD-Card está en /dev/sdb2 vamos a tirar los siguientes comandos exactamente como lo describo a continuación (el que tenga algo distinto deberá modificarlo en forma acorde):
Bash:
sudo mount /dev/sdb2 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
sudo grub-install /dev/sdb
sudo update-grub
y con eso la SD-Card queda lista para bootear la copia del Linux original
Ahora solo queda configurar el BIOS para probar el arranque desde la tarjeta SD, y si todo vá OK, ya pueden desconectar el HDD y reconfigurar el BIOS para el arranque correcto desde la SD.

Les dejo una foto del adaptador instalado y funcionando, y del HD ya completamente desconectado:
81-adaptador-SD-operando.jpg82-disco-ide-libre.jpg

PD-1: He dejado algunas cosas sin explicar por que yo reduje la partición de swap así que no pude "copiar" la original en la tarjeta SD. Por eso tuve que regenerar y activar manualmente la nueva partición de swap. Los comandos son fáciles, pero ahora la UUID de la partición de swap no va a conicidir con la que está en la copia de la tarjeta SD y vamos a tener que modificar el archivo fstab y colocarle la nueva UUID. Por lo demás, todo funcionó de una!!!!

PD-2: La velocidad de arranque de la PC es un poco más rápida con la tarjeta SD (pero solo UN POCO!!!). Lo que sí, ahora es completamente silenciosa si no fuera por el cooler de la fuente de alimentación, y el consumo de energía es completamente reducido (y). Ahora solo me queda imaginarme como corno voy a sujetar el adaptador al gabinete para que quede accesible y no haga ningún cortocircuito con el chaperío...
 
Última edición:
Hola estimados, estuve ausente mucho tiempo pero por un motivo agradable. Un motivo de 1,75m, 27 años (19 menos que yo, se los recomiendo enfáticamente como terapia, filosofía de vida, etc.), y otros atributos que no puedo mencionar porque me moderan... Pero como dice Vox Dei, todo tiene un final, todo termina.

También terminó el ciclo "stable" de Debian 11, dándole paso a Debian 12, codename "Bookworm", que es sin duda alguna la mejor versión de Debian y desde ahora la mejor opción GNU/Linux para escritorio. Para servidores era junto al recientemente fallecido Red Hat la mejor opción, a partir de ahora es la única. Aquí les dejo info para quienes quieran saber que pasó, perdón por el off topic:


Volviendo al topic, ahora que tengo un poco de tiempo decidí actualizar mi NMP a Debian 12, y mediante unos comandos bastante sencillos logré hacerlo -y esto es lo mejor- sin que falle un solo programa. La actualización fue perfecta. Desde hacía varios meses el plugin YTMUSIC de Mopidy había dejado de funcionar, pero como el tiempo ocioso lo ocupaba en cosas que no puedo mencionar porque me moderan, dejé de lado "los fierros" y no le daba mucha atención a las pcs, salvo por temas laborales claro está. Confieso que me hartó el poco interés por parte de los mantenedores del código del ecosistema Mopidy y en particular el plugin YTMusic, pero con tiempo ahora decidí volver a instalarlo (si, lo había eliminado) y darle otra oportunidad.
Debian tiene ahora un "blindaje" para que Python no rompa el sistema y no permite la instalación vía pip o pip3, sino que ofrece tres métodos:

-pipx
-ecosistema contenedor aislado
-saltarse todas las advertencias y forzar la instalación "antigua"

No voy a detallar los errores porque tendría que abrir un hilo nuevo sólo para YTMusic, pero en resumen tuve recurrir a la opción:

--break-system-packages

para poder instalar en modo servicio de sistema. YTMusic está cuasi abandonado creo porque no tuvo actividad el Git en los últimos 9 meses, sólo usuarios presentando "issues". Afortunadamente el problema es de la dependecia pytube que es la que descarga los datos desde el servicio de YTMusic de google. Y está solucionado en pytube 15.0.0, peeeeroooo... YTMusic es compatible con versiones viejas, siendo la última compatible la 12.1.3, de manera que es lo mismo que nada. Pero, luego de dos días de navegar mensajes de issues en GitHub, hallé uno donde decían que lo que había solucionado la falla era una actualización del archivo cipher.py (archivo que ya tuvo que ser modificado una vez como indiqué en un post anterior). Entonces apelando a mis nulos conocimientos en programación, dije "tal vez funcione si copio el código del archivo ése al mío". Y funcionó. Hice un sudo mv cipher.py cipher.py.old, sudo nano cihper.py y pegué el codigo que pueden ver acá. Reinicié el servicio, y todo funcionando.

Desconozco cuanto tiempo va a durar porque cada vez que google toca algo, suele romperse esta dependencia, pero al menos ya sabemos que no hay que monitorear el Git de Mopidy-YTMusic sino el de pytube.

Espero que le sirva a quien tenga el mismo inconveniente.
 
Hola estimados, estuve ausente mucho tiempo pero por un motivo agradable. Un motivo de 1,75m, 27 años (19 menos que yo, se los recomiendo enfáticamente como terapia, filosofía de vida, etc.), y otros atributos que no puedo mencionar porque me moderan... Pero como dice Vox Dei, todo tiene un final, todo termina.

También terminó el ciclo "stable" de Debian 11, dándole paso a Debian 12, codename "Bookworm", que es sin duda alguna la mejor versión de Debian y desde ahora la mejor opción GNU/Linux para escritorio. Para servidores era junto al recientemente fallecido Red Hat la mejor opción, a partir de ahora es la única. Aquí les dejo info para quienes quieran saber que pasó, perdón por el off topic:


Volviendo al topic, ahora que tengo un poco de tiempo decidí actualizar mi NMP a Debian 12, y mediante unos comandos bastante sencillos logré hacerlo -y esto es lo mejor- sin que falle un solo programa. La actualización fue perfecta. Desde hacía varios meses el plugin YTMUSIC de Mopidy había dejado de funcionar, pero como el tiempo ocioso lo ocupaba en cosas que no puedo mencionar porque me moderan, dejé de lado "los fierros" y no le daba mucha atención a las pcs, salvo por temas laborales claro está. Confieso que me hartó el poco interés por parte de los mantenedores del código del ecosistema Mopidy y en particular el plugin YTMusic, pero con tiempo ahora decidí volver a instalarlo (si, lo había eliminado) y darle otra oportunidad.
Debian tiene ahora un "blindaje" para que Python no rompa el sistema y no permite la instalación vía pip o pip3, sino que ofrece tres métodos:

-pipx
-ecosistema contenedor aislado
-saltarse todas las advertencias y forzar la instalación "antigua"

No voy a detallar los errores porque tendría que abrir un hilo nuevo sólo para YTMusic, pero en resumen tuve recurrir a la opción:

--break-system-packages

para poder instalar en modo servicio de sistema. YTMusic está cuasi abandonado creo porque no tuvo actividad el Git en los últimos 9 meses, sólo usuarios presentando "issues". Afortunadamente el problema es de la dependecia pytube que es la que descarga los datos desde el servicio de YTMusic de google. Y está solucionado en pytube 15.0.0, peeeeroooo... YTMusic es compatible con versiones viejas, siendo la última compatible la 12.1.3, de manera que es lo mismo que nada. Pero, luego de dos días de navegar mensajes de issues en GitHub, hallé uno donde decían que lo que había solucionado la falla era una actualización del archivo cipher.py (archivo que ya tuvo que ser modificado una vez como indiqué en un post anterior). Entonces apelando a mis nulos conocimientos en programación, dije "tal vez funcione si copio el código del archivo ése al mío". Y funcionó. Hice un sudo mv cipher.py cipher.py.old, sudo nano cihper.py y pegué el codigo que pueden ver acá. Reinicié el servicio, y todo funcionando.

Desconozco cuanto tiempo va a durar porque cada vez que google toca algo, suele romperse esta dependencia, pero al menos ya sabemos que no hay que monitorear el Git de Mopidy-YTMusic sino el de pytube.

Espero que le sirva a quien tenga el mismo inconveniente.
Gracias , en mi caso, lo he resuelto NO usando nada de LINUX mas que para entretenimiento. :unsure: :ROFLMAO: 😎
 
Gracias Kebra, yo tambén actualicé un par de dias después que salió y fué un gran alivio que no haya roto nada, eso si, tuve que instalar de nuevo los servicios de mopidy (muy simple). Youtube Music no lo estaba usando, casi todo lo que me interesa escuchar está en bandcamp y el servicio mopidy-bandcamp anda de lujo. Ahora siguiendo tus instrucciones voy a ver si lo recupero al menos para el uso eventual que le venía dando.

Gracias , en mi caso, lo he resuelto NO usando nada de LINUX mas que para entretenimiento. :unsure: :ROFLMAO: 😎

En mi caso todo lo contrario, tengo Debian en 5 de las 6 PC que tengo en mi casa, el uso de Windows es sólo recreativo.
 
No creo que la relación haya finalizado por usar Linux... :oops: :oops: :oops:
Yo tampoco, NO me refería a la relación de él, sino a todo el rollo que hizo para revivir una aplicación musical, que ya no le funcionaba. :LOL:
No me gusta los SO donde todo el mundo puede meter la mano, sin dejar registro de lo hecho, ni su calidad . Son gustos
Yo solo escucho Clásica y Jazz y lo tengo todo en casa, con o sin Internet.
 
Última edición:
Yo tampoco, NO me refería a la relación de él,
Jajajajaja...era solo un chascarillo 😂

No me gusta los SO donde todo el mundo puede meter la mano, sin dejar registro de lo hecho, ni su calidad .
No sé de donde sacás que en Linux puede meter mano "todo el mundo y sin dejar registro" :unsure:
Linux debe estar terrible y patológicamente mal configurado para que eso pueda suceder, y de hecho, cualquier instalación estándar prohibe por defecto ese tipo de manipulaciones 🤷‍♂️: Debés tener una cuenta de usuario y además debe tener privilegios para transformarte en admninistrador, lo cual ya es complicado. Aun que seas administrador, cualquier operación peligrosa queda registrada en los archivos de log. Y si sos un usuario normal, solo podés hacer desastres dentro de tu propio directorio de usuario...y nada más. Y si el file-system tiene activadas las cuotas, tampoco podés gastar la cantidad de disco que se te ocurra.
En fin, dá para hablar mucho, pero Linux es un par de cientos de veces mas seguro que Windows...
 
Jajajajaja...era solo un chascarillo 😂


No sé de donde sacás que en Linux puede meter mano "todo el mundo y sin dejar registro" :unsure:
Linux debe estar terrible y patológicamente mal configurado para que eso pueda suceder, y de hecho, cualquier instalación estándar prohibe por defecto ese tipo de manipulaciones 🤷‍♂️: Debés tener una cuenta de usuario y además debe tener privilegios para transformarte en admninistrador, lo cual ya es complicado. Aun que seas administrador, cualquier operación peligrosa queda registrada en los archivos de log. Y si sos un usuario normal, solo podés hacer desastres dentro de tu propio directorio de usuario...y nada más. Y si el file-system tiene activadas las cuotas, tampoco podés gastar la cantidad de disco que se te ocurra.
En fin, dá para hablar mucho, pero Linux es un par de cientos de veces mas seguro que Windows...
Si, lo de CUALQUIERA, era solo una expresión escrita a la ligera. :giggle:
 
En fin, dá para hablar mucho, pero Linux es un par de cientos de veces mas seguro que Windows...

No sólo la seguridad y estabilidad, con el mismo hardware cada nueva versión de Debian (que es la distro que yo uso desde su versión 4 "Etch") es mas liviana y mas rápida; por el contrario cada nueva versión de Windows es mas pesada, mas lenta, mas "bloated" y mas fea estéticamente, y además menos eficiente su interfaz. Yo a Gnome lo único que le cambio son los temas, pero las funciones no. Mi equipo de escritorio es un AMD 2650 que es tan poco potente que tiene cooler de Pentium 100. Edito video y fotos. En Windows, si no le hago debloat, es imposible hacer nada.

debian.png

Ahora siguiendo tus instrucciones voy a ver si lo recupero al menos para el uso eventual que le venía dando.

El comando exacto es:

sudo python3 -m pip install --break-system-packages pytube==12.1.3

y luego copiás el código como expliqué en el mensaje anterior.
 
No sólo la seguridad y estabilidad, con el mismo hardware cada nueva versión de Debian (que es la distro que yo uso desde su versión 4 "Etch") es mas liviana y mas rápida; por el contrario cada nueva versión de Windows es mas pesada, mas lenta, mas "bloated" y mas fea estéticamente, y además menos eficiente su interfaz. Yo a Gnome lo único que le cambio son los temas, pero las funciones no. Mi equipo de escritorio es un AMD 2650 que es tan poco potente que tiene cooler de Pentium 100. Edito video y fotos. En Windows, si no le hago debloat, es imposible hacer nada.

Ver el archivo adjunto 300511



El comando exacto es:

sudo python3 -m pip install --break-system-packages pytube==12.1.3

y luego copiás el código como expliqué en el mensaje anterior.
Me cansé de usar ordenadores y terminales que intentaban hacer dibujos con caracteres ASCCI :ROFLMAO: Les tomé fobia, porque yo no tenia que programarlas sino, principalmente repararlas.. Tuve que aprender a programar mas que nada, para acelerar las reparaciones, sino nunca me hubiera metido.
 
Tarde, algo rompí y ya no levanta mopidy :silbando:.
mañana lo resuelvo, o un dia de estos, o un año de estos... 🤣
Voy a intentar que te sea mas leve el proceso... Desinstalá todo y borrá el directorio:

Código:
sudo rm -r /usr/local/lib/python3.11/dist-packages/

Si además tenés el viejo python, borra todo el directorio /python3.9 así no te hacés lío al configurar.
Opcional desinstalá (--remove-purge) mopidy y luego instalá mopidy desde el repositorio apt como explica la página oficial.

Instalá los plugins que usás y después instalá TYMusic:

Código:
sudo pip3 install --break-system-packages Mopidy-YTMusic

No recuerdo que versión de pytube instala YTMusic, entrá al directorio /distpackages y ahí los vas a ver. Si no es el 12.1.3, vas a tener que instalarlo:

Código:
sudo python3 -m pip install --break-system-packages pytube==12.1.3

Entonces:

Código:
sudo mv cipher.py cipher.py.old
sudo nano cihper.py

Y ahí pegás el contenido de ésto.

Después:

Código:
sudo systemctl restart mopidy.service


Y ahí debería funcionar perfecto.
 
Gracias por tomarte tanto laburo!, por lo pronto reinstalé todo anoche, el sistema que tenía estaba muy manoseado por otras pruebas que hice y no valía la pena intentar recuperarlo. Ahora con el sistema limpio voy a reinstalar todo lo que corresponda a youtube.

PD: ¿probaste Rompr? para manejar mopidy desde una pc anda de lujo, desde el celu es medio incómodo. RompR

Un abrazo!
 
Gracias por tomarte tanto laburo!, por lo pronto reinstalé todo anoche, el sistema que tenía estaba muy manoseado por otras pruebas que hice y no valía la pena intentar recuperarlo. Ahora con el sistema limpio voy a reinstalar todo lo que corresponda a youtube.

PD: ¿probaste Rompr? para manejar mopidy desde una pc anda de lujo, desde el celu es medio incómodo. RompR

Un abrazo!

No hay por qué, para eso estamos acá, para dar una mano. No lo probé a RompR, desde PC uso el cliente web "musicbox_webclient", pero nada que ver con lo que se ve en la página de RompR. Es muy parecido a Cantata (que uso para MPD) pero mas pulido. Voy a instalarlo, tiene pinta. Para mobile uso el cliente Mopidy, es muy simple pero funciona.
 
Intersante lo de Mopidy. Hace tiempo que lo vengo revisando, pero el MPD y M.A.L.P. funcionan taaaan bien que no me dan ganas de tocar nada de lo que tengo.
Para streaming uso Spotify vía bluetooth a un receptor chino comprado cuando se podía :cry: y ahora que suporongo que tengo YouTube Music gracias a mi hijo 😘, voy a probar como me conecto.
Lo de Mopidy me molesta por que odio Python y me rehuso a instalar cualquier cosa escrita en ese lenguaje, pero Mopidy pinta lindo. De todas formas, toda la historia es disponer de varios mecanismos de conexión para elegir la que menos problemas nos traiga.
 
@Kebra tardé un buen rato en darme cuenta que tu solución es para Youtube Music y yo no estoy usando ese servicio, para lo único que quiero youtube es para escuchar cosas en vivo y para eso necesitaba el servicio normal, calculo que por eso se me rompió hace unos dias.
Ahora ya lo tengo andando otra vez, dejo acá cómo hacerlo:

instalamos Mopidy-Youtube (yo no uso sudo, entro como admin pero lo dejo igual):
Código:
sudo python3 -m pip install --break-system-packages Mopidy-YouTube

instalamos yt-dlp
Código:
sudo python3 -m pip install --break-system-packages yt-dlp

instalamos Gstreamer 1.0
Código:
sudo apt-get install gstreamer1.0-plugins-bad

y configuramos Mopidy para que no use youtube_dl (copio y pego de github)
Código:
[youtube]
youtube_dl_package = [name] : package name of an alternative package
                              to replace "youtube_dl", for example
                              "yt_dlp"

para eso editamos la config de mopidy (en este caso corriendo como servicio)
Código:
nano /etc/mopidy/mopidy.conf

mi código quedó así, la última línea es la del yt-dlp (y el api key con asteriscos es de cada usuario)
Código:
[youtube]
enabled = true
allow_cache = true
youtube_api_key = *******************
search_results = 50
playlist_max_videos = 20
api_enabled = true
channel_id =
musicapi_enabled = false
musicapi_cookie =
musicapi_cookiefile =
autoplay_enabled = false
strict_autoplay = false
max_autoplay_length = 600
max_degrees_of_separation = 3
youtube_dl_package = yt_dlp

EDITO: olvidé el comando para reiniciar mopidy y que tome los cambios:
Código:
systemctl restart mopidy
dejo un par de links que me fueron de ayuda:
GitHub - natumbri/mopidy-youtube: Mopidy extension for playing music from YouTube
GitHub - yt-dlp/yt-dlp: A youtube-dl fork with additional features and fixes

Nuevamente gracias a todos, en los 6 o 7 años que llevo manejando esto aprendí muchísimo de Linux, valió la pena cada trasnochada renegando con la consola.

un abrazo!
 
Última edición:
Nuevamente gracias a todos, en los 6 o 7 años que llevo manejando esto aprendí muchísimo de Linux, valió la pena cada trasnochada renegando con la consola.


un abrazo!
No lo había instalado al plugin de yotube, ahora ya está instalado y funcionando.

Dejo mi archivo de configuración en caso de necesitar un "dissaster recovery" y por si les sirve.

Código:
[http]
enabled = true
hostname = 0.0.0.0
port = 6680

[ytmusic]
enabled=true
auth_json=/etc/mopidy/auth.json

[youtube]
enabled = true
youtube_api_key = <api>
api_enabled = true
search_results = 200
playlist_max_videos = 200
autoplay_enabled = false
strict_autoplay = false
max_autoplay_length = 600
max_degrees_of_separation = 3
youtube_dl_package = yt_dlp

Sólo me queda averiguar si puedo tener acceso a mis likes e historial de youtube... Creo que en mi instalación anterior funcionaba, pero no estoy seguro... Gracias por la data!
 
Atrás
Arriba