# P2PTV

P2PTV refers to peer-to-peer (P2P) software applications designed to redistribute video streams in real time on a P2P network; the distributed video streams are typically TV channels from all over the world but may also come from other sources. The draw to these applications is significant because they have the potential to make any TV channel globally available by any individual feeding the stream into the network where each peer joining to watch the video is a relay to other peer viewers, allowing a scalable distribution among a large audience with no incremental cost for the source.

## Technology and use

In a P2PTV system, each user, while downloading a video stream, is simultaneously also uploading that stream to other users, thus contributing to the overall available bandwidth. The arriving streams are typically a few minutes time-delayed compared to the original sources. The video quality of the channels usually depends on how many users are watching; the video quality is better if there are more users. The architecture of many P2PTV networks can be thought of as real-time versions of BitTorrent: if a user wishes to view a certain channel, the P2PTV software contacts a "tracker server" for that channel in order to obtain addresses of peers who distribute that channel; it then contacts these peers to receive the feed. The tracker records the user's address, so that it can be given to other users who wish to view the same channel. In effect, this creates an overlay network on top of the regular internet for the distribution of real-time video content.
The need for a tracker can also be eliminated by the use of distributed hash table technology.
Some applications allow users to broadcast their own streams, whether self-produced, obtained from a video file, or through a TV tuner card or video capture card. Many of the commercial P2PTV applications were developed in China (TVUPlayer, PPLive, QQLive, PPStream). The majority of available applications broadcast mainly Asian TV stations, with the exception of TVUPlayer, which carries a number of North American stations including CBS, Spike TV, and Fox News. Some applications distribute TV channels without a legal license to do so; this utilization of P2P technology is particularly popular to view channels that are either not available locally, or only available by paid subscription, as is the case for some sports channels. Distributing links to pirated P2PTV feeds on a U.S.-based Web site can result in the U.S. government seizing the Web site, as it did with several P2PTV aggregation sites prior to Super Bowl XLV. By January 2009, there were about 14,000 P2P channels on PPStream.
Other commercial P2PTV applications outside China are Abroadcasting (USA), Zattoo (Switzerland/USA), Octoshape (Denmark), LiveStation (UK).

## Issues for broadcasters

* Broadcasting via a P2PTV system is usually much cheaper than the alternatives and can be done by private individuals.
* No quality of service (QoS). Compared to unicasting (the standard server-client architecture used in streaming media) no one can guarantee a reliable stream, since every user is a rebroadcaster. Each viewer is a part of a chain of viewers who can all have a negative influence on the reliability of the stream (by having a slow PC, a filled downlink or uplink or an unreliable consumer grade DSL or cable connection).
* Less control. If a broadcaster prefers to limit access to their content based on regions, and would like good data on viewer behaviour, such as volume, trends and viewing time, then a traditional broadcasting solution offers more control.
* Professional broadcasters and distributors have used a hybrid solution for many years. Distribution servers are not centrally installed, but are rolled out in a smart, decentralized way. A central management facility manages content distribution over multiple peer servers (also known as edge servers, or caches), strategically located near user swarms (generally popular access ISP networks), manages load balancing, redirection of users, view reporting and QoS. An example is Akamai.

## Notable applications
### Compared

| App | Fully Distributed | Public | Private | FOSS | First Release | Windows | Linux | Mac | Android | iOS | Comments |
| Ace Stream | ? | Yes | No | No | 2012 | Yes | Yes | via Wine | Yes | No | home |
| QQLive | No | ? | ? | No | ? | Yes | No | No | ? | ? | source |
| peerstreamer | ? | Yes | No | No | ? | play only (2013/12/11) | Yes (2013/12/11) | play only (2013/12/11) | ? | ? | home Archived 2011-11-24 at the Wayback Machine source |
| Tribler | Yes | Yes | ? | Yes; LGPL | 2007 | Yes | Yes | Yes | Yes | No | home source |
| anym3u8player.com | Yes | Yes | No | No | 2023 | Yes | Yes | Yes | Yes | Yes | Utilizes P2P technology to reduce server load by up to 90%, enhancing streaming during peak times. home |

### Branded webtv service for end-users

* Afreeca – based in South Korea
* Funshion – based in China mainland
* Hypp.TV (live and non-live) – based in Malaysia
* Miro (non-live)
* PPLive – based in China mainland, Chinese only program.
* PPStream – based in China mainland
* QQLive – based in China mainland
* Zattoo.com (Windows, Linux, Mac)

### Commercial solutions for broadcasters

* Alluvium – based in Texas, USA
* CDNetworks (CDN service)
* Rawflow

### Free P2P TV software for end users and amateur broadcasters

* Ace Stream - P2PTV software solution based in Russia and derived from BitTorrent
* Tribler – linked to P2P-Next, relies on BitTorrent protocol

### Unclassified (yet)

* Pulse – (Windows, Linux) LGPL P2PTV engine with announcement portal and unrestricted access
* Red Swoosh

### Discontinued services

* Babelgum.com (non-live, used peer-to-peer technology until March 2009)
* BBC iPlayer (live and non-live, used peer-to-peer technology until December 2008)
* CoolStreaming (discontinued service)
* Joost.com (non-live, live trials)
* LiveStation.com (Windows, Linux, Mac) – based in United Kingdom
* Pando
* Sopcast
* Streamtorrent
* TVUnetworks – P2PTV software (Windows and Mac OS X) and network (Discontinued, Service is shut down)