вообще это в гугле первая ссылка. Если нужно из списка значений достать рандомное, то передаете этот список метод choice. Он вам выдает рандомное значение из этого списка. Ровно то, что вы спрашивали в задаче
kicherov_maxim, проанализируйте сначала строку, прежде чем с ней что-то делать. Если в ней нет символа ":", то конечно split по этому символу вернёт список из одного элемента и обратиться к индексу 1 не выйдет.
Вы должны знать какие тексты ошибок встречаются. По ключевым словам понять что с ними делать дальше.
Никита Чайникович, * - импортировать все из telebot. Все не нужно. Нужно только types. Вообще использовать конструкцию import * крайне не рекомендуется, особенно когда не до конца понятно как оно работает.
надо начать с изучения питона.
Хотя бы понять, что точка с запятой в конце строки не ставится, это не JS и не Pascal.
Потом изучить тему функций, чтобы код pytube обернуть в функцию.
Потом изучить тему модулей и их импортирования, чтобы импортировать функцию из модуля, где описана работа с pytube
при отправке сразу нескольких фотографий, действительно прилетает столько же сообщений, сколько фотографий было отправлено. Но в каждом таком сообщении есть поле media_group_id, отвечающее как раз за группировку этих снимков. И этот id у всех этих сообщений будет одинаковым. Может как-то стоит на это ориентироваться?