Зачем тут нужны функции self и почему они не работают?
Автор видео некомпетентен. Вполне вероятно, что он такой же новичок.
Аргумент self необходим для функций что находятся внутри класса (методы), в них передаётся класс или экземпляр класса. Это необходимо для обращения к собственным атрибутам и методам.
В вашем случае в них нет никакой необходимости так как функции находятся вне класса.
Но если вы захотите их присвоить каким либо методам класса то данный аргумент self будет необходим.