Tendencias de palabras clave de Telegram
Una herramienta de análisis para explorar el surgimiento de discursos de odio, desinformación y narrativas de interés en la plataforma de chat Telegram. Utilice esta herramienta con precaución ya que no tiene moderación ni filtrado de contenido. Usted es responsable del contenido que pueda exportarse.
En resumen, esta herramienta le permite buscar todos los canales que sigue con una lista de palabras clave/frases y devuelve todos los resultados coincidentes en varios formatos con visualizaciones de gráficos. También descarga opcionalmente los medios y, por lo tanto, se puede utilizar como motor de búsqueda de medios (actualmente hay algunos errores con esta función; no la utilice como herramienta de búsqueda exhaustiva de medios).
Captura de pantalla de la herramienta en acción, que explora el discurso de odio durante la invasión rusa a gran escala de Ucrania
Características clave
- Esta herramienta está diseñada para funcionar con sockpuppets que siguen muchos canales que cubren un tema en particular.
- Puede cambiar los detalles de su API para usar diferentes cuentas editando el archivo api_values.txt .
- La herramienta está diseñada para funcionar como Google Trends y muestra el volumen diario de términos clave y un mapa a lo largo del tiempo.
- El filtrado de fechas le permite limitar una búsqueda a un período de tiempo más corto. Si se deja en blanco, se escala automáticamente al rango máximo de datos.
- La herramienta utiliza la búsqueda de Telegram, lo que significa que es particularmente buena para búsquedas en ruso y, en general, maneja bien las terminaciones de palabras.
- Genera gráficos individuales para cada término clave.
- Genera un gráfico agregado que muestra todos los términos clave de una búsqueda en el mismo gráfico para compararlos.
- Compila un informe en PDF que muestra los gráficos e imprime el código completo para auditar los datos y validar la evidencia.
- Genera un resumen de archivo TXT que incluye todas las estadísticas principales, por ejemplo, fecha de ejecución, canales buscados y volumen relativo por canal.
- Descarga de medios opcional para obtener resultados (esto prolonga masivamente (o realmente masivamente) el tiempo necesario para ejecutar la herramienta)
- Los medios descargados tienen el nombre de archivo channelid_postid, por lo que es fácil encontrar el original.
Este script busca mensajes que contienen términos de búsqueda específicos en los canales de Telegram de los que el usuario es miembro. Exporta los resultados de la búsqueda en formatos HTML y CSV, genera un informe y traza el recuento de mensajes por día.
Está diseñado para monitorear las tendencias de los términos de búsqueda de la misma manera que lo hace Google Trends. Esto puede ser muy útil para identificar el surgimiento de discursos de odio o discusiones/narrativas después de ciertos eventos.
Esta versión actual no realiza ningún ajuste significativo a los datos, por ejemplo, el gráfico no muestra la incidencia de términos ajustados a la incidencia de todos los mensajes. Esto significa que se deben realizar más análisis para garantizar que un fuerte aumento en los términos no se confunda con un fuerte aumento en la actividad general. Por esta razón, el resultado del gráfico debe considerarse como indicativo de la necesidad de realizar más investigaciones y análisis estadísticos.
Resultado de ejemplo que explora el discurso de odio durante la invasión rusa a gran escala de Ucrania
Esta imagen es un resultado de ejemplo que muestra cómo los canales investigados experimentaron un aumento en el uso de términos específicos.
Ejemplo del informe generado
Esta imagen es un resultado de ejemplo del informe, un documento PDF que describe el código e imprime el script al final. Esto significa que no importa qué cambios o qué versión del script se utilice, se puede examinar el proceso exacto.
Captura de pantalla de parte de la información generada en el informe de estadísticas de texto
Esta herramienta ha sido probada con términos de búsqueda en inglés y ruso.
ADVERTENCIA: Esta herramienta utiliza su lista de grupos seguidos como lista en la que busca. Puede incluir chats/grupos personales. Por el bien de OPSEC, se recomienda utilizar una cuenta descartable y seguir únicamente chats específicos de la investigación.
Instalación
Clona el repositorio tg-keyword-trends ejecutando el siguiente comando en tu terminal o símbolo del sistema:
git clone https://github.com/thomasjjj/tg-keyword-trends.git
Navegue hasta el directorio tg-keyword-trends:
cd tg-keyword-trends
Instale las dependencias requeridas de Python usando pip:
pip install -r requirements.txt
Características
- Graph ajusta la escala a las publicaciones más antiguas y más nuevas.
- CSV generado para su posterior procesamiento.
- Archivo HTML generado para abrir enlaces.
- Genera un informe que documenta los detalles clave del scrape (fecha, canales a los que se accedió, etc.) para la auditabilidad de los hallazgos.
- Descarga de medios
Uso:
- Agregue los términos de búsqueda, uno por línea, en un archivo .txt. Se le pedirá que ingrese la ubicación del archivo en breve.
- Asegúrate de tener listos los detalles de tu API de Telegram [https://my.telegram.org/auth]
- El script buscará en todos los canales de los que es miembro el usuario.
- Los resultados de la búsqueda se exportarán como archivos HTML y CSV en una carpeta de salida con marca de tiempo.
- El script generará un informe que contiene los resultados de la búsqueda para cada canal.
- El script trazará el recuento de mensajes por día para cada término de búsqueda en un gráfico y lo guardará como una imagen.
Funciones:
- retrieve_api_details : lee los detalles de la API desde 'api_details.txt'.
- check_search_terms_file : lee los términos de búsqueda de 'search_terms.txt' o solicita al usuario que ingrese términos de búsqueda.
- create_output_directory : crea un directorio con marca de tiempo para almacenar archivos de salida.
- print_colored : imprime texto en el color especificado usando el módulo colorama.
- render_url : genera código HTML para un hipervínculo utilizando una URL y un texto de mensaje.
- generate_report : genera un informe que contiene resultados de búsqueda para cada canal.
- plot_keyword_frequency : traza el recuento de mensajes por día para cada término de búsqueda en un gráfico.
Consejos:
- Debido a la función de filtrado de fechas, esta herramienta también funciona bien como motor de búsqueda de Telegram que permite resultados filtrados por fechas. Simplemente ejecute la búsqueda en la ventana de fecha necesaria y abra el archivo html de salida para obtener una lista de mensajes que coincidan y sus enlaces.
- La herramienta maneja las zonas horarias automáticamente y se ajusta a ellas. Tenga especial cuidado al editar cualquier sección del código relacionada con los formatos de fecha y hora, ya que fue difícil de depurar.
- Se recomienda que cree una cuenta de Telegram dedicada para cada tema. Esto le permitirá dirigirse sólo a canales relevantes y eliminará el ruido.
- No es necesario buscar sustantivos en singular y plural por separado, ya que esto lo realiza la búsqueda de Telegram (en general, para los idiomas inglés y ruso).
*Esta imagen muestra el uso de los distintos topónimos de "Bakmut", incluidos los antiguos nombres soviéticos. Un uso de esta herramienta podría ser validar los términos de búsqueda utilizados en la investigación OSINT. Como se puede ver aquí, uno puede limitar su potencial de recopilación si solo usan el nombre oficial actual de la ciudad en lugar de nombres pasados y controvertidos también. *
Dependencias:
- pandas~=2.0.0
- matplotlib~=3.7.1
- Teletón~=1.28.2
- colorama~=0.4.6
- Almohada ~=9.5.0
- laboratorio de informes ~=3.6.12
- numeroso~=1.24.2
- Pytz~=2023.3
- tqdm~=4.65.0
Versión de Python: Python 3.11 o superior
HACER