Os voy a contar cómo he configurado mi móvil como servidor SSH local, de forma que puedo conectarme a una terminal suya y gestionarlo desde el PC, para descargar archivos .opus o .mp3 directamente en mi móvil.
Primero, una pequeña introducción para indicar mi necesidad. Normalmente utilizo yt-dlp (una herramienta de Python) para descargar archivos .opus de música local. Este archivo es superior al conocido .mp3 y se reproduce perfectamente desde los reproductores típicos, como VLC. El caso es que, a veces, me encuentro que no tiene instalado o que no puedo instalar yt-dlp. Por ejemplo un equipo del trabajo en el que no quiero instalar software de este tipo. Además, aunque lo tenga instalado en mi Slakcware personal, tengo que conectar el móvil y enviarlo, dando un paso extra.
De esta forma quiero tener instalado yt-dlp directamente en mi móvil, descargar la música directamente en él; pero hacerlo todo desde la terminal del PC, por comodidad.
Lo primero que he hecho es instalar un emulador de terminal en mi teléfono Android. Este ha sido termux, que ya lo conocía desde hace tiempo y cumple la función sobresalientemente. Con termux, ahora he instalado yt-dlp:
pkg update && pkg upgrade
pkg install python ffmpeg
pip install yt-dlp
Y ya puedo utilizarlo sin problema, añadiendo la url del vídeo a descargar, o incluso la lista de reproducción:
yt-dlp -x --audio-format opus "https://www.youtube.com/playlist?list=PL6Z7ufPU2ibn5Qnnt-Dcf0r9jGOnr8Xmv"
La descarga es muy rápida y efectiva. Sin embargo, ¿dónde están los archivos? Desde el reproductor del móvil no los encuentro. Están ocultos en la carpeta data de la aplicación, encapsulados. Es necesario, pues, dar permisos a termux para acceder al almacenamiento de usuario.
termux-setup-storage
Es entonces cuando nos pedirá permiso y se creará un directorio storage.
~ $ ls
storage
~ $ cd storage/
~/storage $ ls
audiobooks dcim documents downloads external-0 media-0 movies music pictures podcasts shared
Ahora podemos copiar los archivos descargados, o mejor aún, movernos al directorio deseado y ejecutar ahí los comandos.
Es algo tedioso tener que copiar/escribir la url desde el móvil y pegarla en el comando. Sería mucho más cómodo hacerlo desde el PC. Entonces, se me ocurre crear un servidor SSH (de sólo acceso LAN). Como estoy de viaje, uso este mismo teléfono como enrutador, por lo que compruebo que entre el ordenador (cliente) y el móvil (servidor) haya ping. También vale si tanto cliente como servidor están conectados a la misma red Wi-Fi.
Instalo openssh en termux:
pkg install openssh
E introduzco una contraseña al usuario. El usuario podrás reconocerlo usando whoami, nos vendrá bien más adelante:
whoami
passwd
El comando whoami me ha dicho que el usuario que utilizo se llama u0_a337. Entonces, iniciamos el servidor SSH:
sshd
Siendo la IP del servidor, o sea, del teléfono, la 192.168.70.1, la conexión desde el cliente (con la IP 192.168.70.2) sería:
ssh u0_a337@192.168.70.1 -p8022
Importante, por defecto se usa el puerto 8022, debido a que Android bloquea el puerto 22 sin root).
De esta forma puedo administrar la descarga de música de Youtube, directamente desde mi teléfono móvil, usando incluso un ordenador Windows:

