O __init__ não é o construtor. O __init__ é o inicializador. Em Python o construtor é o __new__. 
O __init__ não é o construtor. O __init__ é o inicializador. Em Python o construtor é o __new__. 
Olá, Henrique, tudo bem?
De fato no Python, o método __new__ é o verdadeiro construtor, pois é ele que é responsável por criar e retornar a nova instância do objeto. Porém na prática, o __new__ é pouco usado, pois o Python chama automaticamente o método __init__ após o __new__. Isso significa que quando criamos uma nova instância de uma classe, o Python primeiro chama o __new__ para criar a instância e, em seguida, chama o __init__ para inicializá-la.
Por isso, na maioria das vezes, quando falamos em "construtor" em Python, estamos nos referindo ao método __init__, mesmo que tecnicamente o verdadeiro construtor seja o __new__. Isso acontece porque é no __init__ que normalmente definimos os atributos que queremos que a nossa instância tenha, e é ele que usamos para controlar como a instância é criada.
No contexto da aula, quando o instrutor se refere ao __init__ como "construtor", ele está se referindo a essa prática comum de usar o __init__ para definir como as instâncias da classe são criadas. 
Espero ter esclarecido à dúvida.
Abraços.