Отправка видеосообщения (video note) в Telegram с использованием `file_id`, `access_hash` и `file_reference` должна выполняться с учётом специфики формата видеосообщений. Дело в том, что просто передав документы с помощью `InputDocument`, вы не сможете гарантировать, что Telegram обработает их как видеосообщения.
Вот несколько шагов и советов, которые могут помочь в вашей ситуации:
1. **Проверьте форматы**: Убедитесь, что ваши видео соответствуют формату для видеосообщений, который должен быть квадратным (например, 640x640 или 320x320) и иметь кодек VP8.
2. **Использование `send_document`**: Иногда вместо `send_file` и создания `InputDocument` может быть целесообразно использовать `send_document`. Это позволит Telegram само обрабатывать и классифицировать файл как видеозапись.
3. **Параметр video_note**: Параметр `video_note` должен быть верно установлен в `True`, как вы уже это сделали.
Вот пример кода, где вместо `InputDocument` используется `file_id`, который может сработать для вашего случая:
```python
async def send_video_note(chat_name, file_id):
await client.send_document(
entity=chat_name,
document=file_id,
attributes=[DocumentAttributeVideo(duration=60, w=640, h=640, supports_streaming=True)],
buttons=None,
force_document=False,
allow_cache=True,
video_note=True
)
```
4. **Проверьте свойства видео**: Обязательно проверьте, что свойства видео (duration, width, height и т.д.) установлены правильно. Например, размер должен быть квадратным.
5. **Используйте транзакцию**: Если ничего не помогает, попробуйте сначала загрузить видео на сервер Telegram с помощью другой функции, чтобы получить новый `file_id` и затем отправьте его как видеосообщение.
6. **Отладка**: Используйте простую функцию для отладки, которая отправляет видео (или другое сообщение), убедитесь, что коды ошибок не генерализированы и вручную проверьте значения `file_id` и других параметров.
К сожалению, API Telegram может быть немного сложен, и иногда надо экспериментировать с разными параметрами, чтобы достичь желаемого результата.