The p2pd package can be used to build scalable content distribution networks (CDNs) for interactive video-on-demand (VoD) streaming. It can be used as a server, a cache, and a client, and used to construct both traditional CDNs and P2P-based CDNs that make use of client resources to stream video files. The system is network aware, attempts to make efficient use of the available resources, and adapts to server failures.