Victor Stupin17 downloadsSync messages from Telegram bot into Obsidian, with audio transcription and AI post-processing.
Плагин Obsidian для синхронизации сообщений из личного Telegram-бота в vault.
Сообщения сначала попадают на ваш sync-сервер на Amvera, а плагин по команде забирает их в заметки. Опционально голосовые и аудио можно транскрибировать через ProxyAPI.
Только desktop (Obsidian 1.5.0+).
Ниже — по шагам.
main.js, manifest.json и styles.css из релизов репозитория плагина.<ваш-vault>/.obsidian/plugins/telegram-sync-amvera-r/
На этом этапе плагин уже есть в Obsidian, но без бота и сервера синхронизация работать не будет.
/newbot.My Obsidian Sync.bot), например: my_obsidian_sync_bot.1234567890:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Сохраните токен — он понадобится на сервере (TELEGRAM_OBSIDIAN_BOT_TOKEN). Никому его не передавайте.
Id / user id.Этот ID понадобится как MY_TELEGRAM_USER_ID: бот принимает сообщения только от вас.
/start), чтобы чат был активен.Плагину нужен backend: он принимает сообщения от бота, кладёт их в очередь и отдаёт Obsidian по API.
Исходники сервера: файлы сервера на GitHub
(замените ссылку на актуальный репозиторий с кодом Amvera-проекта).
В корне проекта должны быть, в частности:
amvera.yml — сборка и запуск;main.py, requirements.txt;В настройках проекта Amvera задайте:
| Переменная | Значение |
|---|---|
TELEGRAM_OBSIDIAN_BOT_TOKEN |
токен от BotFather |
MY_TELEGRAM_USER_ID |
ваш числовой Telegram user ID |
Без этих переменных sync на сервере не считается настроенным.
При необходимости можно задать также TELEGRAM_MEDIA_FOLDER (по умолчанию /data/telegram_media) и LOG_LEVEL.
Убедитесь, что у приложения есть постоянное хранилище (в amvera.yml обычно persistenceMount: /data) — туда пишется база сообщений.
https://ваш-проект-xxx.amvera.tech
Без слэша в конце — его потом вставите в настройки плагина.
/health), например:https://ваш-проект-xxx.amvera.tech/health
Должен быть успешный ответ (не ошибка 502/404 от хостинга).
Когда сервер отвечает и бот принимает ваши сообщения — можно настраивать плагин.
Откройте Настройки → Telegram Sync Amvera.
При желании переключите язык настроек на русский.
| Параметр | Что указать |
|---|---|
| Server URL | Публичный URL вашего приложения на Amvera без / в конце |
| Connection check | Нажмите Check — сервер должен быть доступен, Telegram sync — ready |
Если Check пишет, что sync не готов: проверьте переменные TELEGRAM_OBSIDIAN_BOT_TOKEN и MY_TELEGRAM_USER_ID и перезапуск приложения на Amvera.
| Параметр | По умолчанию | Назначение |
|---|---|---|
| Template file | Telegram/template.md |
Шаблон одной записи |
| Target file | Telegram/Inbox.md |
Куда дописываются новые сообщения |
| Attachments Folder | Telegram/Media |
Куда сохраняются медиа |
Файлы и папки создадутся при первой синхронизации, если их ещё нет (шаблон — с содержимым по умолчанию).
Нужно только если хотите транскрибировать голосовые/аудио при sync.
Тарифы: proxyapi.ru/pricing/list.
Ограничение: размер аудиофайла для транскрибации не больше 25 МБ.
Ctrl / Cmd + P) и выполните Fetch new messages.Полезные команды:
| Команда | Действие |
|---|---|
| Fetch new messages | Забрать новые сообщения с сервера |
| Check ProxyAPI balance | Показать баланс ProxyAPI |
| Open activity log | Журнал запросов и процессов плагина |
Переменные в template-файле:
| Переменная | Значение |
|---|---|
{{date}} |
Дата |
{{time}} |
Время |
{{created}} |
Дата и время |
{{sender}} |
Имя отправителя |
{{sender_id}} |
ID отправителя |
{{message_id}} |
ID сообщения |
{{type}} |
Тип (text, voice, photo, …) |
{{text}} |
Текст / подпись |
{{attachment}} |
Путь к файлу в vault |
{{file}} |
Имя файла |
{{transcription}} |
Текст транскрипции |
{{tags}} |
Теги (для аудио при включённой транскрибации — #ГГГГ-месяц и #ГГГГ-год) |
Пример:
**{{sender}}** · {{date}} {{time}}
{{tags}}
{{text}}
![[{{attachment}}]]
{{transcription}}
Для вставки файла: ![[{{attachment}}]], для ссылки: [[{{attachment}}]].
/start)TELEGRAM_OBSIDIAN_BOT_TOKEN и MY_TELEGRAM_USER_IDMIT
An Obsidian plugin that syncs messages from your personal Telegram bot into your vault.
Messages first go to your sync server on Amvera, and the plugin pulls them into notes on command. Optionally, voice and audio can be transcribed via ProxyAPI.
Desktop only (Obsidian 1.5.0+).
Step-by-step below.
main.js, manifest.json, and styles.css from the plugin repository releases.<your-vault>/.obsidian/plugins/telegram-sync-amvera-r/
At this point the plugin is in Obsidian, but sync will not work without a bot and server.
/newbot.My Obsidian Sync.bot), for example: my_obsidian_sync_bot.1234567890:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Save the token — you will need it on the server (TELEGRAM_OBSIDIAN_BOT_TOKEN). Do not share it with anyone.
Id / user id.This ID is used as MY_TELEGRAM_USER_ID: the bot accepts messages only from you.
/start) so the chat is active.The plugin needs a backend: it receives messages from the bot, queues them, and serves them to Obsidian via API.
Server source: server files on GitHub
(replace the link with the actual repository that contains the Amvera project code).
The project root should include, among other things:
amvera.yml — build and run config;main.py, requirements.txt;In the Amvera project settings, set:
| Variable | Value |
|---|---|
TELEGRAM_OBSIDIAN_BOT_TOKEN |
token from BotFather |
MY_TELEGRAM_USER_ID |
your numeric Telegram user ID |
Without these variables, sync on the server is not considered configured.
Optionally you can also set TELEGRAM_MEDIA_FOLDER (default /data/telegram_media) and LOG_LEVEL.
Make sure the app has persistent storage (in amvera.yml usually persistenceMount: /data) — that is where the message database is written.
https://your-project-xxx.amvera.tech
No trailing slash — you will paste it into the plugin settings later.
/health), for example:https://your-project-xxx.amvera.tech/health
You should get a successful response (not a hosting 502/404).
When the server responds and the bot accepts your messages, you can configure the plugin.
Open Settings → Telegram Sync Amvera.
Optionally switch the settings language to English or Russian.
| Setting | What to enter |
|---|---|
| Server URL | Public URL of your Amvera app without a trailing / |
| Connection check | Click Check — the server should be reachable and Telegram sync ready |
If Check says sync is not ready: verify TELEGRAM_OBSIDIAN_BOT_TOKEN and MY_TELEGRAM_USER_ID, then restart the Amvera app.
| Setting | Default | Purpose |
|---|---|---|
| Template file | Telegram/template.md |
Template for one entry |
| Target file | Telegram/Inbox.md |
Where new messages are appended |
| Attachments Folder | Telegram/Media |
Where media files are saved |
Files and folders are created on the first sync if they do not exist yet (the template gets default content).
Only needed if you want to transcribe voice/audio during sync.
Pricing: proxyapi.ru/pricing/list.
Limit: audio file size for transcription must be no more than 25 MB.
Ctrl / Cmd + P) and run Fetch new messages.Useful commands:
| Command | Action |
|---|---|
| Fetch new messages | Pull new messages from the server |
| Check ProxyAPI balance | Show ProxyAPI balance |
| Open activity log | Plugin request and process log |
Variables in the template file:
| Variable | Value |
|---|---|
{{date}} |
Date |
{{time}} |
Time |
{{created}} |
Date and time |
{{sender}} |
Sender name |
{{sender_id}} |
Sender ID |
{{message_id}} |
Message ID |
{{type}} |
Type (text, voice, photo, …) |
{{text}} |
Text / caption |
{{attachment}} |
Path to the file in the vault |
{{file}} |
File name |
{{transcription}} |
Transcription text |
{{tags}} |
Tags (for audio with transcription enabled — #YYYY-month and #YYYY-year) |
Example:
**{{sender}}** · {{date}} {{time}}
{{tags}}
{{text}}
![[{{attachment}}]]
{{transcription}}
To embed a file: ![[{{attachment}}]]; to link: [[{{attachment}}]].
/start)TELEGRAM_OBSIDIAN_BOT_TOKEN and MY_TELEGRAM_USER_ID setMIT