Skip to content

ZOONGG/Obsidian-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Obsidian Telegram Bot

Описание

Этот бот добавляет текст или вложения в Obsidian-репозиторий и скачивает медиа с YouTube по запросу. Используются aiogram v3, sqlite, yt-dlp и ffmpeg.

Навигация

  • Единственная глобальная кнопка навигации: 🏠 Главное меню.
  • Кнопок «Назад» и «Отмена» нет.
  • Главное меню показывается только по /start или при нажатии 🏠 Главное меню.

Требования

  • Python 3.11+
  • ffmpeg
  • Токен Telegram-бота
  • Deno (может понадобиться для загрузки YouTube)

Установка (Ubuntu VPS)

  1. Обновите пакеты.
  2. Установите Python и ffmpeg.
  3. Создайте виртуальное окружение.
  4. Установите зависимости.
sudo apt update
sudo apt install -y python3.11 python3.11-venv ffmpeg
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Конфигурация

  1. Скопируйте .env.example в .env.
  2. Заполните значения, включая BOT_TOKEN, VAULT_PATH и WHITELIST_USER_IDS.
  3. Укажите YT_MAX_UPLOAD_MB для ограничения размера файлов. Если не задано, используется лимит 50 МБ.
  4. Задайте ATTACHMENTS_DIR как имя папки внутри хранилища для загрузок.
  5. Укажите TIMEZONE, если нужны временные метки в конкретной зоне (пример: Asia/Omsk).
  6. Для YouTube можно использовать cookies из браузера или файл cookies:
    • ПК: YTDLP_COOKIES_FROM_BROWSER=chrome|edge|firefox, опционально YTDLP_BROWSER_PROFILE=Default.
    • VPS: YTDLP_COOKIES_PATH=/path/to/cookies.txt.
  7. Укажите режим записи: OBSIDIAN_WRITE_MODE=direct|inbox (по умолчанию direct).
  8. При необходимости добавьте флаги для будущего STT: STT_ENABLED и STT_PROVIDER.
cp .env.example .env

Запуск

source .venv/bin/activate
python -m bot.main

Пример Systemd

Создайте /etc/systemd/system/obsidian-bot.service:

[Unit]
Description=Obsidian Telegram Bot
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/obsidian-telegram-bot
EnvironmentFile=/opt/obsidian-telegram-bot/.env
ExecStart=/opt/obsidian-telegram-bot/.venv/bin/python -m bot.main
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Включите и запустите сервис:

sudo systemctl daemon-reload
sudo systemctl enable obsidian-bot
sudo systemctl start obsidian-bot
sudo systemctl status obsidian-bot

YouTube cookies

Если YouTube требует подтверждение входа, используйте cookies:

  1. ПК: включите YTDLP_COOKIES_FROM_BROWSER=chrome|edge|firefox (опционально YTDLP_BROWSER_PROFILE).
  2. VPS: экспортируйте cookies для youtube.com в файл cookies.txt, загрузите его на сервер и укажите путь в YTDLP_COOKIES_PATH.
  3. Перезапустите бота.

YouTube и Deno

Для некоторых видео yt-dlp требует внешний JS-рантайм. Установите Deno на VPS или ПК и убедитесь, что он доступен в PATH.

TODO

  • Добавить распознавание речи (STT) и подключить провайдера через STT_ENABLED/STT_PROVIDER.

Синхронизация хранилища

Держите хранилище на VPS и синхронизируйте его с ПК через Syncthing или Obsidian Sync. Не добавляйте логику синхронизации в бота.

Безопасность и авторские права

Соблюдайте правила YouTube и права владельцев контента. Скачивайте только то, на что у вас есть права.

About

Телеграм бот, который поможет взаимодействовать с obsidian

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages