]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - support/doc/redundancy.md
Fix images size when downloading them
[github/Chocobozzz/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 ```