¿Quieres llevar tu historial de tweets desde X/Twitter a una cuenta de Bluesky?
Si tienes pensado migrar a Bluesky, la nueva red de uno de los creadores de Twitter, quizás creas interesante no empezar de 0, o simplemente tienes contenidos en Twitter que no quieres perder. Yo no recomiendo la migración de todos los tweets, pues es muy problemática. No obstante hay una opción que puedes probar. Voy a intentar explicarla
Con el script «Twitter To Bluesky«, puedes importar todos tus tweets archivados de X/Twitter a Bluesky . Esta utilidad utiliza el archivo de exportación oficial de X/Twitter, lo lee desde tu disco local y, mediante el uso del SDK oficial de Typescript de Bluesky, importa los tweets a la cuenta configurada en Bluesky.
La instalación y el funcionamiento requiere unos conocimientos mínimos del sistema. No es todo lo sencillo que nos gustaría, pero al menos puedes intentarlo
El autor del Script es Marco Maroni, y se puede descargar en su Github
⚠️ Se recomienda crear una cuenta específica para probar la importación antes de usar tu cuenta principal de Bluesky ⚠️
Tweets que NO se importan
- Retweets y tweets que comienzan con una cita de otro usuario @ o con RT.
- Tweets que contienen videos, ya que actualmente no son compatibles con Bluesky.
Requisitos previos e IMPRESCINDIBLES
Antes de comenzar, asegúrate de contar con lo siguiente:
- Descarga Node.js >= 20.12x e instala el soft
- El archivo de tus tweets exportado desde X/Twitter, descomprimido en tu disco local.
- Instrucciones para descargar el archivo
Empezando
Para comenzar con la importación, sigue estos pasos:
1En la pantalla de Windows ejecuta el símbolo de Sistema (Inicio – Buscar – Cmd- Abrir)
- Crea una carpeta para alojar el soft , p.e C:\npm
- Instala Typescript Escribe :
npm i -g typescript
y pulsa Enter - Instala Node.js: Teclea
npm i -g ts-node
y pulsa Enter - Descarga el Soft de Marco Maroni , para ello ve a este enlace y selecciona Code – Download zip.
- Guarda el archivo en la carpeta que has creado en el paso 1 y descomprímelo , el contenido debe quedar en la misma carpeta
- En la carpeta del proyecto, ejecuta:
npm i
- Copia todos los archivos descargados del Archivo de Twitter en la carpeta c:\npm , te será más sencillo
- Genera en BlueSKy una contraseña para este script. Esto es importante explicarlo. Al contrario que en Twitter BlueSky implementa la posibilidad de utilizar contraseñas diferentes a las apps a las que das permiso para interactuar con él. Esto es mucho mejor porque limita los derechos concedidos a las apps. Por tanto generamos una password que solo usará el script, diferente de la de nuestra cuenta, impidiendo que una app , o el mismo script, tenga más acceso que el necesario. Para ello iremos a Ajustes – > Contraseñas de la app
Configuración del entorno
Con el Bloc de notas/ Notepad crea un archivo de texto que se llame .env
en la carpeta del proyecto con las siguientes variables:
BLUESKY_USERNAME
= nombre de usuario al que deseas importar los tweets (ej. «test.bsky.social»)BLUESKY_PASSWORD
= contraseña de la cuenta, creada a través de App Password (ej. «pwd123»)ARCHIVE_FOLDER
= ruta completa a la carpeta que contiene el archivo de X/Twitter (ej. «C:/Temp/twitter-archive», o si los has copiado en el paso 7 C:\npm )TWITTER_HANDLE
= nombre de usuario de Twitter, sin el @ (ej. ‘soymmadrigal’)
Es altamente recomendable simular la importación primero e importar un rango pequeño de tweets, utilizando los parámetros adicionales documentados a continuación.
Ejecutando el script
Por último telcea npm start
o npm run start_log
para escribir un archivo import.log.
Si lo has hecho todo bien debería empezar a importar el archivo de Twitter
Parámetros opcionales del entorno
Además, puedes configurar estas variables de entorno para personalizar el comportamiento del script:
Esto es muy conveniente en el caso de que NO quieras importar todos los tweets, lo cual tiene todo el sentido. Por ejemplo , si quieres SOLO los tweets de este último año , añade en el archivo .env el parámetro MIN_DATE = 2024-1-1
Además puedes usar estos parámetros en el archivo .env
SIMULATE
= si se establece en «1», simula la importación contando los tweets e indicando el tiempo estimado de importación.MIN_DATE
= indica la fecha mínima de los tweets a importar, en formato ISO (ej. ‘2011-01-01’ o ‘2011-02-09T10:30:49.000Z’).MAX_DATE
= indica la fecha máxima de los tweets a importar, en formato ISO (ej. ‘2012-01-01’ o ‘2014-04-09T12:36:49.328Z’).
Bueno. Espero que todo esto os sea útil
Si puedo ayudar, si la salud me lo permite, me encontrarán en Bluesky en y Twitter (de momento, a pesar de Musk
https://bsky.app/profile/mmadrigal.bsky.social
Saludos
Lo he hecho todo, he creado el archivo *.env
BLUESKY_USERNAME = «enriccasado.bsky.social»
BLUESKY_PASSWORD = «XXXX-XXXX-XXXX-XXXX»
ARCHIVE_FOLDER = C:\npm
TWITTER_HANDLE – enric_casado
lo he llamado star.env
ejecuto la orden
C:\npm\ npm start
y me contesta:
PS C:\npm> npm run
Lifecycle scripts included in twittertobluesky@0.10.0:
start
npx tsc && node app.js
available via `npm run-script`:
start_log
npx tsc && node app.js > import.log
compile
npx tsc
Options:
–version Show version number [boolean]
–simulate Simulate the import without making any changes
(defaults to false) [boolean] [default: false]
–disable-import-reply Disable importing replies [boolean] [default: false]
–min-date Minimum date for tweets to import (YYYY-MM-DD)[string]
–max-date Maximum date for tweets to import (YYYY-MM-DD)[string]
–api-delay Delay between API calls in milliseconds
[number] [default: 2500]
–archive-folder Path to the archive folder [string] [required]
–bluesky-username Bluesky username [string] [required]
–bluesky-password Bluesky password [string] [required]
–twitter-handles Twitter handles to import [array] [required]
–ignore-video-errors Continue processing tweets when the video service
returns a job without an ID (usually because the video
is too long) [boolean] [default: false]
–help Show help [boolean]
Missing required arguments: archive-folder, bluesky-username, bluesky-password
PS C:\npm>
No
El archivo debe llamarse .env
Solo con la extensión