Rename downloadingEnabled property to downloadEnabled
[oweals/peertube.git] / support / doc / redundancy.md
1 # Redundancy
2
3 A PeerTube instance can cache other PeerTube videos to improve bandwidth of popular videos or small instances.
4
5 ## How it works
6
7 The instance administrator can choose between multiple redundancy strategies (cache trending videos or recently uploaded videos etc), set their maximum size and the minimum duplication lifetime.
8 Then, they choose the instances they want to cache in `Manage follows -> Following` admin table.
9
10 <p align="center">
11
12 <img src="user/redundancy.png" alt="Redundancy" />
13
14 </p>
15
16 Videos are kept in the cache for at least `min_lifetime`, and then evicted when the cache is full.
17
18 When PeerTube chooses a video to duplicate, it imports all the resolution files (to avoid consistency issues) using their magnet URI and put them in the `storage.videos` directory.
19 Then it sends a `Create -> CacheFile` ActivityPub message to other federated instances. This new instance is injected as [WebSeed](https://github.com/Chocobozzz/PeerTube/blob/develop/FAQ.md#what-is-webseed) in the magnet URI by instances that received this ActivityPub message.
20
21 ## Stats
22  
23 See the `/api/v1/server/stats` endpoint. For example:
24
25 ```
26 {
27   ...
28   "videosRedundancy": [
29     {
30       "totalUsed": 0,
31       "totalVideos": 0,
32       "totalVideoFiles": 0,
33       "strategy": "most-views",
34       "totalSize": 104857600
35     },
36     {
37       "totalUsed": 0,
38       "totalVideos": 0,
39       "totalVideoFiles": 0,
40       "strategy": "trending",
41       "totalSize": 104857600
42     },
43     {
44       "totalUsed": 0,
45       "totalVideos": 0,
46       "totalVideoFiles": 0,
47       "strategy": "recently-added",
48       "totalSize": 104857600
49     }
50   ]
51 }
52 ```