В прошлых уроках мы научились отслеживать команды, а также текст. Но что делать если вдруг пользователь отправит нам некий файл(видео, фото, аудио и т.д.)? Для этого по сути используется тот же самый принцип, как и для отслеживания команд и текста. Мы создаем с вами декоратор @bot.message_handler(), но теперь вместо commands мы будем обращаться к content_types и внутри мы говорим какой тип файла мы ожидаем(т.е. этот метод сработает только в том случае, если самому коду будет отправлен определенный файл с конкретным разрешением). Сейчас мы можем указать любой тип файла(это может быть: 'audio', 'video', 'photo'). Также данный метод, как и с отслеживаниями команд может срабатывать на несколько типов файлов, если указать их через запятую(Например:content_types = 'photo', 'video').
Когда ты открываешь файл без контекста, любой эксепшн рушит твою программу. Делать надо через with open(...) as f: