Video streaming is one of the dominant forms of traffic on the Internet. This increases workload on the video servers, which leads to substantial slowdowns. In order to resolve the slowdown problem, and to provide a scalable and robust infrastructure to support on-demand streaming, helper-assisted video-on-demand (VoD) systems have been introduced. In this architecture, helper nodes, which are micro-servers with limited storage and bandwidth resources, download and store the user requested videos from a central server to decrease the load on the central server. Multi-layer videos, in which a video is divided into different layers, can also be used to improve scalability. In this paper, we study the problem of utilizing the helper nodes to minimize the pressure on the central servers. We formulate the problem as a linear programming (LP) optimization using joint inter- and intra-layer network coding (NC). We show that a lightweight triangular inter-layer NC can be used, instead of the general form of inter-layer NC, to achieve the optimal solution. Our solution can also be implemented in a distributed manner. We show how our method can be extended to the case of wireless live streaming, in which a set of videos is broadcast. We carefully study the convergence and the gain of our distributed approach.