Не получается получить название аудиозаписи

Я делаю бота для ВК, который на аудиовложение отвечает текстом песни. Проверить, аудиозапись отправили ему или нет у меня получилось, а вот получить название песни не выходит. При поисках я натыкался на event.object, которого у меня по какой-то причине нет. Мой код:

import vk_api
from config import token
from vk_api.longpoll import VkLongPoll, VkEventType
import random

session = vk_api.VkApi(token=token)
longpoll = VkLongPoll(session)
vk = session.get_api()

for event in longpoll.listen():
        if event.type == VkEventType.MESSAGE_NEW and event.to_me:
            atach = event.attachments
            atach_type = ''
            atach_title = ''
            try:
                atach_type = atach['attach1_type']
                #atach_title = atach['attach1_title']
            except:
                continue

            idrand = random.randint(1, 99999999)
            vk.messages.send(user_id=event.user_id, message=atach_type, random_id=idrand)

Ответы (1 шт):

Автор решения: 0xmeow

Зачем вы используете attach1_type? Такого поля просто нет. В event.attachments находится массив медиавложений. Для медиавложения с type == audio есть такие поля artist и title.

for event in longpoll.listen():
        if event.type == VkEventType.MESSAGE_NEW and event.to_me:
            attachments = event.attachments
            idrand = random.randint(1, 99999999)
            for attachment in attachments:
                if attachment["type"] == "audio":
                    vk.messages.send(user_id=event.user_id, message=attachment["title"], random_id=idrand)
                    break
            else:
                    vk.messages.send(user_id=event.user_id, message="Нет аудио", random_id=idrand)
→ Ссылка