Skip to content


Repository files navigation


This bot it designed to help translation of OpenStreetMap location from English to any Regional Language.


OSM-Translate-TelegramBot uses various python packages / open source projects to work properly:

  • Pandas - pandas is an open source, library providing high-performance, easy-to-use data structures and data analysis tools for the Python.
  • SQLAlchemy - Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.
  • pyTelegramBotAPI - A simple, but extensible Python implementation for the Telegram Bot API.
  • PyYAML - YAML parser and emitter for Python.
  • MySQL - Database being used.


Tested on python 3.*

$ git clone
$ cd OSM-Translate-TelegramBot
$ pip install -r requirements.txt


 token: 'YOUR_BOT_TOKEN'
 db_username: 'MYSQL_USER_NAME'
 db_password: 'MYSQL_PASSWORD'
 db_host: 'localhost'
 db_port: 3306
 export_type: 'batch'
 bot_admin: ['admin1_telegram_username', admin2_telegram_username']
  • token - Your Telegram Bot API Token, to get the token follow the instructions available here
  • input_csv - Path to the input csv file, which contains the Locations to be translated.
  • The Input csv file should consists of the following 3 mandatory columns
    • osm_id - OSM Node ID of the Location
    • name - Name of the Location to be translated
    • translation - Suggested Google or any other translation if available (But the column is mandatory)
  • db_name - Name of the MySQL db, will be generated if not exists.
  • db_username - User name to connect to MySQL database.
  • db_password - Password to connect to DB.
  • db_host - Hostname of the DB, if using local database use localhost
  • db_port - Port to connect to db, MySQL default port is 3306
  • export_type - For exporting data from DB
    • batch - To export data which is not exported already.
    • all - To export all available data which are wither verified or translated.
  • bot_admin - Telegram username of the user to be given Admin access.


$ python 
$ python
$ python
  • Running will generate a MySQL DB if not already created and will seed it with data from the input csv file and to update admin roles to existing users.
  • Run python -c 'from populate_db import add_admin; add_admin()'to update admin roles alone without importing data to DB.
  • Running will start the Telegram Bot.
  • Runnign will export translated data available in DB to a CSV file.


TelegramBot Handcrafted for Translation of places in OpenStreetMap








No releases published


No packages published