AVPlayerItem is redownloaded when played in the loop

We are using standard way of playing videos with AVPlayerItem and AVPlayer.

After each AVPlayerItemDidPlayToEndTime notification we call player.seek(to: .zero), which makes some of the videos to be redownloaded every time.

Those videos have one thing in common. When AVPlayerItem.status is changed to .readyToPlay, AVPlayerItem.currentTime() != .zero

When seeking to initial AVPlayerItem.currentTime() instead of .zero on each loop, looks like video start from the beginning and is not being redownloaded.

What could make AVPlayerItem.currentTime() be not .zero, while not being played yet.
Could seeking to initial AVPlayerItem.currentTime() actually solve the problem of videos being redownloaded?