In recent years, the users' perceived quality of experience (QoE) in streaming services has gained a lot of attention. Particularly, a number of research efforts have focused on providing live streaming and video-ondemand (VoD) services using peer-to-peer (P2P) architectures. However, in these proposed architectures, the heterogeneity of users and their dynamic behavior has not been sufficiently studied. In a real life scenario, where users have highly heterogeneous bandwidth resources (cable, DSL, 3G networks, etc) and can arbitrarily decide to perform a VCR function (stop, fast forward and seeking), ignoring this behavior can significantly deteriorate the system's efficiency and the perceived QoE. In this paper, we present SeekStream, a scalable P2P VoD architecture that ensures the stable delivery of the video stream to every participating user even in cases of high heterogeneity and frequent seeking operations. Specifically, SeekStream is a set of algorithms that optimize the P2P overlay dynamically and in a distributed fashion, making it adaptive to users dynamic behavior and bandwidth changes. The available bandwidth resources of the participating users are optimally exploited, keeping the contribution from the media server(s) to a minimal level. To illustrate the performance of the proposed algorithms, we are using a centralized overlay network manager that discovers the optimal network graph as a reference. We have developed an extensive P2P VoD simulator that shows the efficiency, scalability, and stability of our system under variant and dynamic conditions. The algorithms of our proposed system introduce less than 4% bandwidth overhead while we achieve high offloading of the media server(s). SeekStream guarantees a high block reception rate for the users, even under extreme seeking patterns.In P2P streaming services, each media object (video) is assumed to have a certain average playback rate and is usually divided into blocks of equal size. Peers that are interested to watch the video may enter the system at arbitrary time instants and consume the video fraction(s) of their interest.Adequate space is allocated in each peer's hard disk for the purpose of saving these blocks, which are provided either directly from the media server or from the participating peers. Generally, peers join the system and watch the video sequentially. However, it is not uncommon for someone to skip one or more parts of the video that are of no interest to it.For example, in Figure 1, we depict the hard disk of peer i watching a video of 64 blocks. Peer i joined the system and opted to watch the video not from its beginning, but starting from block 5. Then after having watched until block 12, it jumped to block 17, then from 28 to 37. Its current playback point is block 50 at time t 0 . Because of the jumps, we can see that the white blocks have not been requested, thus creating blank areas, whereas the blocks that are pending (requested but not yet delivered) and received are orange and green respectively. Different video par...