We investigate the problem of collaborative video streaming in overlay networks. We exploit path and source diversity, as well as basic processing capabilities of network nodes in order to increase the overall throughput and improve the video quality at the clients. We consider an architecture where several streaming servers simultaneously deliver video information to a set of clients. The servers apply Raptor coding on the video packets for error resiliency, and the forwarding peer nodes selectively combine the Raptor coded video packets in order to increase the packet diversity. We analyze the performance of selective network coding and we describe its application in video streaming systems. We further define the source and channel rate allocation in such a collaborative streaming system by estimating the expected symbol diversity at clients. The optimization is defined as minmax and it is solved by a low-cost bisection based method. The experimental evaluation demonstrates that our system typically outperforms Raptor video streaming systems that do not use network coding, or systems that perform decoding and encoding in the network nodes. Finally, our solution presents a low complexity and only requires small buffers in the network coding nodes, which are certainly important advantages for deployment in practical streaming systems.