@MrBrainop
Начал изучать html, Python и QT Designer

TelegramBOT сохранение голосовых сообщений?

Как сохранить голосовое сообщение в папку
Пример: Я отправляю боту голосовое он его сохраняет как аудио файл и отсылает мне обратно(файл)
Как можно такое реализовать?
  • Вопрос задан
  • 2976 просмотров
Решения вопроса 1
shabelski89
@shabelski89
engineer
Когда будем учиться гуглить и изучать документацию, примеры?

Ниже код, при отправке голосовой заметки - сохраняет файл в формате *.ogg с именем userId_unixtime (микросекунды обрезал коряво но и так сойдет). По команде /start - бот отправит сохранённые файлы голосовых заметок для пользователя, который их записал.

# -*- coding: utf-8 -*-
import telebot
from time import time
import os

bot = telebot.TeleBot(token_test)


@bot.message_handler(content_types=['voice'])
def voice_processing(message):
    file_info = bot.get_file(message.voice.file_id)
    downloaded_file = bot.download_file(file_info.file_path)
    with open(f'{message.chat.id}_{int(time())}.ogg', 'wb') as new_file:
        new_file.write(downloaded_file)


@bot.message_handler(commands=['start'])
def voice_send(message):
    l_send = [filename for filename in os.listdir() if filename.startswith(f'{message.chat.id}')]
    for f in l_send:
        voice = open(f'{f}', 'rb')
        bot.send_voice(chat_id=message.chat.id, voice=voice)


if __name__ == "__main__":
    try:
        bot.polling(none_stop=True)
    except Exception as e:
        print(e)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@kirillinyakin
Насколько я помню, когда ты оправляшь боту голосовую, то в объекте, который приходит в обработчик, есть у голосового file id, который ты можешь сохранить и потом обратно его отправить
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы