Converter
The Converter mode in Multogram: batch conversion of Telegram accounts between any formats — Telethon and Pyrogram .session files, tdata folders (Telegram Desktop), Android data and string sessions — without signing in to the accounts. Accounts of the database, files or whole folders, automatic format detection, and the .json that keeps the account's client.
Where in the app
Access
Accounts
Restriction risk
Converter converts Telegram accounts from one format to another. You need it when the format of purchased
accounts doesn't match the one you need: for example, you have tdata folders, while Multogram needs a .session
file — or the other way round, an account needs to be opened in Telegram Desktop.
The converter works with files only: it doesn't sign in to Telegram, doesn't check accounts and sends nothing to Telegram.
Formats
| Format | What it is |
|---|---|
| Telethon (.session) | A regular .session file together with its .json — these are the accounts you add to Multogram |
| Pyrogram (.session) | A .session file in a different internal layout, also with its .json — some account sellers supply these |
| TData (Desktop) | The tdata folder of the Telegram Desktop program |
| Android (tgnet.dat) | Session data of the Telegram app for Android (files/tgnet.dat) |
| Telethon string / Pyrogram string | A string session of that library: one line of text in a .txt file (and its .json beside it, when it has one) |
Any format converts into any other.
A .session account is a pair of files: 79001234567.session and 79001234567.json with the same name in one
folder. The .json is the account's client data (application, device, languages); without it the session is
incomplete. So a .session without its .json is not converted (the log says why), and a .json alone is not an
account but the data of a session that has to lie beside it.
Settings
| Parameter | Default | What it does |
|---|---|---|
| What to convert | Files | Where the accounts are, in the form they are kept in: Accounts — accounts of the accounts database; Files — the files you pick; Folder — a tdata folder, an Android data folder, or a folder searched for every account in it |
| Accounts to convert | — | Shown for Accounts: the accounts picked from the database, at least one |
| Files to convert | — | Account files: a .session with its .json beside it (pick either file of the pair — the whole account is taken), a string session .txt (one string per file), an Android tgnet.dat (its userconfing.xml is read from the account's folder). A tdata account is a folder: pick it with Folder |
| Folder to convert | — | A tdata folder (or the account folder holding it), an Android data folder, or a folder with accounts of any kind side by side |
| What to take from the folder | All | For a Folder only: which of the accounts found in it to convert, by what they are on disk: Session (.session + .json, Telethon or Pyrogram — detected by itself), TData, Android (tgnet.dat), String session (.txt). An account left unticked is passed over with a line in the log |
| Convert to | TData | What to convert into. A .session or string result is always written together with its .json. An account already in this format is passed over. When only TData or only Android is taken from a folder, that format is left out of the list |
| Output folder | — | Where to save the result |
Accounts of the database
With What to convert → Accounts you pick the accounts right on the tab, in the same list as elsewhere in
Multogram: search, tables, "Select all". Each picked account is converted from its session file, whatever format
that file is in, and takes its data along — the .json file of the account or the device data stated for it when it
was added. So the converted account presents the same device and application as the account in the database.
The account in the database is not changed: its session stays where it was, and the result is a copy in the Output folder. An account whose session file is missing (or which has none) is shown in the log as an error, and the others are converted as usual.
The format is detected by itself
The format of a source is never stated by hand: the converter reads each file and decides what it is from the content, not from the extension: a Telethon file, a Pyrogram file, a string session. In a folder:
- an account folder with a
tdatainside (79001234567\tdata) is one account; - an Android data folder (with
files\tgnet.dat) is one account; - a
.jsonnext to a session of the same name is that session's data, not a separate account; - a
.sessionwithout its.jsonand a.jsonwithout its.sessionare shown in the log as errors; - notes, pictures and other files are passed over without a word;
- a
.sessionor.datthat can't be read is shown in the log with the reason; - the folder is searched four levels down.
Accounts that are already in the target format are skipped with a line in the log, and so is anything inside the output folder (the results of an earlier run).
The .json and the account's "client"
Telegram remembers which application an account's authorization belongs to: Telegram Desktop, Telegram for Android
or a program with its own app id. If the same authorization suddenly turns up as another application, with a
different device, that is a reason for suspicion. So when the result is a .session or a string session, the
converter writes a .json next to it — the data of the client the account already is:
| Source | What goes into the result's .json |
|---|---|
A session with its own .json | That .json as it is: device, app version, languages, 2FA, proxy — every field is kept |
| An account of the database | Its data: the account's .json file (wherever it lies) or the device data stated for it |
A tdata folder | Telegram Desktop (app id 2040, tdesktop, its current version) |
| Android data | Telegram for Android on a device of its own for this account, in the region of its number |
| A string session that names an official app id | That application |
A Telethon string with no .json | Its client is unknown: it is not converted into a .session or string (the log says why) — the converter doesn't invent a client. Into tdata and Android it is converted: those applications introduce themselves |
The source .json itself is never rewritten. For tdata and Android results no .json is written: those
applications introduce themselves.
Pyrogram files, tdata folders and Android data store the account id. The converter takes it from the source or
from the id field of the .json. A Telethon file doesn't store the id; if the .json has none either, a constant
placeholder id is written so the session opens.
How it works
The task runs in one thread: the converter finds the accounts, converts each one in turn and puts the result into
the Output folder. The log shows "Converted … → …" for each account (and where its .json came from) or the
reason for the error. An error on one account doesn't stop the others. At the end — how many were converted, skipped
and failed. A task that converted nothing ends with an error and says why.
Each result is named after its source:
| Convert to | What appears in the output folder |
|---|---|
| Telethon or Pyrogram (.session) | 79001234567.session and 79001234567.json |
| Telethon or Pyrogram string | 79001234567.telethon.txt / 79001234567.pyrogram.txt and 79001234567.json |
| TData (Desktop) | A 79001234567\tdata folder |
| Android (tgnet.dat) | A 79001234567 folder with files\tgnet.dat and shared_prefs\userconfing.xml |
For a tdata folder the name is taken from the folder it sits in. Results of different accounts are placed side
by side, and anything else already in the output folder is left alone. If a result would coincide with its source
(the same folder, the same kind of file), the format is added to the name: 79001234567_pyrogram.session.
To start, click Run task. The task editor doesn't ask for accounts: for Accounts they are the ones picked on the tab, and files and folders need none.
Recommendations
- One copy at a time. A converted account is the same authorization as its source. Don't run the original and
the copy at the same time: Telegram ends an authorization used from two places at once (
AUTH_KEY_DUPLICATED). - Keep the .json with the session. A
.session+.jsonpair keeps the account's device and application. - A separate output folder for each conversion — this makes it easier to find what you got this time.
- Work on a copy. Back up the source accounts before converting.
Common questions
Why was an account not converted?
The log says why: the file is damaged, the tdata folder is protected with a local password, or a text file holds
several string sessions (put each in a file of its own).
Will the account become "cleaner" after conversion?
No. It is the same account with the same history and restrictions — only the file format changes.
How do I add the converted sessions to Multogram afterwards?
The Accounts tab → + → Bulk → select the .session and .json files from the output folder. See
Accounts.
Does the converter check that the account is alive?
No. After adding the accounts to the database, run the Check accounts mass action.
Updated
Auto Registration
The Auto Registration mode in Multogram: registering new Telegram accounts on numbers from SMS services or entered manually. SMS services, captcha, email confirmation, device and region, proxies, 2FA, timeouts, refunds for numbers and reasons for failures.
Profile Customizer
The Profile Customizer mode in Multogram: bulk changes of the first name, last name, bio, username and avatar of Telegram accounts. Name generation by country and gender, templates, lists, random avatars and tips for making profiles look alive.