aboutsummaryrefslogtreecommitdiffhomepage
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md76
1 files changed, 22 insertions, 54 deletions
diff --git a/README.md b/README.md
index 3303d8a32..a3669353b 100644
--- a/README.md
+++ b/README.md
@@ -9,11 +9,11 @@
9 | <strong><a href="https://instances.joinpeertube.org">Join an instance</a></strong> 9 | <strong><a href="https://instances.joinpeertube.org">Join an instance</a></strong>
10 | <strong><a href="#package-create-your-own-instance">Create an instance</a></strong> 10 | <strong><a href="#package-create-your-own-instance">Create an instance</a></strong>
11 | <strong><a href="#contact">Chat with us</a></strong> 11 | <strong><a href="#contact">Chat with us</a></strong>
12 | <strong><a href="https://framasoft.org/en/#soutenir">Donate</a></strong>
12</p> 13</p>
13 14
14<p align="center"> 15<p align="center">
15Federated (ActivityPub) video streaming platform using P2P (BitTorrent) 16Be part of a network of multiple small federated, interoperable video hosting providers. Follow video creators and create videos. No vendor lock-in. All on a platform that is community-owned and ad-free.
16directly in the web browser with <a href="https://github.com/feross/webtorrent">WebTorrent</a>.
17</p> 17</p>
18 18
19<p align="center"> 19<p align="center">
@@ -60,6 +60,20 @@ directly in the web browser with <a href="https://github.com/feross/webtorrent">
60 </a> 60 </a>
61</p> 61</p>
62 62
63Introduction
64----------------------------------------------------------------
65
66PeerTube is a free, decentralized and federated video platform developed as an alternative to other platforms that centralize our data and attention, such as YouTube, Dailymotion or Vimeo. :clapper: But one organization hosting PeerTube alone may not have enough money to pay for bandwidth and video storage of its servers, all servers of PeerTube are interoperable as a federated network, and non-PeerTube servers can be part of the larger Vidiverse (federated video network) by talking our implementation of ActivityPub. Video load is reduced thanks to P2P (BitTorrent) in the web browser via <a href="https://github.com/feross/webtorrent">WebTorrent</a>.
67
68To learn more, see:
69* This [two-minute video](https://framatube.org/videos/watch/217eefeb-883d-45be-b7fc-a788ad8507d3) (hosted on PeerTube) explaining what PeerTube is and how it works
70* PeerTube's project homepage, [joinpeertube.org](https://joinpeertube.org)
71* Demonstration instances:
72 * [peertube.cpy.re](https://peertube.cpy.re)
73 * [peertube2.cpy.re](https://peertube2.cpy.re)
74 * [peertube3.cpy.re](https://peertube3.cpy.re)
75* This [video](https://peertube.cpy.re/videos/watch/da2b08d4-a242-4170-b32a-4ec8cbdca701) demonstrating the communication between PeerTube and [Mastodon](https://github.com/tootsuite/mastodon) (a decentralized Twitter alternative)
76
63:sparkles: Features 77:sparkles: Features
64---------------------------------------------------------------- 78----------------------------------------------------------------
65 79
@@ -91,36 +105,12 @@ Be it as a user or an instance administrator, you can decide what your experienc
91 105
92<h3 align="right">Communities that help each other</h3> 106<h3 align="right">Communities that help each other</h3>
93<p align="right"> 107<p align="right">
94In addition to visitors using WebTorrent to share the load among them, instances can help each other by caching one another's videos. This way even small instances have a way to show content to a wider audience, as they will be shouldered by friend instances (more about that in our <a href="/support/doc/redundancy.md">redundancy guide</a>). 108In addition to visitors using WebTorrent to share the load among them, instances can help each other by caching one another's videos. This way even small instances have a way to show content to a wider audience, as they will be shouldered by friend instances (more about that in our <a href="https://docs.joinpeertube.org/lang/en/devdocs/architecture.html#redundancy-between-instances">redundancy guide</a>).
95</p> 109</p>
96<p align="right"> 110<p align="right">
97Content creators can get help from their viewers in the simplest way possible: a support button showing a message linking to their donation accounts or really anything else. No more pay-per-view and advertisements that hurt visitors and <strike>incentivize</strike> alter creativity (more about that in our <a href="./FAQ.md">FAQ</a>). 111Content creators can get help from their viewers in the simplest way possible: a support button showing a message linking to their donation accounts or really anything else. No more pay-per-view and advertisements that hurt visitors and <strike>incentivize</strike> alter creativity (more about that in our <a href="./FAQ.md">FAQ</a>).
98</p> 112</p>
99 113
100---
101
102Want to see it in action?
103
104 * Demonstration servers:
105 * [peertube.cpy.re](https://peertube.cpy.re)
106 * [peertube2.cpy.re](https://peertube2.cpy.re)
107 * [peertube3.cpy.re](https://peertube3.cpy.re)
108 * [Video](https://framatube.org/videos/watch/217eefeb-883d-45be-b7fc-a788ad8507d3) explaining what PeerTube is
109 * [Video](https://peertube.cpy.re/videos/watch/da2b08d4-a242-4170-b32a-4ec8cbdca701) showing the communication between PeerTube and [Mastodon](https://github.com/tootsuite/mastodon)
110
111:question: Motivation
112----------------------------------------------------------------
113
114We can't build a FOSS video streaming alternative to YouTube, Dailymotion,
115Vimeo... with centralized software. One organization alone may not have
116enough money to pay for bandwidth and video storage of its servers.
117
118So we need to have a decentralized network of servers seeding videos (as
119[Diaspora](https://github.com/diaspora/diaspora) for example). But it's not
120enough because one video could become popular and overload the server. That is
121why we need to use a P2P protocol to limit the server load. Thanks to
122[WebTorrent](https://github.com/feross/webtorrent), we can make BitTorrent inside the web browser, as of today.
123
124:raised_hands: Contributing 114:raised_hands: Contributing
125---------------------------------------------------------------- 115----------------------------------------------------------------
126 116
@@ -178,35 +168,13 @@ See the more general [admin documentation](https://docs.joinpeertube.org/lang/en
178 168
179### Technical documentation 169### Technical documentation
180 170
181See [ARCHITECTURE.md](/ARCHITECTURE.md) for a more detailed explanation of the architectural choices. 171See the [architecture blueprint](https://docs.joinpeertube.org/lang/en/devdocs/architecture.html) for a more detailed explanation of the architectural choices.
182
183#### Backend
184
185 * REST API:
186 * OpenAPI 3.0.0 schema: [/support/doc/api/openapi.yaml](/support/doc/api/openapi.yaml)
187 * HTML explorer: [docs.joinpeertube.org/api.html](http://docs.joinpeertube.org/api.html)
188 * Servers communicate with each other with [Activity
189 Pub](https://www.w3.org/TR/activitypub/).
190 * Each server has its own users who query it (search videos, query where the
191 torrent URI of this specific video is...).
192 * When a user uploads a video, the server sends its followers metadata about the video (name, short description, torrent URI...).
193 * A server is a tracker responsible for all the videos uploaded on it.
194 * Even if nobody watches a video, it is seeded by the server (through
195 [WebSeed protocol](http://www.bittorrent.org/beps/bep_0019.html)) where the
196 video was uploaded.
197
198Here are some simple schemes:
199
200<p align="center">
201
202<img src="support/doc/user/decentralized.png" alt="Decentralized" />
203
204<img src="support/doc/user/watch-video.png" alt="Watch a video" />
205 172
206<img src="support/doc/user/watch-p2p.png" alt="Watch a P2P video" /> 173See our REST API documentation:
207 174 * OpenAPI 3.0.0 schema: [/support/doc/api/openapi.yaml](/support/doc/api/openapi.yaml)
208</p> 175 * Spec explorer: [docs.joinpeertube.org/api.html](http://docs.joinpeertube.org/api.html)
209 176
177See our [ActivityPub documentation](https://docs.joinpeertube.org/lang/en/devdocs/federation.html).
210 178
211:heart: Supports of our crowdfunding 179:heart: Supports of our crowdfunding
212---------------------------------------------------------------- 180----------------------------------------------------------------