En el mundo de las redes sociales federadas, cada vez es más común ver la necesidad de cambiar de nodo para adaptarse a nuevas necesidades o simplemente para mantener la actividad en caso de cierres inesperados. Recientemente, los usuarios de GNU Social han recibido una noticia desafortunada: gnusocial.net, uno de los nodos más conocidos de esta plataforma, cerrará sus puertas a finales de diciembre. Ante esta situación, muchos se han planteado cómo migrar sus cuentas y datos a otro nodo del Fediverso sin perder sus contactos.
Este tutorial tiene como objetivo guiarte paso a paso en el proceso de migración de tu cuenta de GNU Social a otro nodo del Fediverso utilizando un script en Python que facilita esta tarea. A continuación, exploraremos cómo preparar todo lo necesario para ejecutar el script y llevar a cabo la migración de forma sencilla y efectiva.
El script que utilizaremos será el gnu-social-export que podemos encontrar a continuación:
Descarga del repositorio
Primero, es necesario descargar el repositorio, y para ello necesitamos tener git instalado en el ordenador. Para instalar el paquete, ejecutamos el siguiente comando:
# Si usas Debian, Ubuntu, Linux Mint...
apt install git
# Si usas Fedora, RockyLinux, AlmaLinux...
dnf install git
# Si usas Arch Linux
pacman -sS install gitDescargamos el repositorio del script que nos permitirá descargarnos a nuestros amigos de GNU Social:
git clone https://github.com/benediktg/gnu-social-export.gitSalida del comando
Cloning into 'gnu-social-export'... remote: Enumerating objects: 28, done. remote: Total 28 (delta 0), reused 0 (delta 0), pack-reused 28 (from 1) Receiving objects: 100% (28/28), 5.69 KiB | 1.42 MiB/s, done. Resolving deltas: 100% (12/12), done.
Accedemos al directorio del repositorio que hemos descargado:
cd gnu-social-export/Para activar el entorno virtual, es necesario tener instalado el paquete correspondiente:
apt install python3.12-venvEjecutamos el siguiente comando para activar el entorno virtual de Python e instalar todas las dependencias necesarias:
python3 -m venv venv
source venv/bin/activate(venv) (al principio o al final, según el sistema), lo cual confirma que el entorno virtual se ha activado correctamente.A continuación, instalamos las librerías necesarias:
pip install -r requirements.txtSalida del comando
Collecting python-dotenv (from -r requirements.txt (line 1)) Downloading python_dotenv-1.0.1-py3-none-any.whl.metadata (23 kB) Collecting requests (from -r requirements.txt (line 2)) Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB) Collecting charset-normalizer<4,>=2 (from requests->-r requirements.txt (line 2)) Downloading charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (34 kB) Collecting idna<4,>=2.5 (from requests->-r requirements.txt (line 2)) Downloading idna-3.10-py3-none-any.whl.metadata (10 kB) Collecting urllib3<3,>=1.21.1 (from requests->-r requirements.txt (line 2)) Downloading urllib3-2.2.3-py3-none-any.whl.metadata (6.5 kB) Collecting certifi>=2017.4.17 (from requests->-r requirements.txt (line 2)) Downloading certifi-2024.8.30-py3-none-any.whl.metadata (2.2 kB) Downloading python_dotenv-1.0.1-py3-none-any.whl (19 kB) Downloading requests-2.32.3-py3-none-any.whl (64 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.9/64.9 kB 6.4 MB/s eta 0:00:00 Downloading certifi-2024.8.30-py3-none-any.whl (167 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 167.3/167.3 kB 11.5 MB/s eta 0:00:00 Downloading charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (143 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 143.8/143.8 kB 10.5 MB/s eta 0:00:00 Downloading idna-3.10-py3-none-any.whl (70 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 70.4/70.4 kB 5.2 MB/s eta 0:00:00 Downloading urllib3-2.2.3-py3-none-any.whl (126 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 126.3/126.3 kB 2.6 MB/s eta 0:00:00 Installing collected packages: urllib3, python-dotenv, idna, charset-normalizer, certifi, requests Successfully installed certifi-2024.8.30 charset-normalizer-3.4.0 idna-3.10 python-dotenv-1.0.1 requests-2.32.3 urllib3-2.2.3
Realizamos una copia del archivo de configuración que editaremos más adelante:
cp .env.sample .envLuego, procedemos a editarlo:
nano .envEn este archivo, debemos ingresar tres datos:
- GNU_SOCIAL_HOST: Especifica la URL de tu instancia, por ejemplo,
"https://gnusocial.net". - GNU_SOCIAL_USER: Solo el nombre de usuario, por ejemplo,
"t3rr0rz0n3". - GNU_SOCIAL_PASS: La contraseña de acceso de tu cuenta.
Guardamos el fichero y seguimos.
Exportar cuentas a quién sigues
Para obtener el listado de gente a quien sigues, ejecutaremos el siguiente comando:
python gnu-social-export.py > amiguis.csvSalida del comando
will make 1 requests request #1 processed finished
Esto generará un archivo llamado amiguis.csv que contiene todos los usuarios a los que sigues en tu cuenta de GNU Social. Podemos ver el listado con:
cat amiguis.csvSalida del comando
elbinario@gnusocial.net
csavegadejarama@masto.es
radioalmaina@gnusocial.net
administrator@gnusocial.net
Exportar cuentas que te siguen
Para obtener el listado de personas que te siguen, ejecuta el siguiente comando:
python gnu-social-export.py -f > seguidores.csvEsto generará un archivo llamado seguidores.csv que contiene todos los usuarios que te siguen en tu cuenta de GNU Social. Podemos ver el listado con:
cat seguidores.csvSalida del comando
t3rr0rz0n3@xarxa.cloud
Importar usuarios a una cuenta de Mastodon
Una vez hemos entrado en nuestra cuenta de Mastodon, tenemos que ir a Preferencias y luego a Importar y Exportar:

Hacemos clic sobre la opción Importar:

Para importar el fichero amiguis.csv, tendremos que seleccionar del desplegable la opción Lista de Seguidos, luego seleccionamos el fichero y hacemos clic sobre Cargar.

Nos dirá que estamos a punto de importar un numero de cuentas, y le damos a Confirmar.

Nos aparecerá un aviso en verde indicando que se han importado correctamente y abajo el fichero con la importación.
Si ahora vamos a Siguiendo y seguidores, veremos que se han importado los usuarios:

El listado de seguidores.csv, podemos importarlo de la misma manera si queremos seguir a toda la gente que nos sigue para avisar de que tienes una cuenta nueva y que te pueden seguir. Pero no se pueden importar como seguidores.
Más sobre ./voidNull
- 📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "De la A a la Z: Los comandos de GNU/Linux"
- 💪 ¡Forma parte de la Comunidad de ./voidNull!
- 🤖 Disfruta de todos nuestros Cursos sobre Ansible, Proxmox, Home Assistant entre otros.
- 📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra Newsletter mensual.
Comentarios