Причина, по которой вы получаете разные хэши, заключается в том, что вы на самом деле не хэшируете содержимое файла, а только строковое представление объекта файла.Например:
>>> f = open('480p.m4v')
>>> print str(f)
<open file '480p.m4v', mode 'r' at 0x0224C9D0>
Вы заметите, что адрес объекта, очевидно, изменяется между различными экземплярами, вызывая изменение хеша.Очевидно, место в памяти одного файлового объекта повторно используется каждым вторым созданным экземпляром, в результате чего хэши совпадают.
Чтобы хэшировать содержимое файла, вы можете использовать это: