Sem querer acabei descobrindo o __iter__ antes do vídeo que apresentou o __getitem__.
Até onde vi, parece que o __iter__ é mais para quando quero criar um iterável de onde não tenha um, e o __getitem__ é mais para quando eu estou trabalhando com uma lista em sequência.
Meu código estava como:
def __iter__(self):
return iter(self.videos_list)