Cómo hacer copia de seguridad de tu historial de Telegram (Telegram backup)

Actualmente uso Telegram para (casi) todos los grupos y canales de hacking y, si bien no tiene la misma magia de la vieja consola del IRC, aporta algunas mejoras como los cachondísimos gifs y stickers y sobretodo la movilidad, ya que desde el smartphone puedes leer los chats cómodamente desde el sillón de tu casa... o desde la taza del wc...

Una de las características que diferencian a Telegram de otras aplicaciones de IM como Whatsapp es que almacena todos los chats en su nube, ya sean mensajes, fotos, videos o documentos y siempre que no se traten de chats secretos/cifrados punto a punto.  Esto es una ventaja a la hora de recuperar los datos rápidamente desde cualquier dispositivo, sin necesidad de tener que hacer backups ni mover los datos guardados localmente de un sitio a otro, pero por otro lado puede ser también un problema de seguridad tener el historial de nuestras conversaciones en una nube y de forma perpetua.

Es decir, está claro que Telegram jura y perjura que los datos que guarda están cifrados y las claves repartidas en distintos DCs, pero ¿quién nos dice que mañana no llame a la puerta de Telegram ningún gobierno y le entregue todas las keys para recuperar nuestras conversaciones? ¿o que Telegram sufra una brecha y/o se descubran nuevas vulnerabilidades que comprometan sus servidores o el proceso de autenticación? Nadie...

Por eso lo mejor, si tienes un grupo "algo delicado", puede ser buena opción borrar periódicamente el historial. Quede claro que tampoco tendremos la garantía de que Telegram no pueda recuperarlo incluso habiéndolo eliminado, porque aunque no conozco la política de backup y retención de la empresa seguro que pueden hacerlo (ellos ya avisan que nunca borran las fotos de gatitos), pero al menos estaremos más protegidos ante una incursión o robo de credenciales por parte de un tercero.

En cualquier caso antes de borrar el chat de un grupo o supergrupo seguramente queremos quedarnos nuestra propia copia de seguridad para consultarla si es necesario, o incluso para tener la información en local y poder manejarla más fácilmente y bueno, lo que vamos a ver hoy es una forma de hacerlo muy fácilmente con una herramienta escrita en java que nos permitirá realizar la copia de seguridad desde nuestro Güindous, Linux o nuestra cafetera.

Se trata de Telegram Backup del alemán Fabian Schlenz, como decimos una app escrita en java que nos permitirá descargar todo nuestro historial de los servidores de Telegram para mantener una copia en local.
Sus características principales son:

- Permite utilizar varias cuentas con esta herramienta.
- Los mensajes se guardan en una base de datos SQLite (documentos, fotos, vídeos, stickers, geolocalizaciones, audios) se descargan y se guardan como archivo.
- Está previsto hacer un GUI pero de momento es una herramienta sólo de línea de comando
- Realiza copias de seguridad incrementales: si ejecutas la herramienta más adelante, sólo descargará nuevos mensajes / ficheros
- Es posible utilizar un exportador de HTML para crear archivos HTML estáticos que contengan las conversaciones (todavía está en construcción).

Su uso es muy sencillo. Necesitarás tener java 1.7 o posterior instalado, descargar el jar (tienes también disponible el código fuente de la release correspondiente):

wget https://github.com/fabianonline/telegram_backup/releases/download/1.0.5-test.5/telegram_backup.jar


Y ejecutar:

java -jar telegram_backup.jar

Con el parámetro --help para obtener un listado de las opciones disponibles:
Telegram_Backup version 1.0.5-test.5, Copyright (C) 2016 Fabian Schlenz

Telegram_Backup comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions; run it with '--license' for details.

Valid options are:
  -h, --help                   Shows this help.
  -a, --account <x>            Use account <x>.
  -l, --login                  Login to an existing telegram account.
      --debug                  Shows some debug information.
      --trace                  Shows lots of debug information. Overrides --debug.
      --trace-telegram         Shows lots of debug messages from the library used to access Telegram.
  -A, --list-accounts          List all existing accounts
      --limit-messages <x>     Downloads at most the most recent <x> messages.
      --no-media               Do not download media files.
  -t, --target <x>             Target directory for the files.
  -e, --export <format>        Export the database. Valid formats are:
                               html - Creates HTML files.
      --license                Displays the license of this program.
  -d, --daemon                 Keep running and automatically save new messages.
      --anonymize              (Try to) Remove all sensitive information from output. Useful for requesting support.

Básicamente, tenemos que llamar la app con --login primero para iniciar sesión en nuestra cuenta de Telegram y luego volver a llamarla con --account para usar la cuenta y descargar todo su historial. Si sólo tenemos una cuenta, podemos incluso omitir este parámetro.

Primero registraremos el cliente indicando el número de teléfono e introduciendo el código de verificación enviado:


Y luego la volveremos a llamar ya indicando la cuenta:


En el directorio ~/.telegram_backup encontraremos una carpeta para cada cuenta, con nombre el número de teléfono asociado a esa cuenta. Dentro de la misma tendremos los ficheros auth.dat y dc.dat, que contienen datos de autenticación, y database.sqlite que es una base de datos SQLite3 que contiene todos los mensajes y otros datos:


Por último en el directorio files tendremos todos los archivos multimedia, con el nombre del ID del mensaje al que pertenecen:


Github: https://github.com/fabianonline/telegram_backup

6 comentarios :

  1. Me molesta que ellos se mofan de que como esta en la nube no necesitas backup.
    Le he escrito y ellos contestan con eso.
    Hace mucho tiempo perdí una conversación que tenía 6meses de historial. Le di a borrar pr error.
    Hace menos de un mes una amiga me borró un chat que tenía más de 1 año y tres meses.
    Ella saludo a mi amigo y se pusieron a hablar, luego por broma hablaron temas un poco clientes y ella en vez de borrar lo que hablaron, eliminó todo el chat, donde tenía información importante.
    Me incomode más con la gran idea de Telegram de no hacer backup que con mi amiga.
    Me gustaría luego una interfaz donde recuperar un backup y sea semejante al chat (que texto y multimedias queden en orden).
    Pero al menos vamos en buen camino con esta aplicación.

    ResponderEliminar
  2. Muy útil, gracias!
    Dejo aquí los pasos para quien utilice windows:

    1. Descargar script:
    https://github.com/fabianonline/telegram_backup/releases/download/1.0.5-test.5/telegram_backup.jar

    2. Descargar java:
    https://www.java.com/es/download/

    3. Abrir terminal (Inicio > escribir cmd > abrir simbolo de sistema)

    4. Situarse en la carpeta donde está el script (downloads o descargas)(cd nombreCarpeta\Downloads)

    5. Ejecutar comando:
    java -jar telegram_backup.jar --account +34numeroTelefono

    ResponderEliminar
  3. Existe algo para hacer una copia de los chats secretos?

    ResponderEliminar
  4. Existe algo para hacer la copia de los chats secretos?

    ResponderEliminar
  5. ¿Dónde se supone que se guardan los archivos? ¿dónde está la carpeta? no la encuentro por ninguna parte :/

    ResponderEliminar
  6. Como paso Telegram a mí nuevo android, todos los contactos y conversaciones

    ResponderEliminar