Всем приветы!
На протяжении всего 2022 года, да и сейчас меня мучают вопросами о том, как установить / настроить TTMediaBot. Сразу отмечу, что я не являюсь разработчиком и / или иным лицом, как-то связанным с этим ботом. Я всего лишь пользователь и не более того.
В данном посте будет мой способ установки бота. Думаю, он покажется вам простым. Я также хочу верить в то, что мой пост вдохновит команду разработки исправить баги, о которых им уже достаточно много людей говорит. В частности утечку памяти и не совсем иногда корректную работу сервиса youtube.
Все моменты отмечены. Начинаем!
что это вообще такое?
TTMediaBot — это программа, предназначенная для потоковой трансляции контента в голосовых конференциях Teamtalk.
Больше мне нечего сказать. О её возможностях вы можете узнать из их github. Ссылки не будет в этой части поста.
переходим к процессу установки
Оговорим сразу. В качестве системы на сервере мы будем использовать debian.
Для корректной работы бота, нам необходимо установить несколько дополнительных пакетов.
Поясню что и зачем.
- pulseaudio
- P7zip
- libmpv1
- python3
- python3-pip
, для обработки звука нашим ботом. Точнее для его трансляции в поток конференции.
, для распаковки teamtalk sdk.
, для проигрывания наших запросов в потоке конференции.
, для работы бота. Без этого наш бот работать не будет.
, для установки дополнительных зависимостей. О них позже.
Начинаем установку этих пакетов!
Для начала проверим обновления системы, выполнив команду:
apt update
Как мы видим, все пакеты у нас последние, по этому приступаем к установке пакетов.
Я забыл упомянуть git и gettext.
Не вижу смысла их пояснять. Давайте установим всё прямо сейчас.
apt install libmpv1 pulseaudio git gettext p7zip python3 python3-pip
Соглашаемся с тем, что пакеты будут установлены и ждём.
После установки пакетов, переходим к клонированию бота.
Я хочу его разместить в /home. Мне это удобно.
cd /home
git clone https://github.com/gumerov-amir/TTMediaBot.git
Переходим к настройке.
cd TTMediaBot
Установим зависимости из файла requirements.txt:
pip3 install -r requirements.txt
После этого я дам разрешения на исполнение всех скриптов:
chmod 755 -R /home/TTMediaBot
Далее мы переходим к основной настройке.
cd tools
Скомпилируем языки для бота. Это нужно для того, чтобы он писал нам на нашем родном языке.
./compile_locales.py
Теперь загрузим и установим teamtalk sdk. Это необходимо, чтобы бот мог подключаться к серверу и обрабатывать наши запросы:
./ttsdk_downloader.py
По скольку у меня уже есть токен для vk, а яндекс музыку я подключать не хочу, шаг получения токенов я пропущу. Могу сказать только вот что:
Для того, чтобы получить токены, просто поочерёдно запустите “vk_auth.py” и “yam_auth.py”. Следуйте инструкциям, которые вам выдают скрипты.
Переходим к следующему шагу.
конфигурирование
Перед тем, как продолжить настройку, создадим пользователя на сервере:
adduser bot
А теперь начинаем!
Авторизовываемся на сервер под пользователем, который создали только что.
Я для своего удобства всё буду делать через winscp.
Для начала скопируем файлы из TTMediaBot/systemd. Далее включим в настройках отображение скрытых файлов. Перейдём в .config, создадим там папку systemd, внутри создадим user. Далее вставим файлы сюда.
Отредактируем “TTMediaBot.service”.
Приводим его вот к такому виду:
[Unit]
Description=TTMediaBot
Requires=pulseaudio.service
[Service]
Type=simple
WorkingDirectory=/home/TTMediaBot
ExecStart=/home/TTMediaBot/TTMediaBot.sh -c /home/bot/config.json
Restart=on-failure
[Install]
WantedBy=default.target
Сохраним изменения.
Теперь вернёмся в корневой каталог пользователя. Затем переходим обратно в TTMediaBot и скопируем “config_default.json”. Вставляем его только после возврата в корневой каталог пользователя. Затем изменим имя и превратим его в config.json.
Заполним!
При заполнении будьте осторожны со всякими знаками. Один знак хотябы удалите, конфиг перестанет работать. Следите за правильностью заполнения. Тут нет смысла что-то объяснять, ибо разберётся даже ленивый.
Переходим далее.
запуск бота
Тут я скажу вам, что у меня изменено имя юнита, который запускает бот. По этому будьте внимательны.
Вводим поочерёдно команды под пользователем, из под которого вы этот бот запускаете:
systemctl --user enable pulseaudio
systemctl --user enable bot
systemctl --user start pulseaudio
systemctl --user start bot
loginctl enable-linger
Вот и всё! Бот успешно запущен.
Если есть вопросы, задавайте. Не прощаемся!
Думаю, корректнее будет предоставить боту права 755
Соглашусь. Этот мануал писался фактически на ходу и в условиях отсутствия времени на разъяснения. Я дополню чуть позднее про права бота.