Download OpenAPI specification:
The PeerTube API is built on HTTP(S) and is RESTful. You can use your favorite HTTP/REST library for your programming language to use PeerTube.
See the REST API quick start for a few examples of using the PeerTube API.
When you sign up for an account on a PeerTube instance, you are given the possibility to generate sessions on it, and authenticate there using an access token. Only one access token can currently be used at a time.
Accounts are given permissions based on their role. There are three roles on PeerTube: Administrator, Moderator, and User. See the roles guide for a detail of their permissions.
The API uses standard HTTP status codes to indicate the success or failure of the API call, completed by a RFC7807-compliant response body.
HTTP 1.1 404 Not Found
Content-Type: application/problem+json; charset=utf-8
{
"detail": "Video not found",
"docs": "https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}
We provide error type (following RFC7807) and code (internal PeerTube code) values for a growing number of cases,
but it is still optional. Types are used to disambiguate errors that bear the same status code
and are non-obvious:
HTTP 1.1 403 Forbidden
Content-Type: application/problem+json; charset=utf-8
{
"detail": "Cannot get this video regarding follow constraints",
"docs": "https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo",
"status": 403,
"title": "Forbidden",
"type": "https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/does_not_respect_follow_constraints"
}
Here a 403 error could otherwise mean that the video is private or blocklisted.
Example:
HTTP 1.1 400 Bad Request
Content-Type: application/problem+json; charset=utf-8
{
"detail": "Incorrect request parameters: id",
"docs": "https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo",
"instance": "/api/v1/videos/9c9de5e8-0a1e-484a-b099-e80766180",
"invalid-params": {
"id": {
"location": "params",
"msg": "Invalid value",
"param": "id",
"value": "9c9de5e8-0a1e-484a-b099-e80766180"
}
},
"status": 400,
"title": "Bad Request",
"type": "about:blank"
}
Where id is the name of the field concerned by the error, within the route definition.
invalid-params.<field>.location can be either 'params', 'body', 'header', 'query' or 'cookies'.
invalid-params.<field>.value reports the value that didn't pass validation whose invalid-params.<field>.msg is about.
The requested remote resource cannot be accessed because the instance does not follow its origin.
Saving live replays is disabled on this instance, so a live cannot be created or updated with saveReplay enabled.
Not returned by PeerTube anymore: permanent lives can save replays.
The instance has reached its maximum number of simultaneous live streams.
The authentication or token request is malformed: missing grant_type, malformed Authorization header,
access token sent using more than one method, or sent in the query string.
The grant_type is not supported. PeerTube supports password and refresh_token.
The user requested an export including video files, but the total size of their videos is above the maximum allowed by the instance for such exports. Request an export without video files instead.
The action requires a password confirmation but currentPassword is missing.
We are rate-limiting all endpoints of PeerTube's API. Custom values can be set by administrators:
Endpoint (prefix: /api/v1) |
Calls | Time frame |
|---|---|---|
/* |
50 | 10 seconds |
POST /users/token |
15 | 5 minutes |
POST /users/register |
2* | 5 minutes |
POST /users/ask-send-verify-email |
3 | 5 minutes |
Depending on the endpoint, *failed requests are not taken into account. A service
limit is announced by a 429 Too Many Requests status code.
You can get details about the current state of your rate limit by reading the following headers:
| Header | Description |
|---|---|
X-RateLimit-Limit |
Number of max requests allowed in the current time period |
X-RateLimit-Remaining |
Number of remaining requests in the current time period |
X-RateLimit-Reset |
Timestamp of end of current time period as UNIX timestamp |
Retry-After |
Seconds to delay after the first 429 is received |
If the webadmin.password_confirmation.enabled setting is enabled (default), sensitive administrator actions require
the user password in the currentPassword field of the request body:
instance.customizations of the custom configuration)pluginAuth) of an administratorAfter 10 failed password confirmations in 10 minutes (configurable), the user receives a 429 Too Many Requests status code
until the end of the time frame, even with the correct password.
This API features Cross-Origin Resource Sharing (CORS), allowing cross-domain communication from the browser for some routes:
| Endpoint |
|------------------------- ---|
| /api/* |
| /download/* |
| /lazy-static/* |
| /.well-known/webfinger |
In addition, all routes serving ActivityPub are CORS-enabled for all origins.
PeerTube >= 6.0
| filename required | string Filename |
| videoFileToken | string Video file token generated by PeerTube so you don't need to provide an OAuth token in the request header. |
| filename required | string Filename |
| reinjectVideoFileToken | boolean Ask the server to reinject videoFileToken in URLs in m3u8 playlist |
| videoFileToken | string Video file token generated by PeerTube so you don't need to provide an OAuth token in the request header. |
Generate a mp4 container that contains at most 1 video stream and at most 1 audio stream. Mainly used to merge the HLS audio only video file and the HLS video only resolution file.
required | id (integer) or UUIDv4 (string) or shortUUID (string) Video id or UUID |
| videoFileIds required | Array of integers streams of video files to mux in the output |
| videoFileToken | string Video file token generated by PeerTube so you don't need to provide an OAuth token in the request header. |
| format required | string Enum: "xml" "rss" "rss2" "atom" "atom1" "json" "json1" format expected (we focus on making |
| accountId | string limit listing comments to videos of a specific account |
| accountName | string limit listing comments to videos of a specific account |
| isLocal | boolean PeerTube >= 9.0 Display only comments of local or remote accounts |
| onLocalVideo | boolean PeerTube >= 9.0 Display only comments of local or remote videos |
| videoChannelId | string limit listing comments to videos of a specific video channel |
| videoChannelName | string limit listing comments to videos of a specific video channel |
| videoId | string limit listing comments to a specific video |
<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <title>PeerTube Nightly</title> <link>https://peertube2.cpy.re</link> <description>This instance is a test instance of the PeerTube project. It is updated to the latest commit in the develop branch every business day, 8pm CET.</description> <lastBuildDate>Sat, 07 Nov 2026 04:03:47 GMT</lastBuildDate> <docs>https://validator.w3.org/feed/docs/rss2.html</docs> <generator>PeerTube - https://peertube2.cpy.re</generator> <image> <title>PeerTube Nightly</title> <url>https://peertube2.cpy.re/lazy-static/avatars/82936e50-9560-42e7-9e4b-d96309f5c9c9.png</url> <link>https://peertube2.cpy.re</link> </image> <copyright>All rights reserved, unless otherwise specified in the terms specified at https://peertube2.cpy.re/about and potential licenses granted by each content's rightholder.</copyright> <atom:link href="https://peertube2.cpy.re/feeds/video-comments.xml?scope=local" rel="self" type="application/rss+xml"/> <item> <title><![CDATA[#climateCrisis , #llm s, #emacs ... #symbolics #lisp, #executeableArchaeology Kent Pitman John Hardy #lispyGopherClimate - Achy1les]]></title> <link>https://peertube2.cpy.re/w/ogFTHRwVNXm4GXmkNyqg58;threadId=196567</link> <guid>https://peertube2.cpy.re/w/ogFTHRwVNXm4GXmkNyqg58;threadId=196567</guid> <pubDate>Fri, 06 Nov 2026 22:37:09 GMT</pubDate> <content:encoded><![CDATA[<p>@screwtape@toobnix.org Ok. I am not saying that it is a YT link. I just asked how do you use jitsi for live streaming videos in this platform. Because when I paste my rtmp url from my account here, jitsi only accepts rtmp to live stream on YouTube...</p> ]]></content:encoded> <dc:creator>Achy1les</dc:creator> </item> <item> <title><![CDATA[#climateCrisis , #llm s, #emacs ... #symbolics #lisp, #executeableArchaeology Kent Pitman John Hardy #lispyGopherClimate - Lispy Gopher Climate w/ screwlisp]]></title> <link>https://peertube2.cpy.re/w/ogFTHRwVNXm4GXmkNyqg58;threadId=196567</link> <guid>https://peertube2.cpy.re/w/ogFTHRwVNXm4GXmkNyqg58;threadId=196567</guid> <pubDate>Fri, 06 Nov 2026 17:30:00 GMT</pubDate> <content:encoded><![CDATA[<p>@achy1les@video.hardlimit.com that sign is just a lie, jitsi actually accepts normal rtmp urls. WARNING THIS IS NOT A YOUTUBE LINK</p> ]]></content:encoded> <dc:creator>Lispy Gopher Climate w/ screwlisp</dc:creator> </item> <item> <title><![CDATA[Comida a Rex video con la Sony P43 - osr]]></title> <link>https://peertube2.cpy.re/w/weTnuKPymnyKS1SjJJFR33;threadId=196509</link> <guid>https://peertube2.cpy.re/w/weTnuKPymnyKS1SjJJFR33;threadId=196509</guid> <pubDate>Fri, 06 Nov 2026 10:55:22 GMT</pubDate> <content:encoded><![CDATA[<p>@abslutebeginner@masto.es Jajajaj! Es un gran compositor! muy inspirador, aunque el autor original sea Vivaldi, Max le da un toque muy cinematográfico.</p> ]]></content:encoded> <dc:creator>osr</dc:creator> </item> <item> <title><![CDATA[5 novembre : et maintenant, la grève générale ! - tibo lalu]]></title> <link>https://peertube2.cpy.re/w/m8ES1oU2VU1GYNd44jVkTz;threadId=196570</link> <guid>https://peertube2.cpy.re/w/m8ES1oU2VU1GYNd44jVkTz;threadId=196570</guid> <pubDate>Thu, 05 Nov 2026 22:44:23 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://video.blast-info.fr/a/blast/video-channels" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>blast</span></a></span> </p><p>il manque une seconde sur la durée de votre vidéo</p>]]></content:encoded> <dc:creator>tibo lalu</dc:creator> </item> <item> <title><![CDATA[Comida a Rex video con la Sony P43 - Absolute Beginner 🏳️⚧️]]></title> <link>https://peertube2.cpy.re/w/weTnuKPymnyKS1SjJJFR33;threadId=196509</link> <guid>https://peertube2.cpy.re/w/weTnuKPymnyKS1SjJJFR33;threadId=196509</guid> <pubDate>Thu, 05 Nov 2026 21:31:13 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://tube.tchncs.de/a/osr/video-channels" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>osr</span></a></span> Pues imagínate que con la tontería de descubrir a Max Richter no solo he descubierto a un gran compositor de bandas sonoras y música instrumental, sino también una serie y una película que me han parecido como mínimo curiosas: My Brilliant Friend (La amiga estupenda), 2018-2024, y Spaceman (El astronauta), 2024. Ha sido un descubrimiento muy rentable. 😎 Muchas gracias.</p>]]></content:encoded> <dc:creator>Absolute Beginner 🏳️⚧️</dc:creator> </item> <item> <title><![CDATA[Comida a Rex video con la Sony P43 - osr]]></title> <link>https://peertube2.cpy.re/w/weTnuKPymnyKS1SjJJFR33;threadId=196509</link> <guid>https://peertube2.cpy.re/w/weTnuKPymnyKS1SjJJFR33;threadId=196509</guid> <pubDate>Thu, 05 Nov 2026 21:16:26 GMT</pubDate> <content:encoded><![CDATA[<p>@abslutebeginner@masto.es Si no es por Vivaldi el video no valdría nada jajajaj</p> ]]></content:encoded> <dc:creator>osr</dc:creator> </item> <item> <title><![CDATA[#climateCrisis , #llm s, #emacs ... #symbolics #lisp, #executeableArchaeology Kent Pitman John Hardy #lispyGopherClimate - Achy1les]]></title> <link>https://peertube2.cpy.re/w/ogFTHRwVNXm4GXmkNyqg58;threadId=196567</link> <guid>https://peertube2.cpy.re/w/ogFTHRwVNXm4GXmkNyqg58;threadId=196567</guid> <pubDate>Thu, 05 Nov 2026 19:29:00 GMT</pubDate> <content:encoded><![CDATA[<p>Hi. Guys... Could you make a video on how do you stream using jitsi-meet? I use jitsi-meet. But, for me, it only accept streaming Youtube sessions and such... Or do you just make your jitsi-meet sessions outside tobnix save it and upload outside tobnix...</p> ]]></content:encoded> <dc:creator>Achy1les</dc:creator> </item> <item> <title><![CDATA[hatniX spielt „World of Warcraft Forever“ Release! - starfarer]]></title> <link>https://peertube2.cpy.re/w/niW9YT45XNFBvacubNXxwN;threadId=196558</link> <guid>https://peertube2.cpy.re/w/niW9YT45XNFBvacubNXxwN;threadId=196558</guid> <pubDate>Thu, 05 Nov 2026 14:28:36 GMT</pubDate> <content:encoded><![CDATA[<p>@hatnix glaub ich sofort XD</p> ]]></content:encoded> <dc:creator>starfarer</dc:creator> </item> <item> <title><![CDATA[hatniX spielt „World of Warcraft Forever“ Release! - hatniX]]></title> <link>https://peertube2.cpy.re/w/niW9YT45XNFBvacubNXxwN;threadId=196560</link> <guid>https://peertube2.cpy.re/w/niW9YT45XNFBvacubNXxwN;threadId=196560</guid> <pubDate>Thu, 05 Nov 2026 13:54:56 GMT</pubDate> <content:encoded><![CDATA[<p>@starfarer Das Gewusel am Anfang war zu erwarten, es hätte auch noch dicker kommen können. Das hat sich dann alles aber recht schnell verlaufen.</p> ]]></content:encoded> <dc:creator>hatniX</dc:creator> </item> <item> <title><![CDATA[hatniX spielt „World of Warcraft Forever“ Release! - hatniX]]></title> <link>https://peertube2.cpy.re/w/niW9YT45XNFBvacubNXxwN;threadId=196558</link> <guid>https://peertube2.cpy.re/w/niW9YT45XNFBvacubNXxwN;threadId=196558</guid> <pubDate>Thu, 05 Nov 2026 13:52:58 GMT</pubDate> <content:encoded><![CDATA[<p>@starfarer Ich hab heute schon Schlimmeres gesehen ^^</p> ]]></content:encoded> <dc:creator>hatniX</dc:creator> </item> <item> <title><![CDATA[hatniX spielt „World of Warcraft Forever“ Release! - starfarer]]></title> <link>https://peertube2.cpy.re/w/niW9YT45XNFBvacubNXxwN;threadId=196560</link> <guid>https://peertube2.cpy.re/w/niW9YT45XNFBvacubNXxwN;threadId=196560</guid> <pubDate>Thu, 05 Nov 2026 13:43:33 GMT</pubDate> <content:encoded><![CDATA[<p>ich merke schon warum ich Singleplayergames bevorzuge... mir wäre das zu wuselig^^ (aber ich erstelle auch bei Unreal Tournament Botmatches ohne Bots)</p> ]]></content:encoded> <dc:creator>starfarer</dc:creator> </item> <item> <title><![CDATA[hatniX spielt „World of Warcraft Forever“ Release! - starfarer]]></title> <link>https://peertube2.cpy.re/w/niW9YT45XNFBvacubNXxwN;threadId=196558</link> <guid>https://peertube2.cpy.re/w/niW9YT45XNFBvacubNXxwN;threadId=196558</guid> <pubDate>Thu, 05 Nov 2026 13:36:23 GMT</pubDate> <content:encoded><![CDATA[<p>Loki Thunderfall ist ja mal direkt ein Immersionbreaker XD</p> ]]></content:encoded> <dc:creator>starfarer</dc:creator> </item> <item> <title><![CDATA[Changer de Système Installer Linux 4/4 - philippe.lhardy]]></title> <link>https://peertube2.cpy.re/w/3rXzBoUnwLymxkk7qaJSBR;threadId=196552</link> <guid>https://peertube2.cpy.re/w/3rXzBoUnwLymxkk7qaJSBR;threadId=196552</guid> <pubDate>Thu, 05 Nov 2026 11:50:41 GMT</pubDate> <content:encoded><![CDATA[<p>@bigpannard@pt.thoteos.synology.me</p> <p>Dans ce cas les diapos de la présentation sont ici : <a href="https://www4.artisanlogiciel.net/nextcloud/s/eaeiirGAcfGTSM6" target="_blank" rel="noopener noreferrer">https://www4.artisanlogiciel.net/nextcloud/s/eaeiirGAcfGTSM6</a></p> ]]></content:encoded> <dc:creator>philippe.lhardy</dc:creator> </item> <item> <title><![CDATA[Changer de Système Installer Linux 4/4 - bigpannard]]></title> <link>https://peertube2.cpy.re/w/3rXzBoUnwLymxkk7qaJSBR;threadId=196552</link> <guid>https://peertube2.cpy.re/w/3rXzBoUnwLymxkk7qaJSBR;threadId=196552</guid> <pubDate>Thu, 05 Nov 2026 09:00:13 GMT</pubDate> <content:encoded><![CDATA[<p>Présentation intéressante, je vais m'en inspirer pour une présentation identique dans notre GULL en belgique</p> ]]></content:encoded> <dc:creator>bigpannard</dc:creator> </item> <item> <title><![CDATA[Reconnaissance faciale et techniques de surveillance - Noémie Levain de La Quadrature du Net - Marie_Odile_Morandi]]></title> <link>https://peertube2.cpy.re/w/jpdnYaV7rGtrfc6VFRLYSw;threadId=196551</link> <guid>https://peertube2.cpy.re/w/jpdnYaV7rGtrfc6VFRLYSw;threadId=196551</guid> <pubDate>Thu, 05 Nov 2026 07:12:48 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://video.lqdn.fr/a/lqdn/video-channels" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>lqdn</span></a></span> Transcription par <span><a href="https://pouet.april.org/@aprilorg" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>aprilorg</span></a></span> <a href="https://www.librealire.org/surveillance-algorithmique-ce-que-peut-et-ne-peut-pas-l-etat" target="_blank" rel="noopener noreferrer"><span>https://www.</span><span>librealire.org/surveillance-al</span><span>gorithmique-ce-que-peut-et-ne-peut-pas-l-etat</span></a> Bonne lecture !</p>]]></content:encoded> <dc:creator>Marie_Odile_Morandi</dc:creator> </item> <item> <title><![CDATA[Ecole Douteuse 2026 - Clara Egger & Raul Magni Berton - Ethique et politique de l'enquête scientifique (2) - Alex Jade]]></title> <link>https://peertube2.cpy.re/w/rJkCKp8z5ax31Sf4XG4anh;threadId=196550</link> <guid>https://peertube2.cpy.re/w/rJkCKp8z5ax31Sf4XG4anh;threadId=196550</guid> <pubDate>Thu, 05 Nov 2026 07:11:26 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://skeptikon.fr/a/cortecs/video-channels" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>cortecs</span></a></span> seuls le Ric et la Sés peuvent nous donner du pouvoir et nous permettre de choisir notre emploi revalorisé <a href="https://loi-ses.org" target="_blank" rel="noopener noreferrer"><span>https://</span><span>loi-ses.org</span><span></span></a></p>]]></content:encoded> <dc:creator>Alex Jade</dc:creator> </item> <item> <title><![CDATA[Fukushima mon amour - #DATAGUEULE 32 - tif_inégalitéS.capitalisme.TTdroites.écocide.5g.pub.nuc.gafam-CRIMES]]></title> <link>https://peertube2.cpy.re/w/fSKNZNmGE1F9Toz8TQRoAM;threadId=196520</link> <guid>https://peertube2.cpy.re/w/fSKNZNmGE1F9Toz8TQRoAM;threadId=196520</guid> <pubDate>Wed, 04 Nov 2026 18:25:31 GMT</pubDate> <content:encoded><![CDATA[<p>(c) 2015</p> ]]></content:encoded> <dc:creator>tif_inégalitéS.capitalisme.TTdroites.écocide.5g.pub.nuc.gafam-CRIMES</dc:creator> </item> <item> <title><![CDATA[John Hardy, Kent M. Pitman, Ramin Honary (and screwlisp) on the #lispyGopherClimate #FP #lisp #CPM - Lispy Gopher Climate w/ screwlisp]]></title> <link>https://peertube2.cpy.re/w/s7sKUP8qXMppDHLVk3uksY;threadId=196506</link> <guid>https://peertube2.cpy.re/w/s7sKUP8qXMppDHLVk3uksY;threadId=196506</guid> <pubDate>Wed, 04 Nov 2026 17:16:10 GMT</pubDate> <content:encoded><![CDATA[<p>@me@social.jlamothe.net apparently my uploads haven't been being added to the anonradio archives for the next week either. After next week there should be a return to normalcy.</p> ]]></content:encoded> <dc:creator>Lispy Gopher Climate w/ screwlisp</dc:creator> </item> <item> <title><![CDATA[Comida a Rex video con la Sony P43 - Absolute Beginner 🏳️⚧️]]></title> <link>https://peertube2.cpy.re/w/weTnuKPymnyKS1SjJJFR33;threadId=196509</link> <guid>https://peertube2.cpy.re/w/weTnuKPymnyKS1SjJJFR33;threadId=196509</guid> <pubDate>Wed, 04 Nov 2026 14:00:04 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://tube.tchncs.de/a/osr/video-channels" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>osr</span></a></span> Interesante lo de las New Four Seasons... 😁</p>]]></content:encoded> <dc:creator>Absolute Beginner 🏳️⚧️</dc:creator> </item> <item> <title><![CDATA[You can run macOS applications on Linux now - terraquad]]></title> <link>https://peertube2.cpy.re/w/iz9936NhcYwT3AhwM3p4Ye;threadId=196508</link> <guid>https://peertube2.cpy.re/w/iz9936NhcYwT3AhwM3p4Ye;threadId=196508</guid> <pubDate>Wed, 04 Nov 2026 09:55:12 GMT</pubDate> <content:encoded><![CDATA[<p>Instead of creating yet another project imo they should contribute to <a href="https://github.com/darlinghq/darling" target="_blank" rel="noopener noreferrer">https://github.com/darlinghq/darling</a> .</p> ]]></content:encoded> <dc:creator>terraquad</dc:creator> </item> </channel> </rss>
| format required | string Enum: "xml" "rss" "rss2" "atom" "atom1" "json" "json1" format expected (we focus on making |
| accountId | string limit listing to a specific account |
| accountName | string limit listing to a specific account |
| hasHLSFiles | boolean PeerTube >= 4.0 Display only videos that have HLS files |
| hasWebVideoFiles | boolean PeerTube >= 6.0 Display only videos that have Web Video files |
| include | integer Enum: 0 1 2 4 8 16 32 Only administrators and moderators can use this parameter Include additional videos in results (can be combined using bitwise or operator)
|
| isLocal | boolean PeerTube >= 4.0 Display only local or remote objects |
| nsfw | string Enum: "true" "false" whether to include nsfw videos, if any |
| privacyOneOf | integer (VideoPrivacySet) Enum: 1 2 3 4 5 PeerTube >= 4.0 Display only videos in this specific privacy/privacies |
| sort | string Example: sort=-createdAt Sort column |
| videoChannelId | string limit listing to a specific video channel |
| videoChannelName | string limit listing to a specific video channel |
<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:podcast="https://podcastindex.org/namespace/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <title>PeerTube Nightly</title> <link>https://peertube2.cpy.re</link> <description>This instance is a test instance of the PeerTube project. It is updated to the latest commit in the develop branch every business day, 8pm CET.</description> <lastBuildDate>Sat, 07 Nov 2026 04:04:07 GMT</lastBuildDate> <docs>https://validator.w3.org/feed/docs/rss2.html</docs> <generator>PeerTube - https://peertube2.cpy.re</generator> <image> <title>PeerTube Nightly</title> <url>https://peertube2.cpy.re/lazy-static/avatars/82936e50-9560-42e7-9e4b-d96309f5c9c9.png</url> <link>https://peertube2.cpy.re</link> </image> <copyright>All rights reserved, unless otherwise specified in the terms specified at https://peertube2.cpy.re/about and potential licenses granted by each content's rightholder.</copyright> <atom:link href="https://peertube2.cpy.re/feeds/videos.xml?scope=local" rel="self" type="application/rss+xml"/> <item> <title><![CDATA[L'Heure Kolision - Le vendredi, de 20h à 22h au moins - 06/11/2026 19:00:05]]></title> <link>https://peertube2.cpy.re/w/t9sG9GVPcEP4eqb46Gouqk</link> <guid>https://peertube2.cpy.re/w/t9sG9GVPcEP4eqb46Gouqk</guid> <pubDate>Fri, 06 Nov 2026 22:10:11 GMT</pubDate> <description><![CDATA[L'émission l'Heure Kolision, par https://asso.hk sur Jet FM 91.2 à Nantes et alentours !]]></description> <content:encoded><![CDATA[<p>L'émission l'Heure Kolision, par <a href="https://asso.hk" target="_blank" rel="noopener noreferrer">https://asso.hk</a> sur Jet FM 91.2 à Nantes et alentours !</p> ]]></content:encoded> <dc:creator>L’Heure Kolision</dc:creator> <category>Music</category> <enclosure length="186782177" type="audio/mp4" url="https://peertube2.cpy.re/download/videos/generate/dbd524c6-d56a-4963-aff6-395182343543?videoFileIds=5980674"/> <media:community> <media:statistics views="2"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/t9sG9GVPcEP4eqb46Gouqk"/> <media:player url="https://peertube2.cpy.re/w/t9sG9GVPcEP4eqb46Gouqk"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/98986dab-5b11-47fb-bf53-c24264fd0755-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="186782177" url="https://www.yiny.org/static/streaming-playlists/hls/dbd524c6-d56a-4963-aff6-395182343543/838d05f6-1848-4a1b-8a66-750360645783-0-fragmented.mp4" framerate="0" duration="11129" isDefault="true"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/1dd6a775-b431-47d4-8d9a-a9e2918b85c9.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">L'Heure Kolision - Le vendredi, de 20h à 22h au moins - 06/11/2026 19:00:05</media:title> <media:description type="plain">L'émission l'Heure Kolision, par https://asso.hk sur Jet FM 91.2 à Nantes et alentours !</media:description> </item> <item> <title><![CDATA[Le commerce mondial et ses factures - Lettres de crédit, affacturage, chaînes...]]></title> <link>https://peertube2.cpy.re/w/b9sc2cs1aBj8kAHJXLPycG</link> <guid>https://peertube2.cpy.re/w/b9sc2cs1aBj8kAHJXLPycG</guid> <pubDate>Fri, 06 Nov 2026 19:20:25 GMT</pubDate> <description><![CDATA[En 2025, le commerce mondial a atteint le record de 35 000 milliards de dollars. Les documents qui le font circuler sont pourtant encore largement sur papier : seuls 11 % environ des connaissements étaient électroniques. Pendant ce temps, les banq...]]></description> <content:encoded><![CDATA[<p>En 2025, le commerce mondial a atteint le record de 35 000 milliards de dollars. Les documents qui le font circuler sont pourtant encore largement sur papier : seuls 11 % environ des connaissements étaient électroniques. Pendant ce temps, les banques refusent deux mille cinq cents milliards de dollars de demandes de financement par an, d’abord aux petites entreprises.</p> <p>Cet épisode explique comment se finance le commerce entre inconnus, de la lettre de crédit à l’affacturage. Il raconte l’enthousiasme de 2019, puis la fermeture des grands consortiums blockchain les uns après les autres, de we.trade à Contour, et dit pourquoi ils ont échoué. Il suit la révolution juridique qui fait enfin reconnaître les documents électroniques, de Londres à Pékin, et le rôle discret de la France, premier marché européen de l’affacturage, où la facture électronique est devenue obligatoire en septembre.</p> <p>À partir de l’affaire First Brands, il montre comment un registre partagé peut mettre fin au double financement, et comment les premiers jetons arrivent par la porte des factures.</p> <p>David HUBERT - realassets.fr</p> ]]></content:encoded> <dc:creator>Real Assets 🎙️ RWA podcast</dc:creator> <category>Education</category> <enclosure length="126929735" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/52297a17-ef35-40d2-92d1-c1fa66a5f99e?videoFileIds=5980592"/> <media:community> <media:statistics views="1"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/b9sc2cs1aBj8kAHJXLPycG"/> <media:player url="https://peertube2.cpy.re/w/b9sc2cs1aBj8kAHJXLPycG"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/a2d90672-6672-436f-bd15-86621ca93d20-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/11e6cc87-097d-4c19-a410-ca5d52445b02-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/f80cc587-43a8-468e-8440-90b0c1639595-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/03a6f035-cc05-460e-b7fd-4c24d1f6ced2-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/d072f786-110c-4833-9847-a10807566088-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="33746349" url="https://static.indymotion.fr/web-videos/29a81eff-f056-42f5-8baa-edb867f3d761-0.mp4" framerate="0" duration="2087" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="126929735" url="https://static.indymotion.fr/streaming-playlists/hls/52297a17-ef35-40d2-92d1-c1fa66a5f99e/e8b41063-7ad0-4d43-a461-64184fdfc865-720-fragmented.mp4" framerate="20" duration="2087" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="91937997" url="https://static.indymotion.fr/streaming-playlists/hls/52297a17-ef35-40d2-92d1-c1fa66a5f99e/eed25bb8-05ad-4b0a-ad07-33e1c68c9580-480-fragmented.mp4" framerate="20" duration="2087" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="60939179" url="https://static.indymotion.fr/streaming-playlists/hls/52297a17-ef35-40d2-92d1-c1fa66a5f99e/9a70bd3e-359d-4a7c-82f8-c21e320090a8-240-fragmented.mp4" framerate="20" duration="2087" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="33653112" url="https://static.indymotion.fr/streaming-playlists/hls/52297a17-ef35-40d2-92d1-c1fa66a5f99e/58d3ad0b-1b83-46bf-a1ca-dbaeb05b6264-0-fragmented.mp4" framerate="0" duration="2087" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/8a799a6a-8991-4a15-a6af-6b9cf2848e3e.png" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Le commerce mondial et ses factures - Lettres de crédit, affacturage, chaînes...</media:title> <media:description type="plain">En 2025, le commerce mondial a atteint le record de 35 000 milliards de dollars. Les documents qui le font circuler sont pourtant encore largement sur papier : seuls 11 % environ des connaissements étaient électroniques. Pendant ce temps, les banq...</media:description> </item> <item> <title><![CDATA[Desmu - Il a perdu son pantalon]]></title> <link>https://peertube2.cpy.re/w/byttBJkXWY1b3Ev1Jp6xSg</link> <guid>https://peertube2.cpy.re/w/byttBJkXWY1b3Ev1Jp6xSg</guid> <pubDate>Fri, 06 Nov 2026 19:01:25 GMT</pubDate> <description><![CDATA[Si vous retrouvez mon pantalon, vous pouvez le garder. Plus de musiques ici : https://www.desmu.fr/album/]]></description> <content:encoded><![CDATA[<p>Si vous retrouvez mon pantalon, vous pouvez le garder.</p> <p>Plus de musiques ici : <a href="https://www.desmu.fr/album/" target="_blank" rel="noopener noreferrer">https://www.desmu.fr/album/</a></p> ]]></content:encoded> <dc:creator>Chez Desmu</dc:creator> <category>Music</category> <enclosure length="82020269" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/55841eb9-198b-4360-9c02-d55c59e9f0b7?videoFileIds=5980571"/> <media:community> <media:statistics views="1"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/byttBJkXWY1b3Ev1Jp6xSg"/> <media:player url="https://peertube2.cpy.re/w/byttBJkXWY1b3Ev1Jp6xSg"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/4c1f41be-4c0e-4d08-be4a-0a433953d7cc-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/34504d6c-6091-4c5b-b5c5-77d6affc1e3a-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/9cff3976-dac7-45ee-81d1-139e31b37bae-720-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="7786999" url="https://peertube.desmu.fr/static/web-videos/d36bb9c7-1992-4c3f-8ec9-c495781ca502-0.mp4" framerate="0" duration="238" isDefault="true"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="82020269" url="https://peertube.desmu.fr/static/streaming-playlists/hls/55841eb9-198b-4360-9c02-d55c59e9f0b7/db961f97-25ff-48c8-849b-96a2799113a4-1080-fragmented.mp4" framerate="26" duration="238" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="36504966" url="https://peertube.desmu.fr/static/streaming-playlists/hls/55841eb9-198b-4360-9c02-d55c59e9f0b7/b48343f5-b68f-4966-be35-1c41d442d961-720-fragmented.mp4" framerate="26" duration="238" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/dbda5bb8-52eb-4640-93c0-8d00c4c6a82d.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Desmu - Il a perdu son pantalon</media:title> <media:description type="plain">Si vous retrouvez mon pantalon, vous pouvez le garder. Plus de musiques ici : https://www.desmu.fr/album/</media:description> </item> <item> <title><![CDATA[Attal : loser]]></title> <link>https://peertube2.cpy.re/w/8fpPSDDP2xXoYEbWNkZAXx</link> <guid>https://peertube2.cpy.re/w/8fpPSDDP2xXoYEbWNkZAXx</guid> <pubDate>Fri, 06 Nov 2026 17:44:44 GMT</pubDate> <description><![CDATA[Soutenez Blast, nouveau média indépendant : https://www.blast-info.fr/soutenir Le macronisme mourant ne s’arrête pas d’en finir : chaque semaine un nouveau scandale, chaque semaine une nouvelle cruauté. Dans cet épisode on va décortiquer à quoi...]]></description> <content:encoded><![CDATA[<p>Soutenez Blast, nouveau média indépendant : <a href="https://www.blast-info.fr/soutenir" target="_blank" rel="noopener noreferrer">https://www.blast-info.fr/soutenir</a></p> <p>Le macronisme mourant ne s’arrête pas d’en finir : chaque semaine un nouveau scandale, chaque semaine une nouvelle cruauté. Dans cet épisode on va décortiquer à quoi sert la candidature d’Attal pour le bloc central, entre appel à l’union et survivance d’un appareil électoral.<br /> Mais on fera aussi un tour du côté de la musique des clips insoumis, pour en proposer une analyse jusqu’ici, inédite.</p> <p>0:00 Introduction<br /> 0:51 Journal de campagne : Hérit(i)er de Macron<br /> 23:38 Herméneutique de campagne : le Konbini et l’Hokage</p> <p>Une vidéo de Camille et Victor-Ulysse Sultra-Chastrusse, Doctorant en droit public,<br /> Réalisation et montage : Guillaume Cage<br /> Son : Baptiste Veilhan, Théo Duchesne<br /> Graphisme : Morgane Sabouret, Margaux Simon<br /> Production : Hicham Tragha<br /> Directeur du développement des collaborations extérieures : Mathias Enthoven<br /> Co-directrice de la rédaction : Soumaya Benaïssa<br /> Directeur de la publication : Denis Robert</p> <p>Le site : <a href="https://www.blast-info.fr/" target="_blank" rel="noopener noreferrer">https://www.blast-info.fr/</a><br /> Facebook : <a href="https://www.facebook.com/blastofficiel" target="_blank" rel="noopener noreferrer">https://www.facebook.com/blastofficiel</a><br /> Twitter : <a href="https://twitter.com/blast_france" target="_blank" rel="noopener noreferrer">https://twitter.com/blast_france</a><br /> Instagram : <a href="https://www.instagram.com/blastofficiel/" target="_blank" rel="noopener noreferrer">https://www.instagram.com/blastofficiel/</a><br /> Mastodon : <a href="https://mamot.fr/web/@blast_info" target="_blank" rel="noopener noreferrer">https://mamot.fr/web/@blast_info</a><br /> Peertube : <a href="https://video.blast-info.fr/" target="_blank" rel="noopener noreferrer">https://video.blast-info.fr/</a><br /> Twitch : <a href="https://www.twitch.tv/blastinfo" target="_blank" rel="noopener noreferrer">https://www.twitch.tv/blastinfo</a><br /> Bluesky : <a href="https://bsky.app/profile/blast-info.fr" target="_blank" rel="noopener noreferrer">https://bsky.app/profile/blast-info.fr</a></p> <p>#gabrielattal<br /> #présidentielle2027<br /> #Propaganda</p> ]]></content:encoded> <dc:creator>blast, le souffle de l’info</dc:creator> <enclosure length="712532913" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/3ab310fa-ad30-4779-847f-e6182d22c9b5?videoFileIds=5980545"/> <media:community> <media:statistics views="179"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/8fpPSDDP2xXoYEbWNkZAXx"/> <media:player url="https://peertube2.cpy.re/w/8fpPSDDP2xXoYEbWNkZAXx"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/3b8bd93d-94b1-4297-9562-dec1bba380b3-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/128b6a8b-4bb2-4f98-a3aa-15f9d89d018f-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/4c12a665-1496-4f06-b29f-3a5f43bc5930-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/52aff5fa-62b1-44e4-bd06-c8a33655c547-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/173aec12-35c1-47ad-8262-c82154f96e1e-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/d6ceeb2c-7ca2-4b9d-9dc3-156e29ffc230-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="64557229" url="https://cdn.octos3.fr/peertube-blast/web-videos/b564acee-7bf0-4069-93b1-0b22ba770001-0.mp4" framerate="0" duration="1839" isDefault="true"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="712532913" url="https://cdn.octos3.fr/peertube-blast/streaming-playlists/hls/3ab310fa-ad30-4779-847f-e6182d22c9b5/9e62f4ea-62da-4ad9-b4a5-bef27384321c-1080-fragmented.mp4" framerate="25" duration="1839" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="302746616" url="https://cdn.octos3.fr/peertube-blast/streaming-playlists/hls/3ab310fa-ad30-4779-847f-e6182d22c9b5/55b3802b-251a-4f5a-83c6-78d78f77ecdf-720-fragmented.mp4" framerate="25" duration="1839" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="164779747" url="https://cdn.octos3.fr/peertube-blast/streaming-playlists/hls/3ab310fa-ad30-4779-847f-e6182d22c9b5/debdb899-fc20-44ca-a705-cb6066041991-480-fragmented.mp4" framerate="25" duration="1839" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="73294729" url="https://cdn.octos3.fr/peertube-blast/streaming-playlists/hls/3ab310fa-ad30-4779-847f-e6182d22c9b5/0fbc7c20-b8be-4380-81a6-4473ebbd28b1-240-fragmented.mp4" framerate="25" duration="1839" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="30123827" url="https://cdn.octos3.fr/peertube-blast/streaming-playlists/hls/3ab310fa-ad30-4779-847f-e6182d22c9b5/3be88780-a3f1-4fb4-a95d-b12db3960fa2-0-fragmented.mp4" framerate="0" duration="1839" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/e2925177-02ec-4aa2-a88a-625bec9b4571.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Attal : loser</media:title> <media:description type="plain">Soutenez Blast, nouveau média indépendant : https://www.blast-info.fr/soutenir Le macronisme mourant ne s’arrête pas d’en finir : chaque semaine un nouveau scandale, chaque semaine une nouvelle cruauté. Dans cet épisode on va décortiquer à quoi...</media:description> </item> <item> <title><![CDATA[Champ. Loisir - Lusigny vs Fresnoy-Clerey (05/11/2026)]]></title> <link>https://peertube2.cpy.re/w/4q9Fmk7PdD1192E2Cv7gzM</link> <guid>https://peertube2.cpy.re/w/4q9Fmk7PdD1192E2Cv7gzM</guid> <pubDate>Fri, 06 Nov 2026 16:08:26 GMT</pubDate> <description><![CDATA[➡️ Site Internet: https://www.etoiledelusigny.fr ➡️ Chaîne vidéo : https://indymotion.fr/a/etoiledelusigny/video-channels ➡️ Facebook : https://www.facebook.com/etoiledelusignyofficiel ➡️ Instagram : https://www.instagram.com/etoiledelusignyoff...]]></description> <content:encoded><![CDATA[<p>➡️ Site Internet: <a href="https://www.etoiledelusigny.fr" target="_blank" rel="noopener noreferrer">https://www.etoiledelusigny.fr</a><br /> ➡️ Chaîne vidéo : <a href="https://indymotion.fr/a/etoiledelusigny/video-channels" target="_blank" rel="noopener noreferrer">https://indymotion.fr/a/etoiledelusigny/video-channels</a><br /> ➡️ Facebook : <a href="https://www.facebook.com/etoiledelusignyofficiel" target="_blank" rel="noopener noreferrer">https://www.facebook.com/etoiledelusignyofficiel</a><br /> ➡️ Instagram : <a href="https://www.instagram.com/etoiledelusignyofficiel/" target="_blank" rel="noopener noreferrer">https://www.instagram.com/etoiledelusignyofficiel/</a></p> ]]></content:encoded> <dc:creator>02 - Matchs et Plateaux</dc:creator> <category>Sports</category> <enclosure length="4207349191" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/1baa9d60-338b-4c90-b95c-aebb0b784543?videoFileIds=5980512"/> <media:community> <media:statistics views="7"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/4q9Fmk7PdD1192E2Cv7gzM"/> <media:player url="https://peertube2.cpy.re/w/4q9Fmk7PdD1192E2Cv7gzM"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/75e12394-1caa-4761-bb91-c22a27394af2-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/cab42234-e928-48ef-9e2c-a72b23030c0f-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/5a46df14-ddc1-4ec8-bb7e-17e2a46a9117-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/e56b11bb-0ba8-498b-aed0-c3fb2bf7f55d-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/4a4cad8f-1914-4d2a-a6d7-06c5525dd972-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/f2ccf69b-c31a-4aca-95b8-71a6819f0242-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="90161132" url="https://static.indymotion.fr/web-videos/fc17529b-5c05-4734-ba98-2d38c301110b-0.mp4" framerate="0" duration="5570" isDefault="true"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="4207349191" url="https://static.indymotion.fr/streaming-playlists/hls/1baa9d60-338b-4c90-b95c-aebb0b784543/fff75656-9a69-49e3-b86c-8c1cb72710f4-1080-fragmented.mp4" framerate="30" duration="5570" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="1707133697" url="https://static.indymotion.fr/streaming-playlists/hls/1baa9d60-338b-4c90-b95c-aebb0b784543/4bde7deb-fa54-4a21-b616-3518e53777df-720-fragmented.mp4" framerate="30" duration="5570" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="901785406" url="https://static.indymotion.fr/streaming-playlists/hls/1baa9d60-338b-4c90-b95c-aebb0b784543/5528431e-7495-4657-baa2-7525104fda86-480-fragmented.mp4" framerate="30" duration="5570" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="328944719" url="https://static.indymotion.fr/streaming-playlists/hls/1baa9d60-338b-4c90-b95c-aebb0b784543/d1d7a1ec-ee05-44b9-bcad-95ec2c1f6172-240-fragmented.mp4" framerate="30" duration="5570" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="91001241" url="https://static.indymotion.fr/streaming-playlists/hls/1baa9d60-338b-4c90-b95c-aebb0b784543/8a67c8f4-d145-47e3-9267-7de3aa35c981-0-fragmented.mp4" framerate="0" duration="5570" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/5594badc-cb10-4985-a7f8-784c6e46d6a0.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Champ. Loisir - Lusigny vs Fresnoy-Clerey (05/11/2026)</media:title> <media:description type="plain">➡️ Site Internet: https://www.etoiledelusigny.fr ➡️ Chaîne vidéo : https://indymotion.fr/a/etoiledelusigny/video-channels ➡️ Facebook : https://www.facebook.com/etoiledelusignyofficiel ➡️ Instagram : https://www.instagram.com/etoiledelusignyoff...</media:description> </item> <item> <title><![CDATA[Les buts - Champ. Loisir à 8 - Lusigny vs Fresnoy-Clerey (05/11/2026)]]></title> <link>https://peertube2.cpy.re/w/c7qLqyX1n6bHnVw8xrxtKF</link> <guid>https://peertube2.cpy.re/w/c7qLqyX1n6bHnVw8xrxtKF</guid> <pubDate>Fri, 06 Nov 2026 15:56:48 GMT</pubDate> <description><![CDATA[➡️ Site Internet: https://www.etoiledelusigny.fr ➡️ Chaîne vidéo : https://indymotion.fr/a/etoiledelusigny/video-channels ➡️ Facebook : https://www.facebook.com/etoiledelusignyofficiel ➡️ Instagram : https://www.instagram.com/etoiledelusignyoff...]]></description> <content:encoded><![CDATA[<p>➡️ Site Internet: <a href="https://www.etoiledelusigny.fr" target="_blank" rel="noopener noreferrer">https://www.etoiledelusigny.fr</a><br /> ➡️ Chaîne vidéo : <a href="https://indymotion.fr/a/etoiledelusigny/video-channels" target="_blank" rel="noopener noreferrer">https://indymotion.fr/a/etoiledelusigny/video-channels</a><br /> ➡️ Facebook : <a href="https://www.facebook.com/etoiledelusignyofficiel" target="_blank" rel="noopener noreferrer">https://www.facebook.com/etoiledelusignyofficiel</a><br /> ➡️ Instagram : <a href="https://www.instagram.com/etoiledelusignyofficiel/" target="_blank" rel="noopener noreferrer">https://www.instagram.com/etoiledelusignyofficiel/</a></p> ]]></content:encoded> <dc:creator>02 - Matchs et Plateaux</dc:creator> <category>Sports</category> <enclosure length="313252390" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/59fa401b-b52b-416d-8ea9-8247f7da3e39?videoFileIds=5980463"/> <media:community> <media:statistics views="22"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/c7qLqyX1n6bHnVw8xrxtKF"/> <media:player url="https://peertube2.cpy.re/w/c7qLqyX1n6bHnVw8xrxtKF"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/a1434ea6-da58-4bd8-acba-d7fd3063948d-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/7ddf207c-b9cb-45e7-bb90-bbcfcad61dd1-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/2b62178a-d48c-4799-8bf3-0b910df91572-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/193380ce-bfec-4d22-9e90-1e1e3044a835-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/11fd9ca4-038f-4ee3-9af0-b20794ffce57-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/5c522ab6-0237-41c6-bd3f-08dffa7bc04b-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="7074721" url="https://static.indymotion.fr/web-videos/2c94cc6e-bf21-417d-91aa-2b4e1e9d2c1e-0.mp4" framerate="0" duration="437" isDefault="true"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="313252390" url="https://static.indymotion.fr/streaming-playlists/hls/59fa401b-b52b-416d-8ea9-8247f7da3e39/66726ee8-2d69-419a-824d-985c1cd027c2-1080-fragmented.mp4" framerate="32" duration="437" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="130242293" url="https://static.indymotion.fr/streaming-playlists/hls/59fa401b-b52b-416d-8ea9-8247f7da3e39/c4f45dc5-66e7-4b4d-a4fe-cf35ae8ae2c5-720-fragmented.mp4" framerate="32" duration="437" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="69708643" url="https://static.indymotion.fr/streaming-playlists/hls/59fa401b-b52b-416d-8ea9-8247f7da3e39/58d12050-b0c9-4220-ac7c-8e2fbf36500a-480-fragmented.mp4" framerate="30" duration="437" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="26091696" url="https://static.indymotion.fr/streaming-playlists/hls/59fa401b-b52b-416d-8ea9-8247f7da3e39/a0fc6984-5e60-411f-8afd-a3af5b8bd89a-240-fragmented.mp4" framerate="30" duration="437" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="7098125" url="https://static.indymotion.fr/streaming-playlists/hls/59fa401b-b52b-416d-8ea9-8247f7da3e39/e4b4171e-dd52-4728-85c9-7dbe7015dd47-0-fragmented.mp4" framerate="0" duration="437" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/2764a962-895f-46b8-9551-3c0362addbb4.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Les buts - Champ. Loisir à 8 - Lusigny vs Fresnoy-Clerey (05/11/2026)</media:title> <media:description type="plain">➡️ Site Internet: https://www.etoiledelusigny.fr ➡️ Chaîne vidéo : https://indymotion.fr/a/etoiledelusigny/video-channels ➡️ Facebook : https://www.facebook.com/etoiledelusignyofficiel ➡️ Instagram : https://www.instagram.com/etoiledelusignyoff...</media:description> </item> <item> <title><![CDATA[Construire des communs pour agir ensemble : les enseignements de dix ans de Transiscope]]></title> <link>https://peertube2.cpy.re/w/rtMgnnLXcaNAwVDHGsZ6yH</link> <guid>https://peertube2.cpy.re/w/rtMgnnLXcaNAwVDHGsZ6yH</guid> <pubDate>Fri, 06 Nov 2026 14:45:22 GMT</pubDate> <description><![CDATA[Comment décide-t-on ensemble de ce qui a sa place sur une carte des alternatives ? Et une fois les initiatives sur la carte, comment les aider à agir ensemble ? Retrouvez le replay du webinaire du 3 novembre 2026, organisé par le Collectif pour...]]></description> <content:encoded><![CDATA[<p>Comment décide-t-on ensemble de ce qui a sa place sur une carte des alternatives ? Et une fois les initiatives sur la carte, comment les aider à agir ensemble ?</p> <p>Retrouvez le replay du webinaire du 3 novembre 2026, organisé par le Collectif pour une Transition Citoyenne à l’occasion de la parution du livre <em>Alternatives et luttes — Cartographier pour coopérer</em>.</p> <p>Des co-auteur·ices du livre racontent comment des associations, des réseaux et des collectifs de terrain ont construit Transiscope en reliant leurs cartographies. De l’écriture de la charte aux choix techniques, ils et elles reviennent sur les débats et les compromis qui ont permis de faire vivre ce commun pendant dix ans.</p> <p>L’échange ouvre aussi sur la suite de Transiscope, avec l’Agenda des transitions et les arpentages du livre, des temps de lecture collective pour prolonger la discussion.</p> <p>📖 <a href="https://deslivresencommuns.org/publications/alternatives-et-luttes/" target="_blank" rel="noopener noreferrer">Lire ou télécharger gratuitement le livre sur Des livres en communs</a></p> <p>🔎 <a href="https://transiscope.org/construire-des-communs-pour-agir-ensemble-les-enseignements-de-dix-ans-de-transiscope/" target="_blank" rel="noopener noreferrer">Retrouver la présentation du webinaire sur le site de Transiscope</a></p> ]]></content:encoded> <dc:creator>transition_citoyenne</dc:creator> <category>Activism</category> <enclosure length="270255294" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/ce55719e-4b5a-4845-b3da-b8e0b6557e65?videoFileIds=5980406"/> <media:community> <media:statistics views="0"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/rtMgnnLXcaNAwVDHGsZ6yH"/> <media:player url="https://peertube2.cpy.re/w/rtMgnnLXcaNAwVDHGsZ6yH"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/65116a10-69a1-41aa-908f-e054436fac7c-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/d101ac8f-5463-4862-afef-b03267fb5aac-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/98b9e42f-efb8-4d2d-a74d-738cbb842c62-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/b098dcda-fafb-44ff-bea6-a6e2bc69a635-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="103986454" url="https://static.indymotion.fr/web-videos/18c8b186-eb93-4e23-af0c-f1d9d3d0bd5f-0.mp4" framerate="0" duration="5161" isDefault="true"/> <media:content type="video/mp4" medium="video" height="480" fileSize="270255294" url="https://static.indymotion.fr/streaming-playlists/hls/ce55719e-4b5a-4845-b3da-b8e0b6557e65/7a26b06a-4b20-4cc9-9df4-f1815ba27799-480-fragmented.mp4" framerate="15" duration="5161" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="146178379" url="https://static.indymotion.fr/streaming-playlists/hls/ce55719e-4b5a-4845-b3da-b8e0b6557e65/7834099f-99a4-4556-a211-1a8e9c46b58d-240-fragmented.mp4" framerate="15" duration="5161" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="83764589" url="https://static.indymotion.fr/streaming-playlists/hls/ce55719e-4b5a-4845-b3da-b8e0b6557e65/99290224-0eed-4e79-8d50-12c85f6e5879-0-fragmented.mp4" framerate="0" duration="5161" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/57b6ff09-75cb-4706-888e-db6484b107c6.webp" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Construire des communs pour agir ensemble : les enseignements de dix ans de Transiscope</media:title> <media:description type="plain">Comment décide-t-on ensemble de ce qui a sa place sur une carte des alternatives ? Et une fois les initiatives sur la carte, comment les aider à agir ensemble ? Retrouvez le replay du webinaire du 3 novembre 2026, organisé par le Collectif pour...</media:description> </item> <item> <title><![CDATA[Résumé - Champ. D3 - Lusigny 2 vs Portugais Chartreux (25/10/2026)]]></title> <link>https://peertube2.cpy.re/w/bgWRwLX3ntzZgoRwhJn7as</link> <guid>https://peertube2.cpy.re/w/bgWRwLX3ntzZgoRwhJn7as</guid> <pubDate>Fri, 06 Nov 2026 14:40:32 GMT</pubDate> <description><![CDATA[➡️ Site Internet: https://www.etoiledelusigny.fr ➡️ Chaîne vidéo : https://indymotion.fr/a/etoiledelusigny/video-channels ➡️ Facebook : https://www.facebook.com/etoiledelusignyofficiel ➡️ Instagram : https://www.instagram.com/etoiledelusignyoff...]]></description> <content:encoded><![CDATA[<p>➡️ Site Internet: <a href="https://www.etoiledelusigny.fr" target="_blank" rel="noopener noreferrer">https://www.etoiledelusigny.fr</a><br /> ➡️ Chaîne vidéo : <a href="https://indymotion.fr/a/etoiledelusigny/video-channels" target="_blank" rel="noopener noreferrer">https://indymotion.fr/a/etoiledelusigny/video-channels</a><br /> ➡️ Facebook : <a href="https://www.facebook.com/etoiledelusignyofficiel" target="_blank" rel="noopener noreferrer">https://www.facebook.com/etoiledelusignyofficiel</a><br /> ➡️ Instagram : <a href="https://www.instagram.com/etoiledelusignyofficiel/" target="_blank" rel="noopener noreferrer">https://www.instagram.com/etoiledelusignyofficiel/</a></p> ]]></content:encoded> <dc:creator>02 - Matchs et Plateaux</dc:creator> <category>Sports</category> <enclosure length="97169639" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/5335591d-fa13-4f7c-95fe-94500e3f2ae4?videoFileIds=5980400"/> <media:community> <media:statistics views="4"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/bgWRwLX3ntzZgoRwhJn7as"/> <media:player url="https://peertube2.cpy.re/w/bgWRwLX3ntzZgoRwhJn7as"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/20cae3e7-c5e6-4330-aa43-4e8ae65cdaff-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/5a526cd4-af62-4743-bb7f-9816856008be-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/9f199070-06e2-49aa-ae04-67f5033201ef-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/3d1726c6-dda8-4a74-8d6b-d39e3c5d48b8-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/3bd51d8b-925b-4bad-981b-1ea53cfb050a-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/866a4e2b-cfdc-4112-b26f-cc87148122d9-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="4692070" url="https://static.indymotion.fr/web-videos/2c3607cc-9a03-4449-bb90-6bff34e4bad9-0.mp4" framerate="0" duration="194" isDefault="true"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="97169639" url="https://static.indymotion.fr/streaming-playlists/hls/5335591d-fa13-4f7c-95fe-94500e3f2ae4/1ead3461-9c4d-4c27-b375-f3413544c68a-1080-fragmented.mp4" framerate="30" duration="194" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="43410650" url="https://static.indymotion.fr/streaming-playlists/hls/5335591d-fa13-4f7c-95fe-94500e3f2ae4/bc0c7413-97d5-40d1-b8be-5666cc00cff1-720-fragmented.mp4" framerate="30" duration="194" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="24260842" url="https://static.indymotion.fr/streaming-playlists/hls/5335591d-fa13-4f7c-95fe-94500e3f2ae4/90dde8c0-7f62-4d61-956e-c82e2e4e16b1-480-fragmented.mp4" framerate="30" duration="194" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="9544087" url="https://static.indymotion.fr/streaming-playlists/hls/5335591d-fa13-4f7c-95fe-94500e3f2ae4/7a396173-1df6-440a-bf18-d7a53e3e764d-240-fragmented.mp4" framerate="30" duration="194" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="3140369" url="https://static.indymotion.fr/streaming-playlists/hls/5335591d-fa13-4f7c-95fe-94500e3f2ae4/056d991c-00e2-42ca-8ee9-d72ec35b2a56-0-fragmented.mp4" framerate="0" duration="194" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/492b2e84-bec9-4411-afb8-0c5877f822b2.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Résumé - Champ. D3 - Lusigny 2 vs Portugais Chartreux (25/10/2026)</media:title> <media:description type="plain">➡️ Site Internet: https://www.etoiledelusigny.fr ➡️ Chaîne vidéo : https://indymotion.fr/a/etoiledelusigny/video-channels ➡️ Facebook : https://www.facebook.com/etoiledelusignyofficiel ➡️ Instagram : https://www.instagram.com/etoiledelusignyoff...</media:description> </item> <item> <title><![CDATA[Résumé - Champ. D2 - Lusigny vs Chartreux 3 (01/11/2026)]]></title> <link>https://peertube2.cpy.re/w/7JLQ9gpmRAovLkrgYH1G92</link> <guid>https://peertube2.cpy.re/w/7JLQ9gpmRAovLkrgYH1G92</guid> <pubDate>Fri, 06 Nov 2026 14:30:39 GMT</pubDate> <description><![CDATA[➡️ Site Internet: https://www.etoiledelusigny.fr ➡️ Chaîne vidéo : https://indymotion.fr/a/etoiledelusigny/video-channels ➡️ Facebook : https://www.facebook.com/etoiledelusignyofficiel ➡️ Instagram : https://www.instagram.com/etoiledelusignyoff...]]></description> <content:encoded><![CDATA[<p>➡️ Site Internet: <a href="https://www.etoiledelusigny.fr" target="_blank" rel="noopener noreferrer">https://www.etoiledelusigny.fr</a><br /> ➡️ Chaîne vidéo : <a href="https://indymotion.fr/a/etoiledelusigny/video-channels" target="_blank" rel="noopener noreferrer">https://indymotion.fr/a/etoiledelusigny/video-channels</a><br /> ➡️ Facebook : <a href="https://www.facebook.com/etoiledelusignyofficiel" target="_blank" rel="noopener noreferrer">https://www.facebook.com/etoiledelusignyofficiel</a><br /> ➡️ Instagram : <a href="https://www.instagram.com/etoiledelusignyofficiel/" target="_blank" rel="noopener noreferrer">https://www.instagram.com/etoiledelusignyofficiel/</a></p> ]]></content:encoded> <dc:creator>02 - Matchs et Plateaux</dc:creator> <category>Sports</category> <enclosure length="120153595" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/368fb2a2-bd76-4e69-9c85-1f215e719541?videoFileIds=5980387"/> <media:community> <media:statistics views="4"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/7JLQ9gpmRAovLkrgYH1G92"/> <media:player url="https://peertube2.cpy.re/w/7JLQ9gpmRAovLkrgYH1G92"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/a2ef9828-3874-4b70-ba70-ceab1126adac-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/6828b1bf-03e6-443d-9b2f-a09755624e0b-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/da8942e6-e126-4a76-b4ca-31fff37cf230-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/7b49d724-a542-4029-aa91-98c306e8d57b-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/ba3b7b57-ae53-48e3-bde8-2d8ff846f431-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/d531c759-69f2-4f67-8fe6-3b82934dd4f4-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="4821109" url="https://static.indymotion.fr/web-videos/d33af6a9-d42d-4a92-b58c-a4f92fc18fd3-0.mp4" framerate="0" duration="200" isDefault="true"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="120153595" url="https://static.indymotion.fr/streaming-playlists/hls/368fb2a2-bd76-4e69-9c85-1f215e719541/479280b7-19ec-4eac-9d48-6036b16335d7-1080-fragmented.mp4" framerate="30" duration="200" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="55590849" url="https://static.indymotion.fr/streaming-playlists/hls/368fb2a2-bd76-4e69-9c85-1f215e719541/0ce22690-315a-4938-abc0-14e80016a272-720-fragmented.mp4" framerate="30" duration="200" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="31613972" url="https://static.indymotion.fr/streaming-playlists/hls/368fb2a2-bd76-4e69-9c85-1f215e719541/01fcf8dc-002c-4949-9ae7-2617a1e7e0c3-480-fragmented.mp4" framerate="30" duration="200" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="11214782" url="https://static.indymotion.fr/streaming-playlists/hls/368fb2a2-bd76-4e69-9c85-1f215e719541/1ddf29de-c501-4fba-b0f8-357a60ab9781-240-fragmented.mp4" framerate="30" duration="200" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="3230065" url="https://static.indymotion.fr/streaming-playlists/hls/368fb2a2-bd76-4e69-9c85-1f215e719541/b54a28d8-a191-4417-a895-cd395aee9083-0-fragmented.mp4" framerate="0" duration="200" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/f403b594-db9b-400f-bbbb-9c0e40d2c3f3.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Résumé - Champ. D2 - Lusigny vs Chartreux 3 (01/11/2026)</media:title> <media:description type="plain">➡️ Site Internet: https://www.etoiledelusigny.fr ➡️ Chaîne vidéo : https://indymotion.fr/a/etoiledelusigny/video-channels ➡️ Facebook : https://www.facebook.com/etoiledelusignyofficiel ➡️ Instagram : https://www.instagram.com/etoiledelusignyoff...</media:description> </item> <item> <title><![CDATA[Champ. U17D - Lusigny-Bréviandes - Barrissoyes (24/102026)]]></title> <link>https://peertube2.cpy.re/w/5NAJEJJn999gUwFtKFbtTE</link> <guid>https://peertube2.cpy.re/w/5NAJEJJn999gUwFtKFbtTE</guid> <pubDate>Fri, 06 Nov 2026 14:28:30 GMT</pubDate> <description><![CDATA[➡️ Site Internet: https://www.etoiledelusigny.fr ➡️ Chaîne vidéo : https://indymotion.fr/a/etoiledelusigny/video-channels ➡️ Facebook : https://www.facebook.com/etoiledelusignyofficiel ➡️ Instagram : https://www.instagram.com/etoiledelusignyoff...]]></description> <content:encoded><![CDATA[<p>➡️ Site Internet: <a href="https://www.etoiledelusigny.fr" target="_blank" rel="noopener noreferrer">https://www.etoiledelusigny.fr</a><br /> ➡️ Chaîne vidéo : <a href="https://indymotion.fr/a/etoiledelusigny/video-channels" target="_blank" rel="noopener noreferrer">https://indymotion.fr/a/etoiledelusigny/video-channels</a><br /> ➡️ Facebook : <a href="https://www.facebook.com/etoiledelusignyofficiel" target="_blank" rel="noopener noreferrer">https://www.facebook.com/etoiledelusignyofficiel</a><br /> ➡️ Instagram : <a href="https://www.instagram.com/etoiledelusignyofficiel/" target="_blank" rel="noopener noreferrer">https://www.instagram.com/etoiledelusignyofficiel/</a></p> ]]></content:encoded> <dc:creator>02 - Matchs et Plateaux</dc:creator> <category>Sports</category> <enclosure length="2536395632" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/26e62cb6-f515-419a-9fdb-a1463522d7a0?videoFileIds=5980381"/> <media:community> <media:statistics views="0"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/5NAJEJJn999gUwFtKFbtTE"/> <media:player url="https://peertube2.cpy.re/w/5NAJEJJn999gUwFtKFbtTE"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/bc95382d-f42c-437b-95ab-429951b7bcd6-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/faa3ee30-117c-4c10-9446-6e68d3504a0d-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/76aaf658-3177-4d7d-b0cd-6958da358949-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/3e1cc271-c357-450e-8514-2e6087287d53-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/d2d260e1-2f6d-4461-8ce6-8f54a9c09d90-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/1d0851ee-8043-4520-ad86-5f85f1ae462e-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="113168995" url="https://static.indymotion.fr/web-videos/335914af-859a-435f-9146-0b8ca46fc9b4-0.mp4" framerate="0" duration="6991" isDefault="true"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="2536395632" url="https://static.indymotion.fr/streaming-playlists/hls/26e62cb6-f515-419a-9fdb-a1463522d7a0/d38f251e-8a7b-453b-82b2-06edc66d99b7-1080-fragmented.mp4" framerate="30" duration="6991" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="1134197462" url="https://static.indymotion.fr/streaming-playlists/hls/26e62cb6-f515-419a-9fdb-a1463522d7a0/5f61c1f6-1f99-4fc8-b060-842029a3f21c-720-fragmented.mp4" framerate="30" duration="6991" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="663107931" url="https://static.indymotion.fr/streaming-playlists/hls/26e62cb6-f515-419a-9fdb-a1463522d7a0/cf77b12a-13c7-4728-a490-60691741cfba-480-fragmented.mp4" framerate="30" duration="6991" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="273818055" url="https://static.indymotion.fr/streaming-playlists/hls/26e62cb6-f515-419a-9fdb-a1463522d7a0/f216d6b5-91f1-4c2c-a1b6-757c24a2c44b-240-fragmented.mp4" framerate="30" duration="6991" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="113984006" url="https://static.indymotion.fr/streaming-playlists/hls/26e62cb6-f515-419a-9fdb-a1463522d7a0/0cb43d26-896a-45c0-b26f-dc2c42404344-0-fragmented.mp4" framerate="0" duration="6991" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/ab14a5de-af77-47b1-92ed-96ea43647755.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Champ. U17D - Lusigny-Bréviandes - Barrissoyes (24/102026)</media:title> <media:description type="plain">➡️ Site Internet: https://www.etoiledelusigny.fr ➡️ Chaîne vidéo : https://indymotion.fr/a/etoiledelusigny/video-channels ➡️ Facebook : https://www.facebook.com/etoiledelusignyofficiel ➡️ Instagram : https://www.instagram.com/etoiledelusignyoff...</media:description> </item> <item> <title><![CDATA[TOUCH your Blender 👀 Blender Today LIVE #292]]></title> <link>https://peertube2.cpy.re/w/ngzGR8tA2Wr9UQUeWyHtGo</link> <guid>https://peertube2.cpy.re/w/ngzGR8tA2Wr9UQUeWyHtGo</guid> <pubDate>Fri, 06 Nov 2026 14:09:39 GMT</pubDate> <description><![CDATA[Hola Community! Pablo here. Let's see what's new in Blender. This is all possible thanks to your donations. If you like what you see, keep it going at fund.blender.org 🧡 What's New Changelog and Q&A: https://devtalk.blender.org/t/touch-your...]]></description> <content:encoded><![CDATA[<p>Hola Community! Pablo here. Let's see what's new in Blender.</p> <p>This is all possible thanks to your donations. If you like what you see, keep it going at fund.blender.org 🧡</p> What's New Changelog and Q&A: <a href="https://devtalk.blender.org/t/touch-your-blender-blender-today-live-292/46170?sort=old" target="_blank" rel="noopener noreferrer">https://devtalk.blender.org/t/touch-your-blender-blender-today-live-292/46170?sort=old</a> <p>0:00:00 Intro<br /> 0:00:25 Hola!<br /> 0:03:30 Animation<br /> 0:05:19 Compositor<br /> 0:09:52 Core<br /> 0:13:44 Cycles<br /> 0:18:30 EEVEE<br /> 0:20:38 Extensions<br /> 0:21:59 I/O<br /> 0:23:43 macOS<br /> 0:29:01 Modeling<br /> 0:29:49 Nodes<br /> 0:31:41 Projects<br /> 0:35:41 Python<br /> 0:36:33 Render<br /> 0:38:36 Sculpt<br /> 0:41:01 Subdiv<br /> 0:43:50 User Interface<br /> 0:50:49 Video Sequencer<br /> 0:54:07 Q&A<br /> 1:04:27 Outro</p> ]]></content:encoded> <dc:creator>Blender</dc:creator> <enclosure length="577787781" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/ac3cd6e2-c439-4878-86c9-b4eac388015a?videoFileIds=5980377"/> <media:community> <media:statistics views="34"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/ngzGR8tA2Wr9UQUeWyHtGo"/> <media:player url="https://peertube2.cpy.re/w/ngzGR8tA2Wr9UQUeWyHtGo"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/d3162982-da86-401f-8616-809813bb3f2f-1080.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/4565f364-d316-4f56-81d4-13ab3edd7413-480.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/be057c31-ebe3-4b02-8320-f208e64eb8d8-0.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="577787781" url="https://video.blender.org/object-storage/web_videos/c3bd7e49-d68a-427f-98e0-b033721d0103-1080.mp4" framerate="30" duration="4062" isDefault="true"/> <media:content type="video/mp4" medium="video" height="480" fileSize="271464775" url="https://video.blender.org/object-storage/web_videos/13dbed48-b8b6-462e-8e2d-8e215b01efec-480.mp4" framerate="30" duration="4062" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="65694831" url="https://video.blender.org/object-storage/web_videos/bf27d568-42b4-475b-a5d7-7cb2309f113b-0.mp4" framerate="0" duration="4062" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/dc9c6173-098c-4e5a-849e-fb803253844f.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">TOUCH your Blender 👀 Blender Today LIVE #292</media:title> <media:description type="plain">Hola Community! Pablo here. Let's see what's new in Blender. This is all possible thanks to your donations. If you like what you see, keep it going at fund.blender.org 🧡 What's New Changelog and Q&A: https://devtalk.blender.org/t/touch-your...</media:description> </item> <item> <title><![CDATA[Linux-Fragestunden mit Jean und Hauke (27.10.2026)]]></title> <link>https://peertube2.cpy.re/w/qBn5PjunKSYyLNE66f1Snr</link> <guid>https://peertube2.cpy.re/w/qBn5PjunKSYyLNE66f1Snr</guid> <pubDate>Fri, 06 Nov 2026 13:17:01 GMT</pubDate> <description><![CDATA[Jean (@LinuxGuides) und ich beantworten ab 19:30 Eure Fragen zu Linux und OpenSource. Streaming-Kalender: https://live.linuxguides.de/ Support könnt Ihr bei uns buchen unter: https://goos-habermann.de, https://www.linuxguides.de, Den...]]></description> <content:encoded><![CDATA[<p>Jean (@LinuxGuides) und ich beantworten ab 19:30 Eure Fragen zu Linux und OpenSource.</p> <p>Streaming-Kalender: <a href="https://live.linuxguides.de/" target="_blank" rel="noopener noreferrer">https://live.linuxguides.de/</a></p> <p>Support könnt Ihr bei uns buchen unter:</p> <ul> <li><a href="https://goos-habermann.de" target="_blank" rel="noopener noreferrer">https://goos-habermann.de</a></li> <li><a href="https://www.linuxguides.de" target="_blank" rel="noopener noreferrer">https://www.linuxguides.de</a></li> </ul> <p>Den Live-Stream gibt es auf:</p> <ul> <li><a href="https://www.twitch.tv/linuxguides" target="_blank" rel="noopener noreferrer">https://www.twitch.tv/linuxguides</a></li> <li><a href="https://www.linuxguides.de/live" target="_blank" rel="noopener noreferrer">https://www.linuxguides.de/live</a></li> <li><a href="https://www.youtube.com/@LinuxGuides" target="_blank" rel="noopener noreferrer">https://www.youtube.com/@LinuxGuides</a></li> <li><a href="https://www.youtube.com/@nichtderweisheit" target="_blank" rel="noopener noreferrer">https://www.youtube.com/@nichtderweisheit</a></li> </ul> ]]></content:encoded> <dc:creator>Nicht der Weisheit letzter Schluß</dc:creator> <category>Science & Technology</category> <enclosure length="648117329" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/c74b5a48-8f96-4742-ae29-d0dd2ae78d23?videoFileIds=5979789"/> <media:community> <media:statistics views="14"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/qBn5PjunKSYyLNE66f1Snr"/> <media:player url="https://peertube2.cpy.re/w/qBn5PjunKSYyLNE66f1Snr"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/0d20a3d8-ab1f-4843-85e3-edc57da8c4f3-1080.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/e55d40fc-5c7f-433f-a57d-f246b5a0fd90-480.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/f4327728-5e2e-467a-95c9-8a86fca35bc2-360.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/5c9db224-e37e-42db-9a8e-655cc3402536-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/105ef7e9-a0e9-4060-9d9f-8898502a2308-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/a24bf474-86a7-4a4d-bfc7-833ab349d28c-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/eccecbdb-2650-4eb4-9d44-76e1cac72f22-360-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/ca203615-9925-4151-94e3-1c0ef1855a05-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="648117329" url="https://media.tube.tchncs.de/videos/e8d74048-0755-40ce-85c8-140da99d26f3-1080.mp4" framerate="30" duration="6670" isDefault="true"/> <media:content type="video/mp4" medium="video" height="480" fileSize="366428075" url="https://media.tube.tchncs.de/videos/c06b968d-063d-4072-9784-cc6a6573f77c-480.mp4" framerate="30" duration="6670" isDefault="false"/> <media:content type="video/mp4" medium="video" height="360" fileSize="317010535" url="https://media.tube.tchncs.de/videos/4aebfd8b-a1aa-42db-a60c-ee0a2517a802-360.mp4" framerate="30" duration="6670" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="204174238" url="https://media.tube.tchncs.de/videos/5b3471e0-3879-4d7a-b550-7f0e41b824f8-0.mp4" framerate="0" duration="6670" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="644369079" url="https://media.tube.tchncs.de/streaming-playlists/hls/c74b5a48-8f96-4742-ae29-d0dd2ae78d23/38a3d305-850e-4c8e-a97a-a5ff72dec52e-1080-fragmented.mp4" framerate="30" duration="6670" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="362560773" url="https://media.tube.tchncs.de/streaming-playlists/hls/c74b5a48-8f96-4742-ae29-d0dd2ae78d23/cab5c88b-5ced-4e29-a43b-3eaec982e4cd-480-fragmented.mp4" framerate="30" duration="6670" isDefault="false"/> <media:content type="video/mp4" medium="video" height="360" fileSize="313086009" url="https://media.tube.tchncs.de/streaming-playlists/hls/c74b5a48-8f96-4742-ae29-d0dd2ae78d23/8380ebb4-1617-468e-8599-709bff2b302c-360-fragmented.mp4" framerate="30" duration="6670" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="203170116" url="https://media.tube.tchncs.de/streaming-playlists/hls/c74b5a48-8f96-4742-ae29-d0dd2ae78d23/7ade8d4f-797f-465a-ae68-b3385571f0d3-0-fragmented.mp4" framerate="0" duration="6670" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/1e4defe6-9824-4f50-9502-a4ad67b33883.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Linux-Fragestunden mit Jean und Hauke (27.10.2026)</media:title> <media:description type="plain">Jean (@LinuxGuides) und ich beantworten ab 19:30 Eure Fragen zu Linux und OpenSource. Streaming-Kalender: https://live.linuxguides.de/ Support könnt Ihr bei uns buchen unter: https://goos-habermann.de, https://www.linuxguides.de, Den...</media:description> </item> <item> <title><![CDATA[Mika and The Witch's Mountain : No Comment Free Roam]]></title> <link>https://peertube2.cpy.re/w/qVkKHH4wqkRkNQsnEmp4A8</link> <guid>https://peertube2.cpy.re/w/qVkKHH4wqkRkNQsnEmp4A8</guid> <pubDate>Fri, 06 Nov 2026 12:45:22 GMT</pubDate> <description><![CDATA[J'avais juste envie de relancer le jeu pour une balade tranquille et pour tester le jeu sur une grande télé Il y a des petits « sauts d'images » (pas bien méchant) car il s'agit d'une fusion de 35 clips Switch]]></description> <content:encoded><![CDATA[<p>J'avais juste envie de relancer le jeu pour une balade tranquille et pour tester le jeu sur une grande télé</p> <ul> <li>Il y a des petits « sauts d'images » (pas bien méchant) car il s'agit d'une fusion de 35 clips Switch</li> </ul> ]]></content:encoded> <dc:creator>Lucilia</dc:creator> <category>Gaming</category> <enclosure length="369858947" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/c9cdebdd-71f5-4cf5-a2c2-5ebca065b7ff?videoFileIds=5979742"/> <media:community> <media:statistics views="3"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/qVkKHH4wqkRkNQsnEmp4A8"/> <media:player url="https://peertube2.cpy.re/w/qVkKHH4wqkRkNQsnEmp4A8"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/601769ad-a26a-4eb8-b30e-cc000aea5602-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/2e8bc346-b25d-49f4-b73c-dc63bf277206-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/1f3001ca-5c17-4aa5-af04-fdd652289fda-480-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="26476238" url="https://videos.pair2jeux.tube/static/web-videos/3fd0ea45-0590-4bad-b6df-08730c020fa2-0.mp4" framerate="0" duration="659" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="369858947" url="https://videos.pair2jeux.tube/static/streaming-playlists/hls/c9cdebdd-71f5-4cf5-a2c2-5ebca065b7ff/762e854e-96c8-4a64-899c-5e87480c3cc3-720-fragmented.mp4" framerate="30" duration="659" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="109249171" url="https://videos.pair2jeux.tube/static/streaming-playlists/hls/c9cdebdd-71f5-4cf5-a2c2-5ebca065b7ff/29ef105a-8615-4bd0-8c45-45327aa5b065-480-fragmented.mp4" framerate="30" duration="659" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/05e166c1-261b-49bd-9a10-761670f6a4bf.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Mika and The Witch's Mountain : No Comment Free Roam</media:title> <media:description type="plain">J'avais juste envie de relancer le jeu pour une balade tranquille et pour tester le jeu sur une grande télé Il y a des petits « sauts d'images » (pas bien méchant) car il s'agit d'une fusion de 35 clips Switch</media:description> </item> <item> <title><![CDATA[LeMondeModerne -- Crédit Mutuel - 100 Millions Hack- 2026-11]]></title> <link>https://peertube2.cpy.re/w/8drRDcYVUmFipxeqnC3NZr</link> <guid>https://peertube2.cpy.re/w/8drRDcYVUmFipxeqnC3NZr</guid> <pubDate>Fri, 06 Nov 2026 11:01:28 GMT</pubDate> <description><![CDATA[On a pas fini de se marrer .......Vu leurs incompétences et leur acharnement à répéter les mêmes erreurs. C'est pas l'I-A qui va nous sortir de ce merdier !! https://francefuites.com/]]></description> <content:encoded><![CDATA[<p>On a pas fini de se marrer .......Vu leurs incompétences et leur acharnement à répéter les mêmes erreurs.</p> <p>C'est pas l'I-A qui va nous sortir de ce merdier !!</p> <p><a href="https://francefuites.com/" target="_blank" rel="noopener noreferrer">https://francefuites.com/</a></p> ]]></content:encoded> <dc:creator>F4I</dc:creator> <category>Science & Technology</category> <enclosure length="23258302" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/3a6cd482-8b29-460a-bbce-2bd28143c9ab?videoFileIds=5979718"/> <media:community> <media:statistics views="2"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/8drRDcYVUmFipxeqnC3NZr"/> <media:player url="https://peertube2.cpy.re/w/8drRDcYVUmFipxeqnC3NZr"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/9850c3d5-8dc7-46c1-97c5-939df4f9d3e3-720.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/33d00994-fee9-4216-b37e-428a0c29c300-480.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/d1a455c5-4e66-47a8-bc1c-3fcc8e8141df-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/6ef38fa9-e0e8-4ace-a302-b90f1c704ecf-480-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="23258302" url="https://fightforinfo.com/static/web-videos/28880de7-2b2f-44f2-a7a0-2a14f5b7cbc6-720.mp4" framerate="30" duration="5135" isDefault="true"/> <media:content type="video/mp4" medium="video" height="480" fileSize="17422087" url="https://fightforinfo.com/static/web-videos/fb54e148-4cbb-4c7b-8048-96825b273dee-480.mp4" framerate="30" duration="5135" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="23141092" url="https://fightforinfo.com/static/streaming-playlists/hls/3a6cd482-8b29-460a-bbce-2bd28143c9ab/41fe9cd3-cbb8-402b-9e12-fabdd0bb28d3-720-fragmented.mp4" framerate="30" duration="5135" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="17302869" url="https://fightforinfo.com/static/streaming-playlists/hls/3a6cd482-8b29-460a-bbce-2bd28143c9ab/fa2bd9a1-67ec-4be1-a584-436647f8af99-480-fragmented.mp4" framerate="30" duration="5135" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/86598a01-8898-4fbf-84fe-839e96cbc39f.jpg" height="157" width="280"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/a11aa3a8-69bf-4732-8e8c-4caf8d8cc36a.jpg" height="480" width="850"/> <media:rating>nonadult</media:rating> <media:title type="plain">LeMondeModerne -- Crédit Mutuel - 100 Millions Hack- 2026-11</media:title> <media:description type="plain">On a pas fini de se marrer .......Vu leurs incompétences et leur acharnement à répéter les mêmes erreurs. C'est pas l'I-A qui va nous sortir de ce merdier !! https://francefuites.com/</media:description> </item> <item> <title><![CDATA[Tux Flash 2026-10-26 PHP2Shell]]></title> <link>https://peertube2.cpy.re/w/t497ab6ezXumbWojSpJCBA</link> <guid>https://peertube2.cpy.re/w/t497ab6ezXumbWojSpJCBA</guid> <pubDate>Fri, 06 Nov 2026 11:00:25 GMT</pubDate> <description><![CDATA[Es ist wieder Podcast, meine Kerle 😃 Heute schnacken Micha (@saintofsinner), Jean (@LinuxGuides) und ich ab 19:30 im Tux Flash über verschiedene Themen aus dem Linux- und OpenSource-Bereich. Der Podcast wird live gestreamt auf: https:...]]></description> <content:encoded><![CDATA[<p>Es ist wieder Podcast, meine Kerle 😃</p> <p>Heute schnacken Micha (@saintofsinner), Jean (@LinuxGuides) und ich ab 19:30 im Tux Flash über verschiedene Themen aus dem Linux- und OpenSource-Bereich.</p> <p>Der Podcast wird live gestreamt auf:</p> <ul> <li><a href="https://www.twitch.tv/saintofsinner" target="_blank" rel="noopener noreferrer">https://www.twitch.tv/saintofsinner</a></li> <li><a href="https://www.linuxguides.de/live" target="_blank" rel="noopener noreferrer">https://www.linuxguides.de/live</a></li> <li><a href="https://youtube.com/@nichtderweisheit" target="_blank" rel="noopener noreferrer">https://youtube.com/@nichtderweisheit</a></li> </ul> <p>Der Tux Flash wird anschließend veröffentlicht auf :</p> <ul> <li><a href="https://tube.tchncs.de/c/ndwls/videos" target="_blank" rel="noopener noreferrer">https://tube.tchncs.de/c/ndwls/videos</a></li> <li><a href="https://www.youtube.com/@Tux-Flash" target="_blank" rel="noopener noreferrer">https://www.youtube.com/@Tux-Flash</a></li> <li><a href="https://www.youtube.com/playlist?list=PLt-F9X6Bnsjhr3xeScgs4xElpJvaqaCW0" target="_blank" rel="noopener noreferrer">https://www.youtube.com/playlist?list=PLt-F9X6Bnsjhr3xeScgs4xElpJvaqaCW0</a></li> <li>Archiv mit alten Folgen: <a href="https://www.youtube.com/playlist?list=PLPK5iNo_kpNe0dtNukSwl02w64dKSYBlJ" target="_blank" rel="noopener noreferrer">https://www.youtube.com/playlist?list=PLPK5iNo_kpNe0dtNukSwl02w64dKSYBlJ</a></li> <li><a href="https://open.spotify.com/show/5j5C5a3nTq2L2Z2RBOvLuE" target="_blank" rel="noopener noreferrer">https://open.spotify.com/show/5j5C5a3nTq2L2Z2RBOvLuE</a></li> </ul> ]]></content:encoded> <dc:creator>Nicht der Weisheit letzter Schluß</dc:creator> <category>Science & Technology</category> <enclosure length="708299673" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/db16f882-4572-48f1-b468-c663551002e0?videoFileIds=5979724"/> <media:community> <media:statistics views="7"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/t497ab6ezXumbWojSpJCBA"/> <media:player url="https://peertube2.cpy.re/w/t497ab6ezXumbWojSpJCBA"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/c804919f-56f8-4f67-831e-ea643d47c6d9-720.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/c284c8bc-598f-4b44-8e30-cf718b490808-480.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/1f099abf-ecc0-437b-a247-a669337d73c6-360.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/86255534-97ea-4e8c-b07b-b282570ef7f3-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/bcdb1477-d852-42be-bdbb-b29d213e8ee3-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/f38c2fe4-b2fa-4d17-b4a4-dc376818fb16-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/8f91fd44-0de2-439f-8a09-d494b7096ad2-360-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/f322d25d-41f9-4427-b45f-798c5cdc46cd-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="708299673" url="https://media.tube.tchncs.de/videos/67ff5f30-789d-4432-8216-9d532054b12d-720.mp4" framerate="60" duration="4495" isDefault="true"/> <media:content type="video/mp4" medium="video" height="480" fileSize="478084483" url="https://media.tube.tchncs.de/videos/5b4fccd8-13bb-4a5f-8af3-b7255204b8b4-480.mp4" framerate="30" duration="4495" isDefault="false"/> <media:content type="video/mp4" medium="video" height="360" fileSize="347248579" url="https://media.tube.tchncs.de/videos/3509e85a-117d-49e0-817c-1cc87705eaa5-360.mp4" framerate="30" duration="4495" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="122632691" url="https://media.tube.tchncs.de/videos/98151f2c-6ec0-4d57-b2fc-6ae7126c4b56-0.mp4" framerate="0" duration="4495" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="705161159" url="https://media.tube.tchncs.de/streaming-playlists/hls/db16f882-4572-48f1-b468-c663551002e0/11d6168e-4f57-4842-8279-67e76382e2a0-720-fragmented.mp4" framerate="60" duration="4495" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="475213357" url="https://media.tube.tchncs.de/streaming-playlists/hls/db16f882-4572-48f1-b468-c663551002e0/1153f526-8c19-4acc-840a-81ab90ee9822-480-fragmented.mp4" framerate="30" duration="4495" isDefault="false"/> <media:content type="video/mp4" medium="video" height="360" fileSize="344385925" url="https://media.tube.tchncs.de/streaming-playlists/hls/db16f882-4572-48f1-b468-c663551002e0/7abf0dcb-0a6a-4732-8608-8ec4683a2573-360-fragmented.mp4" framerate="30" duration="4495" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="121967905" url="https://media.tube.tchncs.de/streaming-playlists/hls/db16f882-4572-48f1-b468-c663551002e0/83191c9b-3b70-4f31-9089-e7f9f0755473-0-fragmented.mp4" framerate="0" duration="4495" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/a8b78e9e-51fe-4c4a-b8b4-86b947fb81f8.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Tux Flash 2026-10-26 PHP2Shell</media:title> <media:description type="plain">Es ist wieder Podcast, meine Kerle 😃 Heute schnacken Micha (@saintofsinner), Jean (@LinuxGuides) und ich ab 19:30 im Tux Flash über verschiedene Themen aus dem Linux- und OpenSource-Bereich. Der Podcast wird live gestreamt auf: https:...</media:description> </item> <item> <title><![CDATA[hatniX spielt „Heavy Cargo - The Truck Simulator“ Heavy Defense DLC]]></title> <link>https://peertube2.cpy.re/w/jrRBTY1z22TsNkxBCiyM7h</link> <guid>https://peertube2.cpy.re/w/jrRBTY1z22TsNkxBCiyM7h</guid> <pubDate>Fri, 06 Nov 2026 07:51:42 GMT</pubDate> <description><![CDATA[„Heavy Cargo - The Truck Simulator“ von tox² interactive hat gestern sowohl ein neues großes Update, Version 1.4.0, als auch ein neues DLC, Heavy Defense, erhalten, Genug Gründe für ein Video. Das Spiel steht nur für Windows zur Verfügung, Ich sp...]]></description> <content:encoded><![CDATA[<p>„Heavy Cargo - The Truck Simulator“ von tox² interactive hat gestern sowohl ein neues großes Update, Version 1.4.0, als auch ein neues DLC, Heavy Defense, erhalten, Genug Gründe für ein Video.<br /> Das Spiel steht nur für Windows zur Verfügung, Ich spiele es unter Linux (CachyOS, Plasma Desktop) mit Hilfe von Proton 11.0-2.</p> <p>Steam-Seite: <a href="https://store.steampowered.com/app/1474930" target="_blank" rel="noopener noreferrer">https://store.steampowered.com/app/1474930</a><br /> Heavy Defense DLC: <a href="https://store.steampowered.com/app/5100210" target="_blank" rel="noopener noreferrer">https://store.steampowered.com/app/5100210</a><br /> Changelog: <a href="https://heavy-cargo.aerosoft.com/patches" target="_blank" rel="noopener noreferrer">https://heavy-cargo.aerosoft.com/patches</a><br /> Webseite: <a href="https://tox2-interactive.com/title/coming-soon-heavy-cargo-the-truck-simulator" target="_blank" rel="noopener noreferrer">https://tox2-interactive.com/title/coming-soon-heavy-cargo-the-truck-simulator</a></p> <p>GOG Dreamlist: <a href="https://www.gog.com/dreamlist/game/heavy-cargo-the-truck-simulator-2024" target="_blank" rel="noopener noreferrer">https://www.gog.com/dreamlist/game/heavy-cargo-the-truck-simulator-2024</a></p> <p>Meine Webseite: <a href="https://hatnix.net" target="_blank" rel="noopener noreferrer">https://hatnix.net</a></p> ]]></content:encoded> <dc:creator>haTube</dc:creator> <category>Gaming</category> <enclosure length="1791080779" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/9560ab3a-771f-41f9-9512-fd0be4aced90?videoFileIds=5979643"/> <media:community> <media:statistics views="10"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/jrRBTY1z22TsNkxBCiyM7h"/> <media:player url="https://peertube2.cpy.re/w/jrRBTY1z22TsNkxBCiyM7h"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/bbd44cce-13cb-4cb9-b728-a028ec3befdb-1080.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/e91262a4-7e3b-4b2d-a6bd-adde7927e473-480.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/f4248012-ed41-4c01-af2c-3e86bb03c81b-360.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/0c7903f9-ab8d-48e0-b3df-4519f7e7a77f-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/82597cd0-2eae-4a7b-b017-960f27cb400c-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/968f1805-769c-4f44-a0b3-1c8575227270-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/a2414346-13c3-4439-9ca9-ecfd138489ed-360-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/1907524c-b5f2-44aa-bf5a-fa91fc6bf42b-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="1791080779" url="https://media.tube.tchncs.de/videos/a2dfbff9-d5db-4d8f-9a5b-66eceeb2aced-1080.mp4" framerate="60" duration="4053" isDefault="true"/> <media:content type="video/mp4" medium="video" height="480" fileSize="476051833" url="https://media.tube.tchncs.de/videos/8fe27a12-78d4-4b86-a8f4-c13eedff7e8f-480.mp4" framerate="30" duration="4053" isDefault="false"/> <media:content type="video/mp4" medium="video" height="360" fileSize="339515761" url="https://media.tube.tchncs.de/videos/3ae9086b-e6e3-43e8-9e5a-3384b71efcbc-360.mp4" framerate="30" duration="4053" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="98025429" url="https://media.tube.tchncs.de/videos/38729d67-e4fe-4e3d-880d-6821004eb5c6-0.mp4" framerate="0" duration="4053" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="1787287153" url="https://media.tube.tchncs.de/streaming-playlists/hls/9560ab3a-771f-41f9-9512-fd0be4aced90/0062229e-f43b-4b2f-8204-ccbaca231aae-1080-fragmented.mp4" framerate="60" duration="4053" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="474377915" url="https://media.tube.tchncs.de/streaming-playlists/hls/9560ab3a-771f-41f9-9512-fd0be4aced90/cb8ba30b-6314-456d-a1af-837470e7ce18-480-fragmented.mp4" framerate="30" duration="4053" isDefault="false"/> <media:content type="video/mp4" medium="video" height="360" fileSize="337833107" url="https://media.tube.tchncs.de/streaming-playlists/hls/9560ab3a-771f-41f9-9512-fd0be4aced90/916d411f-64d7-4018-ba76-ba839e74412a-360-fragmented.mp4" framerate="30" duration="4053" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="98182751" url="https://media.tube.tchncs.de/streaming-playlists/hls/9560ab3a-771f-41f9-9512-fd0be4aced90/31d13bca-b7de-4516-9c93-0718c223b493-0-fragmented.mp4" framerate="0" duration="4053" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/60112ee8-3132-46f5-a51c-d4388fa4d5cc.png" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">hatniX spielt „Heavy Cargo - The Truck Simulator“ Heavy Defense DLC</media:title> <media:description type="plain">„Heavy Cargo - The Truck Simulator“ von tox² interactive hat gestern sowohl ein neues großes Update, Version 1.4.0, als auch ein neues DLC, Heavy Defense, erhalten, Genug Gründe für ein Video. Das Spiel steht nur für Windows zur Verfügung, Ich sp...</media:description> </item> <item> <title><![CDATA[ALGORITMO [Corto]]]></title> <link>https://peertube2.cpy.re/w/nHvKUJddRN7ouD28Cum8UY</link> <guid>https://peertube2.cpy.re/w/nHvKUJddRN7ouD28Cum8UY</guid> <pubDate>Fri, 06 Nov 2026 02:51:12 GMT</pubDate> <description><![CDATA[La obra traza un paralelismo entre el funcionamiento de la máquina y nuestra relación con internet, que a grandes rasgos replica la estructura del sistema capitalista. ¿Cómo nos relacionamos con todos nuestros procesos corporales? ¿Todo se ve atra...]]></description> <content:encoded><![CDATA[<p>La obra traza un paralelismo entre el funcionamiento de la máquina y nuestra relación con internet, que a grandes rasgos replica la estructura del sistema capitalista. ¿Cómo nos relacionamos con todos nuestros procesos corporales? ¿Todo se ve atravesado por la lógica algorítmica de "procesar para capitalizar"? ¿Cómo rompemos este esquema de racionalización dominante? ¿Cómo encontrar otras maneras de procesar nuestra experiencia viviente? ¿Cómo reconectar con nuestra propia manera de sentir que sólo nosotros mismos conocemos? ¿Cómo compartir con otros seres sintientes, si ni siquiera podemos procesar los nuestros? Desconectarse del sistema que nos hemos autoimpuesto, de la auto-observación característica del antropocentrismo, que replica los peores valores de la humanidad: aprovecharse hasta del mínimo recurso energético para generar capital, a costa de la deshidratación absoluta de los cuerpos. Es un llamado a reconectar con la propia naturaleza del cuerpo y del sentir animal, que necesita de los otros para sobrevivir.</p> <p>Breve descripción de la producción<br /> La idea de la producción fue que sea totalmente realizado por una persona. Cámara, actuación y edición, para reforzar la idea de la ilusión de la búsqueda personal totalmente individualizada. Todo ocurre en silencio. No hay voces, las palabras solo se transmiten visualmente. Los sonidos que se escuchan son de ambiente y por los movimientos e interacciones del personaje.</p> <p>El plano en el mundo real ocurre siempre con el mismo plano de cámara en la misma habitación. La decisión de que no se vea nada más que esta situación en la vida real, viene a que el personaje está tan subsumido en su propia cabeza que no presta atención a nada de lo que le sucede. Eso, y por medios de producción.</p> <p>Se utilizó inteligencia artificial para producir algunos elementos de la obra, como la rotoscopia sobre el personaje en los planos en 3D. Tanto por una cuestión de discurso como de tiempos de producción, que fue utilizado a favor. Las escenas en 3D fueron realizadas en el software libre Blender, el cual tuve que aprender a usar prácticamente de 0. Pude hacerlo gracias a su enorme comunidad y los tutoriales, materiales y modelos que publican de forma libre por todo internet, sobretodo los tutoriales de CGMatter / Default Cube, las texturas de PolyHaven y los modelos de Sketchfab.</p> <p>Muchos elementos fueron descargados y reutilizados de internet, tanto modelos 3D, el aspecto auditivo e incluso detalles como los afiches del Instituto de Trabajo, tomados del archivo histórico gráfico de la Biblioteca Nacional. La música en la escena del espejo es ultratronics 15 de Ryoji Ikeda. También usé sonidos del Half Life 1 para el ambiente y los pasos.</p> <p>Si llegaste hasta acá te agradezco por prestar atención. Espero que te haya gustado!</p> <p>Agosto 2023</p> <p>Paren el mundo me quiero bajar</p> ]]></content:encoded> <dc:creator>elgurideltecho</dc:creator> <category>Art</category> <enclosure length="38616216" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/afdbbeaf-81cd-47ec-855f-b33465b7469c?videoFileIds=5979314"/> <media:community> <media:statistics views="16"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/nHvKUJddRN7ouD28Cum8UY"/> <media:player url="https://peertube2.cpy.re/w/nHvKUJddRN7ouD28Cum8UY"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/f0cf5e21-5242-40b6-a993-17ddbe9bd20a-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/410f761d-8424-4001-92d7-d10bd27e8d71-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/f97f456a-7fa6-469f-ba20-28815e7d4f74-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/8545fe00-1763-4621-9db4-af2ff481df8e-360-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/7a7061fc-fe02-47ff-ae75-e2eb44c8ed3a-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/46e69667-06b4-4c98-ada8-dca799417095-144-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/aa839409-9dda-4563-81f4-0239a0792cdc-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="8415558" url="https://tube.undernet.uy/static/web-videos/d084f1ff-71fe-49df-af18-798a368e7daa-0.mp4" framerate="0" duration="345" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="38616216" url="https://tube.undernet.uy/static/streaming-playlists/hls/afdbbeaf-81cd-47ec-855f-b33465b7469c/35e63da1-594f-4a98-9604-7f03c8ad5880-720-fragmented.mp4" framerate="24" duration="345" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="23231498" url="https://tube.undernet.uy/static/streaming-playlists/hls/afdbbeaf-81cd-47ec-855f-b33465b7469c/b5c97dc1-5a81-465a-bb71-79e44e52f4c2-480-fragmented.mp4" framerate="24" duration="345" isDefault="false"/> <media:content type="video/mp4" medium="video" height="360" fileSize="18314509" url="https://tube.undernet.uy/static/streaming-playlists/hls/afdbbeaf-81cd-47ec-855f-b33465b7469c/63868f29-9416-4a63-ad78-72cd84075b8a-360-fragmented.mp4" framerate="24" duration="345" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="13369144" url="https://tube.undernet.uy/static/streaming-playlists/hls/afdbbeaf-81cd-47ec-855f-b33465b7469c/bb9e05dd-236e-4fc1-960b-6d77d83df4dc-240-fragmented.mp4" framerate="24" duration="345" isDefault="false"/> <media:content type="video/mp4" medium="video" height="144" fileSize="10688329" url="https://tube.undernet.uy/static/streaming-playlists/hls/afdbbeaf-81cd-47ec-855f-b33465b7469c/2e752eab-02ee-4e3d-ad65-4e3288974b8d-144-fragmented.mp4" framerate="24" duration="345" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="8428460" url="https://tube.undernet.uy/static/streaming-playlists/hls/afdbbeaf-81cd-47ec-855f-b33465b7469c/a4cf3fd9-271d-48ce-ab99-b527218cf57e-0-fragmented.mp4" framerate="0" duration="345" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/df56cdfc-7962-427d-95b1-a7e541c6de01.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">ALGORITMO [Corto]</media:title> <media:description type="plain">La obra traza un paralelismo entre el funcionamiento de la máquina y nuestra relación con internet, que a grandes rasgos replica la estructura del sistema capitalista. ¿Cómo nos relacionamos con todos nuestros procesos corporales? ¿Todo se ve atra...</media:description> </item> <item> <title><![CDATA[Il veut stopper le mouvement social !]]></title> <link>https://peertube2.cpy.re/w/oY9xth5zoL7HQ2jbK4GBoB</link> <guid>https://peertube2.cpy.re/w/oY9xth5zoL7HQ2jbK4GBoB</guid> <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate> <dc:creator>Info Gaucho</dc:creator> <category>News & Politics</category> <enclosure length="17277697" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/b9fff758-cc77-4cc0-87f1-1e8bd520e0db?videoFileIds=5980414&videoFileIds=5980413"/> <media:community> <media:statistics views="16"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/oY9xth5zoL7HQ2jbK4GBoB"/> <media:player url="https://peertube2.cpy.re/w/oY9xth5zoL7HQ2jbK4GBoB"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/3775c935-a864-49c0-9d65-7e952663ccfd-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/b6aa1b58-b761-44e7-94b5-0f8690e49e9f-1920-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/61e3f6e1-1d4d-4365-816b-be3c03586a91-640-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/8ac0a003-48f0-4de5-af90-0ffc2000f29e-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="1767333" url="https://lostpod.space/static/web-videos/f9a56009-8b8b-4ea9-92ad-f2e97f3c1218-0.mp4" framerate="0" duration="111" isDefault="true"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="15510364" url="https://lostpod.space/static/streaming-playlists/hls/b9fff758-cc77-4cc0-87f1-1e8bd520e0db/daff3624-8664-40f1-9e8c-2ab055903b79-1080-fragmented.mp4" framerate="24" duration="111" isDefault="false"/> <media:content type="video/mp4" medium="video" height="360" fileSize="4863141" url="https://lostpod.space/static/streaming-playlists/hls/b9fff758-cc77-4cc0-87f1-1e8bd520e0db/5398fb29-8e69-4f6d-ba06-44ddf18e9318-360-fragmented.mp4" framerate="24" duration="111" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="1839865" url="https://lostpod.space/static/streaming-playlists/hls/b9fff758-cc77-4cc0-87f1-1e8bd520e0db/9cbd896b-d610-4ca2-a821-78425d9ff71e-0-fragmented.mp4" framerate="0" duration="111" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/4a639e58-2c07-4f10-acac-5a74ad9e00e2.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Il veut stopper le mouvement social !</media:title> </item> <item> <title><![CDATA[🌿 Abandoned depot, where nature has taken over. Forgotten, left to rot in a small village. England]]></title> <link>https://peertube2.cpy.re/w/8NK4R3zefL7tbvmzA5iNs1</link> <guid>https://peertube2.cpy.re/w/8NK4R3zefL7tbvmzA5iNs1</guid> <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate> <description><![CDATA[🌿 Nature takes over an old abandoned depot, filling the hallways with ferns and add a splash of green to the walls. Somewhere in England, rotting away in a small village. #Abandoned #Urbex #UrbanExploration #England]]></description> <content:encoded><![CDATA[<p>🌿 Nature takes over an old abandoned depot, filling the hallways with ferns and add a splash of green to the walls. Somewhere in England, rotting away in a small village.</p> <p>#Abandoned #Urbex #UrbanExploration #England</p> ]]></content:encoded> <dc:creator>Obsidian Urbex - Abandoned Places Videos</dc:creator> <category>Entertainment</category> <enclosure length="11426320" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/3f36b97e-e22e-4191-aaba-ca71c4dc8fc4?videoFileIds=5980586&videoFileIds=5980585"/> <media:community> <media:statistics views="5"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/8NK4R3zefL7tbvmzA5iNs1"/> <media:player url="https://peertube2.cpy.re/w/8NK4R3zefL7tbvmzA5iNs1"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/e25560e5-663a-4c0e-9c49-c0a7e994b74d-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/880dc2bb-8f6b-475a-abdb-bf7dadc93dbd-1920-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/8ce29aa0-7f89-4e4a-ad59-859b6ee5f005-640-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/f225484c-647c-4653-ad0b-7c8567597e11-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="598797" url="https://lostpod.space/static/web-videos/6cce5b26-1ac3-4fcc-85b2-447120cbbd77-0.mp4" framerate="0" duration="36" isDefault="true"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="10827523" url="https://lostpod.space/static/streaming-playlists/hls/3f36b97e-e22e-4191-aaba-ca71c4dc8fc4/6a3b53a7-e7bd-44a3-8bf7-89fe08d9d10e-1080-fragmented.mp4" framerate="60" duration="36" isDefault="false"/> <media:content type="video/mp4" medium="video" height="360" fileSize="2141975" url="https://lostpod.space/static/streaming-playlists/hls/3f36b97e-e22e-4191-aaba-ca71c4dc8fc4/b23cf52a-2725-47a8-ad41-6c2993d0333b-360-fragmented.mp4" framerate="30" duration="36" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="591809" url="https://lostpod.space/static/streaming-playlists/hls/3f36b97e-e22e-4191-aaba-ca71c4dc8fc4/18909985-9062-4277-9f09-d03f5549349e-0-fragmented.mp4" framerate="0" duration="36" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/9f4599de-f175-45ce-af56-7b38238ea151.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">🌿 Abandoned depot, where nature has taken over. Forgotten, left to rot in a small village. England</media:title> <media:description type="plain">🌿 Nature takes over an old abandoned depot, filling the hallways with ferns and add a splash of green to the walls. Somewhere in England, rotting away in a small village. #Abandoned #Urbex #UrbanExploration #England</media:description> </item> <item> <title><![CDATA[Le rassemblement réac du maire d'Orléans se retourne contre lui]]></title> <link>https://peertube2.cpy.re/w/vtRA1bo33HhWYcNupkhm9f</link> <guid>https://peertube2.cpy.re/w/vtRA1bo33HhWYcNupkhm9f</guid> <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate> <dc:creator>Info Gaucho</dc:creator> <category>News & Politics</category> <enclosure length="25791395" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/eebca95b-39a0-4690-9b65-ded7747729be?videoFileIds=5980724&videoFileIds=5980723"/> <media:community> <media:statistics views="10"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/vtRA1bo33HhWYcNupkhm9f"/> <media:player url="https://peertube2.cpy.re/w/vtRA1bo33HhWYcNupkhm9f"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/d2d163fd-b652-4b71-b46a-f8cad67fe53d-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/94ba3287-f133-4a8d-b3f8-f972d5f10bd6-1920-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/2489bd67-6933-463d-b768-720db27d0d52-640-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/9dd095ed-796c-41a0-b0c3-edbb84c071b6-0-hls.torrent" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="1332893" url="https://lostpod.space/static/web-videos/36994b03-16e7-4a19-81b1-ff1180455e79-0.mp4" framerate="0" duration="102" isDefault="true"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="24458502" url="https://lostpod.space/static/streaming-playlists/hls/eebca95b-39a0-4690-9b65-ded7747729be/77e3a34b-4b79-474d-ab1c-677a00e3b8bf-1080-fragmented.mp4" framerate="30" duration="102" isDefault="false"/> <media:content type="video/mp4" medium="video" height="360" fileSize="9495067" url="https://lostpod.space/static/streaming-playlists/hls/eebca95b-39a0-4690-9b65-ded7747729be/f6ffb94e-e0ad-41d6-b87a-8ad18feb7057-360-fragmented.mp4" framerate="30" duration="102" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="1670337" url="https://lostpod.space/static/streaming-playlists/hls/eebca95b-39a0-4690-9b65-ded7747729be/43ffee7c-4539-4551-bf91-6f61ee332327-0-fragmented.mp4" framerate="0" duration="102" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/63c0178d-9cb1-4722-ad84-95ff8665b242.jpg" height="1400" width="1400"/> <media:rating>nonadult</media:rating> <media:title type="plain">Le rassemblement réac du maire d'Orléans se retourne contre lui</media:title> </item> </channel> </rss>
| format required | string Enum: "xml" "rss" "rss2" "atom" "atom1" "json" "json1" format expected (we focus on making |
| accountId required | string limit listing to a specific account |
| hasHLSFiles | boolean PeerTube >= 4.0 Display only videos that have HLS files |
| hasWebVideoFiles | boolean PeerTube >= 6.0 Display only videos that have Web Video files |
| include | integer Enum: 0 1 2 4 8 16 32 Only administrators and moderators can use this parameter Include additional videos in results (can be combined using bitwise or operator)
|
| isLocal | boolean PeerTube >= 4.0 Display only local or remote objects |
| nsfw | string Enum: "true" "false" whether to include nsfw videos, if any |
| privacyOneOf | integer (VideoPrivacySet) Enum: 1 2 3 4 5 PeerTube >= 4.0 Display only videos in this specific privacy/privacies |
| sort | string Example: sort=-createdAt Sort column |
| token required | string private token allowing access |
PeerTube >= 9.0 Chapters of a video in the Podcasting 2.0 JSON format, referenced by the podcast:chapters tag of podcast feed items.
See https://podcasting2.org/docs/podcast-namespace/tags/chapters
| videoId required | string The video id, uuid or short uuid |
{- "version": "1.2.0",
- "chapters": [
- {
- "startTime": 0,
- "title": "string"
}
]
}As a visitor, you can use this API to open an account (if registrations are open on that PeerTube instance). As an admin, you should use the dedicated User creation API instead.
Following a user registration, the new user will receive an email asking to click a link containing a secret. This endpoint can also be used to verify a new email set in the user account.
| id required | integer (id) >= 1 Example: 42 Entity id |
| verificationString required | string <url> |
| isPendingEmail | boolean |
{- "verificationString": "string",
- "isPendingEmail": true
}Following a user registration request, the user will receive an email asking to click a link containing a secret.
| registrationId required | integer (id) >= 1 Example: 42 Registration ID |
| verificationString required | string <url> |
{- "verificationString": "string"
}Signup has to be enabled and signup approval is not required
| email required | string <email> email of the user, used for login or service communications |
| password required | string <password> (password) [ 6 .. 50 ] characters |
| username required | string [ 1 .. 50 ] characters /^[a-z0-9._]+$/ immutable name of the user, used to find or mention its actor |
object channel base information used to create the first channel of the user | |
| displayName | string [ 1 .. 120 ] characters editable name of the user, displayed in its representations |
| signupClient | string Value: "peertube-app" PeerTube >= 9.0 Client used to sign up. If set, links of the verification and registration accepted emails make the web client propose to open this client |
{- "username": "chocobozzz",
- "password": "pa$$word",
- "email": "user@example.com",
- "displayName": "string",
- "channel": {
- "name": "framasoft_videos",
- "displayName": "string"
}, - "signupClient": "peertube-app"
}{- "state": {
- "id": 1,
- "label": "string"
}
}Signup has to be enabled and require approval on the instance
| email required | string <email> email of the user, used for login or service communications |
| password required | string <password> (password) [ 6 .. 50 ] characters |
| registrationReason required | string reason for the user to register on the instance |
| username required | string [ 1 .. 50 ] characters /^[a-z0-9._]+$/ immutable name of the user, used to find or mention its actor |
object channel base information used to create the first channel of the user | |
| displayName | string [ 1 .. 120 ] characters editable name of the user, displayed in its representations |
| signupClient | string Value: "peertube-app" PeerTube >= 9.0 Client used to sign up. If set, links of the verification and registration accepted emails make the web client propose to open this client |
{- "username": "chocobozzz",
- "password": "pa$$word",
- "email": "user@example.com",
- "displayName": "string",
- "channel": {
- "name": "framasoft_videos",
- "displayName": "string"
}, - "signupClient": "peertube-app",
- "registrationReason": "string"
}{- "state": {
- "id": 1,
- "label": "string"
}
}| registrationId required | integer (id) >= 1 Example: 42 Registration ID |
| moderationResponse required | string Moderation response to send to the user |
| preventEmailDelivery | boolean Set it to true if you don't want PeerTube to send an email to the user |
{- "moderationResponse": "string",
- "preventEmailDelivery": true
}| registrationId required | integer (id) >= 1 Example: 42 Registration ID |
| moderationResponse required | string Moderation response to send to the user |
| preventEmailDelivery | boolean Set it to true if you don't want PeerTube to send an email to the user |
{- "moderationResponse": "string",
- "preventEmailDelivery": true
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| search | string |
| sort | string Enum: "-createdAt" "createdAt" "state" "-state" |
| start | integer >= 0 Offset used to paginate results |
| stateOneOf | Array of integers (UserRegistrationState) Items Enum: 1 2 3 |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "state": {
- "id": 1,
- "label": "string"
}, - "registrationReason": "string",
- "moderationResponse": "string",
- "username": "string",
- "email": "user@example.com",
- "emailVerified": true,
- "accountDisplayName": "string",
- "channelHandle": "string",
- "channelDisplayName": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "user": {
- "id": 42
}
}
]
}Sessions deal with access tokens over time. Only one session token can currently be used at a time.
API="https://peertube2.cpy.re/api/v1" ## AUTH curl -s "$API/oauth-clients/local"
{- "client_id": "v1ikx5hnfop4mdpnci8nsqh93c45rldf",
- "client_secret": "AjWiOapPltI6EnsWQwlFarRtLh4u8tDt"
}With your client id and secret, you can retrieve an access and refresh tokens.
| x-peertube-otp | string If the user enabled two factor authentication, you need to provide the OTP code in this header |
| client_id required | string = 32 characters /^[a-z0-9]$/ |
| client_secret required | string = 32 characters /^[a-zA-Z0-9]$/ |
| grant_type required | string |
| username required | string [ 1 .. 50 ] characters /^[a-z0-9._]+$/ immutable name of the user, used to find or mention its actor |
| externalAuthToken | string If you want to authenticate using an external authentication token you got from an auth plugin (like |
| password | string <password> (password) [ 6 .. 50 ] characters |
## DEPENDENCIES: jq API="https://peertube2.cpy.re/api/v1" USERNAME="<your_username>" PASSWORD="<your_password>" ## AUTH client_id=$(curl -s "$API/oauth-clients/local" | jq -r ".client_id") client_secret=$(curl -s "$API/oauth-clients/local" | jq -r ".client_secret") curl -s "$API/users/token" \ --data client_id="$client_id" \ --data client_secret="$client_secret" \ --data grant_type=password \ --data username="$USERNAME" \ --data-urlencode password="$PASSWORD" \ | jq -r ".access_token"
{- "token_type": "Bearer",
- "access_token": "90286a0bdf0f7315d9d3fe8dabf9e1d2be9c97d0",
- "refresh_token": "2e0d675df9fc96d2e4ec8a3ebbbf45eca9137bb7",
- "expires_in": 14399,
- "refresh_token_expires_in": 1209600
}| id required | integer (id) >= 1 Example: 42 Entity id |
{- "total": 1,
- "data": [
- {
- "id": 0,
- "currentSession": true,
- "loginDevice": "string",
- "loginIP": "192.168.0.1",
- "loginDate": "2019-08-24T14:15:22Z",
- "lastActivityDevice": "string",
- "lastActivityIP": "192.168.0.1",
- "lastActivityDate": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}Accounts encompass remote accounts discovered across the federation, and correspond to the main Actor, along with video channels a user can create, which are also Actors. When a comment is posted, it is done with your Account's Actor.
| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
{- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
VideoAIUsageSet (integer) or Array of VideoAIUsageSet (integers) PeerTube >= 9.0 Only list videos with one of these AI usages, declared by video creators.
If not provided, the preference of the authenticated user ( | |
string or Array of strings PeerTube >= 6.2 Admins and moderators only filter on videos that contain one of these automatic tags | |
VideoCategorySet (integer) or Array of VideoCategorySet (integers) category id of the video (see /videos/categories) | |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| excludeAlreadyWatched | boolean Whether or not to exclude videos that are in the user's video history |
| hasHLSFiles | boolean PeerTube >= 4.0 Display only videos that have HLS files |
| hasWebVideoFiles | boolean PeerTube >= 6.0 Display only videos that have Web Video files |
| host | string Find elements owned by this host |
| include | integer Enum: 0 1 2 4 8 16 32 Only administrators and moderators can use this parameter Include additional videos in results (can be combined using bitwise or operator)
|
| includeScheduledLive | boolean whether or not include live that are scheduled for later |
| isLive | boolean whether or not the video is a live |
| isLocal | boolean PeerTube >= 4.0 Display only local or remote objects |
VideoLanguageSet (string) or Array of VideoLanguageSet (strings) language id of the video (see /videos/languages). Use | |
VideoLicenceSet (integer) or Array of VideoLicenceSet (integers) licence id of the video (see /videos/licences) | |
| nsfw | string Enum: "true" "false" whether to include nsfw videos, if any |
| nsfwFlagsExcluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsIncluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| privacyOneOf | integer (VideoPrivacySet) Enum: 1 2 3 4 5 PeerTube >= 4.0 Display only videos in this specific privacy/privacies |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| skipCount | string Default: "false" Enum: "true" "false" if you don't need the |
| sort | string Enum: "name" "-duration" "-createdAt" "-publishedAt" "-views" "-likes" "-comments" "-trending" "-hot" "-best" Sort videos by criteria (prefixing with
|
| start | integer >= 0 Offset used to paginate results |
integer or Array of integers PeerTube >= 8.2 Admins and moderators only filter on videos that have one of these states | |
string or Array of strings tag(s) of the video, where all should be present in the video | |
string or Array of strings tag(s) of the video |
fetch('https://peertube2.cpy.re/api/v1/accounts/{name}/videos') .then(function(response) { return response.json() }).then(function(data) { console.log(data) })
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
]
}| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| sort | string Value: "createdAt" Sort followers by criteria |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "follower": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "following": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "score": 0,
- "state": "pending",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}
]
}| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
string or Array of strings PeerTube >= 8.0 Filter on playlists that are published on a channel with one of these names | |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| includeCollaborations | boolean PeerTube >= 8.0 Include objects from collaborated channels |
| playlistType | integer (VideoPlaylistTypeSet) Enum: 1 2 The video playlist type (Regular = |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "displayName": "string",
- "isLocal": true,
- "videoLength": 0,
- "thumbnailPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "privacy": {
- "id": 1,
- "label": "string"
}, - "type": {
- "id": 1,
- "label": "string"
}, - "ownerAccount": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannelPosition": 1
}
]
}| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| includeCollaborations | boolean PeerTube >= 8.0 Include objects from collaborated channels |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
| statsDays | integer Default: 30 Enum: 30 90 365 0 number of days of view statistics to include in |
| withStats | boolean include view statistics time series and total views (only if authenticated as the account user) |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}
]
}| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| includeCollaborations | boolean PeerTube >= 8.0 Include objects from collaborated channels |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "state": {
- "id": 2,
- "label": "PROCESSING"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "lastSyncAt": "2019-08-24T14:15:22Z",
- "channel": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}, - "videoPrivacy": 0
}
]
}| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| rating | string Enum: "like" "dislike" Optionally filter which ratings to retrieve |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
[- {
- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}, - "rating": "like"
}
]Using some features of PeerTube require authentication, for which User provide different levels of permission as well as associated user information. Each user has a corresponding local Account for federation.
If the smtp server is configured, you can leave the password empty and an email will be sent asking the user to set it first.
| email required | string <email> The user email |
| password required | string <password> (password) [ 6 .. 50 ] characters |
| role required | integer (UserRole) Enum: 0 1 2 The user role (Admin = |
| username required | string (username) [ 1 .. 50 ] characters /^[a-z0-9._]+$/ immutable name of the user, used to find or mention its actor |
| adminFlags | integer (UserAdminFlags) Enum: 0 1 Admin flags for the user (None = |
| channelName | string (usernameChannel) [ 1 .. 50 ] characters /^[a-zA-Z0-9\\-_.:]+$/ immutable name of the channel, used to interact with its actor |
| currentPassword | string <password> Required to create an administrator, see password confirmation |
| videoQuota | integer The user video quota in bytes |
| videoQuotaDaily | integer The user daily video quota in bytes |
{- "username": "chocobozzz",
- "password": "pa$$word",
- "email": "user@example.com",
- "videoQuota": -1,
- "videoQuotaDaily": -1,
- "channelName": "framasoft_videos",
- "role": 2,
- "adminFlags": 1,
- "currentPassword": "pa$$word"
}{- "user": {
- "id": 42,
- "account": {
- "id": 42
}
}
}| blocked | boolean Filter results down to (un)banned users |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| role | integer (UserRole) Enum: 0 1 2 Example: role=2 Filter results down to users with a specific role |
| search | string Plain text search that will match with user usernames or emails |
| sort | string Enum: "-id" "-username" "-createdAt" Sort users by criteria |
| start | integer >= 0 Offset used to paginate results |
[- {
- "id": 42,
- "username": "chocobozzz",
- "email": "user@example.com",
- "emailVerified": true,
- "nsfwPolicy": "display",
- "nsfwFlagsDisplayed": 0,
- "nsfwFlagsHidden": 0,
- "nsfwFlagsWarned": 0,
- "nsfwFlagsBlurred": 0,
- "aiUsagesHidden": [
- 1
], - "adminFlags": 1,
- "autoPlayNextVideo": true,
- "autoPlayNextVideoPlaylist": true,
- "autoPlayVideo": true,
- "p2pEnabled": true,
- "videosHistoryEnabled": true,
- "videoLanguages": [
- "string"
], - "videoCategories": [
- 0
], - "videoLive": "true",
- "language": "string",
- "videoQuota": -1,
- "videoQuotaDaily": -1,
- "role": {
- "id": 2,
- "label": "User"
}, - "theme": "string",
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "notificationSettings": {
- "abuseAsModerator": 0,
- "videoAutoBlacklistAsModerator": 0,
- "newUserRegistration": 0,
- "newVideoFromSubscription": 0,
- "blacklistOnMyVideo": 0,
- "myVideoPublished": 0,
- "myVideoImportFinished": 0,
- "commentMention": 0,
- "newCommentOnMyVideo": 0,
- "newFollow": 0,
- "newInstanceFollower": 0,
- "autoInstanceFollowing": 0,
- "abuseStateChange": 0,
- "abuseNewMessage": 0,
- "newPeerTubeVersion": 0,
- "newPluginVersion": 0,
- "myVideoStudioEditionFinished": 0,
- "myVideoTranscriptionGenerated": 0
}, - "videoChannels": [
- {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}
], - "blocked": true,
- "blockedReason": "string",
- "noInstanceConfigWarningModal": true,
- "noAccountSetupWarningModal": true,
- "noWelcomeModal": true,
- "createdAt": "string",
- "pluginAuth": "string",
- "lastLoginDate": "2019-08-24T14:15:22Z",
- "twoFactorEnabled": true,
- "newFeaturesInfoRead": 0
}
]| id required | integer (id) >= 1 Example: 42 Entity id |
| withStats | boolean include statistics about the user (only available as a moderator/admin) |
{- "id": 42,
- "username": "chocobozzz",
- "email": "user@example.com",
- "emailVerified": true,
- "nsfwPolicy": "display",
- "nsfwFlagsDisplayed": 0,
- "nsfwFlagsHidden": 0,
- "nsfwFlagsWarned": 0,
- "nsfwFlagsBlurred": 0,
- "aiUsagesHidden": [
- 1
], - "adminFlags": 1,
- "autoPlayNextVideo": true,
- "autoPlayNextVideoPlaylist": true,
- "autoPlayVideo": true,
- "p2pEnabled": true,
- "videosHistoryEnabled": true,
- "videoLanguages": [
- "string"
], - "videoCategories": [
- 0
], - "videoLive": "true",
- "language": "string",
- "videoQuota": -1,
- "videoQuotaDaily": -1,
- "role": {
- "id": 2,
- "label": "User"
}, - "theme": "string",
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "notificationSettings": {
- "abuseAsModerator": 0,
- "videoAutoBlacklistAsModerator": 0,
- "newUserRegistration": 0,
- "newVideoFromSubscription": 0,
- "blacklistOnMyVideo": 0,
- "myVideoPublished": 0,
- "myVideoImportFinished": 0,
- "commentMention": 0,
- "newCommentOnMyVideo": 0,
- "newFollow": 0,
- "newInstanceFollower": 0,
- "autoInstanceFollowing": 0,
- "abuseStateChange": 0,
- "abuseNewMessage": 0,
- "newPeerTubeVersion": 0,
- "newPluginVersion": 0,
- "myVideoStudioEditionFinished": 0,
- "myVideoTranscriptionGenerated": 0
}, - "videoChannels": [
- {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}
], - "blocked": true,
- "blockedReason": "string",
- "noInstanceConfigWarningModal": true,
- "noAccountSetupWarningModal": true,
- "noWelcomeModal": true,
- "createdAt": "string",
- "pluginAuth": "string",
- "lastLoginDate": "2019-08-24T14:15:22Z",
- "twoFactorEnabled": true,
- "newFeaturesInfoRead": 0
}| id required | integer (id) >= 1 Example: 42 Entity id |
| adminFlags | integer (UserAdminFlags) Enum: 0 1 Admin flags for the user (None = |
| currentPassword | string <password> Required to give the administrator role, or to change the password, email or auth plugin of an administrator, see password confirmation |
string <email> The updated email of the user | |
| emailVerified | boolean Set the email as verified |
| password | string <password> (password) [ 6 .. 50 ] characters |
| pluginAuth | string or null The auth plugin to use to authenticate the user |
| role | integer (UserRole) Enum: 0 1 2 The user role (Admin = |
| videoQuota | integer The updated video quota of the user in bytes |
| videoQuotaDaily | integer The updated daily video quota of the user in bytes |
{- "email": "user@example.com",
- "emailVerified": true,
- "videoQuota": 0,
- "videoQuotaDaily": 0,
- "pluginAuth": "peertube-plugin-auth-saml2",
- "role": 2,
- "adminFlags": 1,
- "password": "pa$$word",
- "currentPassword": "pa$$word"
}Prevent a user from logging in and interacting with the instance
| id required | integer (id) >= 1 Example: 42 Entity id |
| reason | string [ 0 .. 500 ] characters Optional reason for blocking the user |
{- "reason": "string"
}Following a user registration, the new user will receive an email asking to click a link containing a secret. This endpoint can also be used to verify a new email set in the user account.
| id required | integer (id) >= 1 Example: 42 Entity id |
| verificationString required | string <url> |
| isPendingEmail | boolean |
{- "verificationString": "string",
- "isPendingEmail": true
}Request two factor authentication for a user
| id required | integer (id) >= 1 Example: 42 Entity id |
| currentPassword | string Password of the currently authenticated user |
{- "currentPassword": "string"
}[- {
- "otpRequest": {
- "requestToken": "string",
- "secret": "string",
- "uri": "string"
}
}
]Confirm a two factor authentication request
| id required | integer (id) >= 1 Example: 42 Entity id |
| otpToken required | string OTP token generated by the app |
| requestToken required | string Token to identify the two factor request |
{- "requestToken": "string",
- "otpToken": "string"
}Disable two factor authentication of a user
| id required | integer (id) >= 1 Example: 42 Entity id |
| currentPassword | string Password of the currently authenticated user. Users of an id and pass auth plugin must use the password they log in with |
{- "currentPassword": "string"
}Request an archive of user data. An email is sent when the archive is ready.
| userId required | integer (id) >= 1 Example: 42 User id |
| withVideoFiles | boolean Whether to include video files in the archive |
{- "withVideoFiles": true
}{- "export": {
- "id": 0
}
}PeerTube >= 6.1
| userId required | integer (id) >= 1 Example: 42 User id |
{- "id": 0,
- "state": {
- "id": 1,
- "label": "string"
}, - "size": 0,
- "privateDownloadUrl": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "expiresOn": "2019-08-24T14:15:22Z"
}PeerTube >= 6.1 Uses a resumable protocol to initialize the import of the archive
| userId required | integer (id) >= 1 Example: 42 User id |
| X-Upload-Content-Length required | number Example: 2469036 Number of bytes that will be uploaded in subsequent requests. Set this value to the size of the file you are uploading. |
| X-Upload-Content-Type required | string <mimetype> Example: video/mp4 MIME type of the file that you are uploading. Depending on your instance settings, acceptable values might vary. |
| filename | string <filename> Archive filename including extension |
{- "filename": "user-export-6-2024-02-09T10_12_11.682Z"
}PeerTube >= 6.1 Uses a resumable protocol to continue, pause or resume the import of the archive
| userId required | integer (id) >= 1 Example: 42 User id |
| upload_id required | string Created session id to proceed with. If you didn't send chunks in the last hour, it is not valid anymore and you need to initialize a new upload. |
| Content-Length required | number Example: 262144 Size of the chunk that the request is sending. Remember that larger chunks are more efficient. PeerTube's web client uses chunks varying from 1048576 bytes (~1MB) and increases or reduces size depending on connection health. |
| Content-Range required | string Example: bytes 0-262143/2469036 Specifies the bytes in the file that the request is uploading. For example, a value of When the server config |
PeerTube >= 6.1 Uses a resumable protocol to cancel the resumable user import
| userId required | integer (id) >= 1 Example: 42 User id |
| upload_id required | string Created session id to proceed with. If you didn't send chunks in the last hour, it is not valid anymore and you need to initialize a new upload. |
| Content-Length required | number Example: 0 |
[- {
- "id": 42,
- "username": "chocobozzz",
- "email": "user@example.com",
- "emailVerified": true,
- "nsfwPolicy": "display",
- "nsfwFlagsDisplayed": 0,
- "nsfwFlagsHidden": 0,
- "nsfwFlagsWarned": 0,
- "nsfwFlagsBlurred": 0,
- "aiUsagesHidden": [
- 1
], - "adminFlags": 1,
- "autoPlayNextVideo": true,
- "autoPlayNextVideoPlaylist": true,
- "autoPlayVideo": true,
- "p2pEnabled": true,
- "videosHistoryEnabled": true,
- "videoLanguages": [
- "string"
], - "videoCategories": [
- 0
], - "videoLive": "true",
- "language": "string",
- "videoQuota": -1,
- "videoQuotaDaily": -1,
- "role": {
- "id": 2,
- "label": "User"
}, - "theme": "string",
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "notificationSettings": {
- "abuseAsModerator": 0,
- "videoAutoBlacklistAsModerator": 0,
- "newUserRegistration": 0,
- "newVideoFromSubscription": 0,
- "blacklistOnMyVideo": 0,
- "myVideoPublished": 0,
- "myVideoImportFinished": 0,
- "commentMention": 0,
- "newCommentOnMyVideo": 0,
- "newFollow": 0,
- "newInstanceFollower": 0,
- "autoInstanceFollowing": 0,
- "abuseStateChange": 0,
- "abuseNewMessage": 0,
- "newPeerTubeVersion": 0,
- "newPluginVersion": 0,
- "myVideoStudioEditionFinished": 0,
- "myVideoTranscriptionGenerated": 0
}, - "videoChannels": [
- {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}
], - "blocked": true,
- "blockedReason": "string",
- "noInstanceConfigWarningModal": true,
- "noAccountSetupWarningModal": true,
- "noWelcomeModal": true,
- "createdAt": "string",
- "pluginAuth": "string",
- "lastLoginDate": "2019-08-24T14:15:22Z",
- "twoFactorEnabled": true,
- "newFeaturesInfoRead": 0
}
]| aiUsagesHidden | Array of integers (VideoAIUsageSet) Items Enum: 1 2 3 4 PeerTube >= 9.0 Videos with these AI usages are hidden from video lists |
| autoPlayNextVideo | boolean new preference regarding playing following videos automatically |
| autoPlayNextVideoPlaylist | boolean new preference regarding playing following playlist videos automatically |
| autoPlayVideo | boolean new preference regarding playing videos automatically |
| currentPassword | string <password> (password) [ 6 .. 50 ] characters |
| displayName | string [ 3 .. 120 ] characters new name of the user in its representations |
string <email> new email used for login and service communications | |
| language | string default language for this user |
| noAccountSetupWarningModal | boolean |
| noInstanceConfigWarningModal | boolean |
| noWelcomeModal | boolean |
| nsfwFlagsBlurred | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsDisplayed | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsHidden | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsWarned | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwPolicy | string Enum: "true" "false" "both" new NSFW display policy |
| p2pEnabled | boolean whether to enable P2P in the player or not |
| password | string <password> (password) [ 6 .. 50 ] characters |
| theme | string |
| videoCategories | Array of integers or null list of categories to filter videos down to ( |
| videoLanguages | Array of strings list of languages to filter videos down to |
| videoLive | string Enum: "true" "false" "both" filter videos down to lives ( |
| videosHistoryEnabled | boolean whether to keep track of watched history or not |
{- "password": "pa$$word",
- "currentPassword": "pa$$word",
- "email": "user@example.com",
- "displayName": "string",
- "nsfwPolicy": "true",
- "nsfwFlagsDisplayed": 0,
- "nsfwFlagsHidden": 0,
- "nsfwFlagsWarned": 0,
- "nsfwFlagsBlurred": 0,
- "aiUsagesHidden": [
- 1
], - "p2pEnabled": true,
- "autoPlayVideo": true,
- "autoPlayNextVideo": true,
- "autoPlayNextVideoPlaylist": true,
- "videosHistoryEnabled": true,
- "videoLanguages": [
- "string"
], - "videoCategories": [
- 0
], - "videoLive": "true",
- "language": "string",
- "theme": "string",
- "noInstanceConfigWarningModal": true,
- "noAccountSetupWarningModal": true,
- "noWelcomeModal": true
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| includeCollaborations | boolean PeerTube >= 8.0 Include objects from collaborated channels |
| search | string Search in video names |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
| stateOneOf | Array of integers Items Enum: 1 2 3 4 5 6 Filter on import state |
| targetUrl | string Filter on import target URL |
| videoChannelSyncId | number Filter on imports created by a specific channel synchronization |
| videoId | integer Filter on import video ID |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "torrentfile": "string",
- "torrentName": "string",
- "state": {
- "id": 1,
- "label": "Pending"
}, - "error": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
}
]
}VideoAIUsageSet (integer) or Array of VideoAIUsageSet (integers) PeerTube >= 9.0 Only list videos with one of these AI usages, declared by video creators.
If not provided, the preference of the authenticated user ( | |
string or Array of strings PeerTube >= 6.2 Admins and moderators only filter on videos that contain one of these automatic tags | |
VideoCategorySet (integer) or Array of VideoCategorySet (integers) category id of the video (see /videos/categories) | |
string or Array of strings PeerTube >= 7.2 Filter on videos that are published by a channel with one of these names | |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| excludeAlreadyWatched | boolean Whether or not to exclude videos that are in the user's video history |
| hasHLSFiles | boolean PeerTube >= 4.0 Display only videos that have HLS files |
| hasWebVideoFiles | boolean PeerTube >= 6.0 Display only videos that have Web Video files |
| host | string Find elements owned by this host |
| include | integer Enum: 0 1 2 4 8 16 32 Only administrators and moderators can use this parameter Include additional videos in results (can be combined using bitwise or operator)
|
| includeCollaborations | boolean PeerTube >= 8.0 Include objects from collaborated channels |
| includeScheduledLive | boolean whether or not include live that are scheduled for later |
| isLive | boolean whether or not the video is a live |
| isLocal | boolean PeerTube >= 4.0 Display only local or remote objects |
VideoLanguageSet (string) or Array of VideoLanguageSet (strings) language id of the video (see /videos/languages). Use | |
VideoLicenceSet (integer) or Array of VideoLicenceSet (integers) licence id of the video (see /videos/licences) | |
| nsfw | string Enum: "true" "false" whether to include nsfw videos, if any |
| nsfwFlagsExcluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsIncluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| privacyOneOf | integer (VideoPrivacySet) Enum: 1 2 3 4 5 PeerTube >= 4.0 Display only videos in this specific privacy/privacies |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| skipCount | string Default: "false" Enum: "true" "false" if you don't need the |
| sort | string Enum: "name" "-duration" "-createdAt" "-publishedAt" "-views" "-likes" "-comments" "-trending" "-hot" "-best" Sort videos by criteria (prefixing with
|
| start | integer >= 0 Offset used to paginate results |
integer or Array of integers PeerTube >= 8.2 Admins and moderators only filter on videos that have one of these states | |
string or Array of strings tag(s) of the video, where all should be present in the video | |
string or Array of strings tag(s) of the video |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
]
}**PeerTube >= v8.0.0
| feature required | integer (NewFeatureInfoType) Value: 1 Represent a new feature that can be displayed to inform users. One of the following values:
|
{- "feature": 1
}| avatarfile | string <binary> The file to upload |
{- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| id | integer only list the report with this id |
| sort | string Enum: "-id" "-createdAt" "-state" Sort abuses by criteria |
| start | integer >= 0 Offset used to paginate results |
| state | integer (AbuseStateSet) Enum: 1 2 3 The abuse state (Pending = |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "reason": "The video is a spam",
- "predefinedReasons": [
- "spamOrMisleading"
], - "reporterAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "state": {
- "id": 1,
- "label": "string"
}, - "moderationComment": "Decided to ban the server since it spams us regularly",
- "video": {
- "id": 0,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "name": "string",
- "nsfw": true,
- "startAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "deleted": true,
- "blacklisted": true,
- "thumbnailPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "channel": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]
}Operations related to your subscriptions to video channels, their new videos, and how to keep up to date with their latest publications!
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Enum: "-id" "-createdAt" "-channelUpdatedAt" |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}
]
}VideoAIUsageSet (integer) or Array of VideoAIUsageSet (integers) PeerTube >= 9.0 Only list videos with one of these AI usages, declared by video creators.
If not provided, the preference of the authenticated user ( | |
string or Array of strings PeerTube >= 6.2 Admins and moderators only filter on videos that contain one of these automatic tags | |
VideoCategorySet (integer) or Array of VideoCategorySet (integers) category id of the video (see /videos/categories) | |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| excludeAlreadyWatched | boolean Whether or not to exclude videos that are in the user's video history |
| hasHLSFiles | boolean PeerTube >= 4.0 Display only videos that have HLS files |
| hasWebVideoFiles | boolean PeerTube >= 6.0 Display only videos that have Web Video files |
| host | string Find elements owned by this host |
| include | integer Enum: 0 1 2 4 8 16 32 Only administrators and moderators can use this parameter Include additional videos in results (can be combined using bitwise or operator)
|
| includeScheduledLive | boolean whether or not include live that are scheduled for later |
| isLive | boolean whether or not the video is a live |
| isLocal | boolean PeerTube >= 4.0 Display only local or remote objects |
VideoLanguageSet (string) or Array of VideoLanguageSet (strings) language id of the video (see /videos/languages). Use | |
VideoLicenceSet (integer) or Array of VideoLicenceSet (integers) licence id of the video (see /videos/licences) | |
| nsfw | string Enum: "true" "false" whether to include nsfw videos, if any |
| nsfwFlagsExcluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsIncluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| privacyOneOf | integer (VideoPrivacySet) Enum: 1 2 3 4 5 PeerTube >= 4.0 Display only videos in this specific privacy/privacies |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| skipCount | string Default: "false" Enum: "true" "false" if you don't need the |
| sort | string Enum: "name" "-duration" "-createdAt" "-publishedAt" "-views" "-likes" "-comments" "-trending" "-hot" "-best" Sort videos by criteria (prefixing with
|
| start | integer >= 0 Offset used to paginate results |
integer or Array of integers PeerTube >= 8.2 Admins and moderators only filter on videos that have one of these states | |
string or Array of strings tag(s) of the video, where all should be present in the video | |
string or Array of strings tag(s) of the video |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
]
}| subscriptionHandle required | string Example: my_username | my_username@example.com The subscription handle |
{- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}Notifications following new videos, follows or reports. They allow you to keep track of the interactions and overall important information that concerns you. You MAY set per-notification type delivery preference, to receive the info either by mail, by in-browser notification or both.
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
| typeOneOf | Array of integers (NotificationType) Items Enum: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 only list notifications of these types |
| unread | boolean only list unread notifications |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "type": 1,
- "read": true,
- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "name": "What is PeerTube?",
- "state": {
- "id": 1,
- "label": "string"
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
}, - "videoImport": {
- "id": 42,
- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "name": "What is PeerTube?",
- "state": {
- "id": 1,
- "label": "string"
}
}, - "torrentName": "string",
}, - "comment": {
- "id": 42,
- "threadId": 0,
- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "name": "What is PeerTube?",
- "state": {
- "id": 1,
- "label": "string"
}
}, - "account": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "heldForReview": true
}, - "videoAbuse": {
- "id": 42,
- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "name": "What is PeerTube?",
- "state": {
- "id": 1,
- "label": "string"
}
}
}, - "videoBlacklist": {
- "id": 42,
- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "name": "What is PeerTube?",
- "state": {
- "id": 1,
- "label": "string"
}
}
}, - "account": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "actorFollow": {
- "id": 42,
- "follower": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "state": "pending",
- "following": {
- "type": "account",
- "name": "string",
- "displayName": "string",
- "host": "example.com"
}
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| abuseAsModerator | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| abuseNewMessage | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| abuseStateChange | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| autoInstanceFollowing | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| blacklistOnMyVideo | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| commentMention | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| myVideoImportFinished | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| myVideoPublished | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| myVideoStudioEditionFinished | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| myVideoTranscriptionGenerated | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| newCommentOnMyVideo | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| newFollow | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| newInstanceFollower | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| newPeerTubeVersion | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| newPluginVersion | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| newUserRegistration | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| newVideoFromSubscription | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
| videoAutoBlacklistAsModerator | integer (NotificationSettingValue) Notification type. One of the following values, or a sum of multiple values:
|
{- "abuseAsModerator": 0,
- "videoAutoBlacklistAsModerator": 0,
- "newUserRegistration": 0,
- "newVideoFromSubscription": 0,
- "blacklistOnMyVideo": 0,
- "myVideoPublished": 0,
- "myVideoImportFinished": 0,
- "commentMention": 0,
- "newCommentOnMyVideo": 0,
- "newFollow": 0,
- "newInstanceFollower": 0,
- "autoInstanceFollowing": 0,
- "abuseStateChange": 0,
- "abuseNewMessage": 0,
- "newPeerTubeVersion": 0,
- "newPluginVersion": 0,
- "myVideoStudioEditionFinished": 0,
- "myVideoTranscriptionGenerated": 0
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
]
}| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
VideoAIUsageSet (integer) or Array of VideoAIUsageSet (integers) PeerTube >= 9.0 Only list videos with one of these AI usages, declared by video creators.
If not provided, the preference of the authenticated user ( | |
string or Array of strings PeerTube >= 6.2 Admins and moderators only filter on videos that contain one of these automatic tags | |
VideoCategorySet (integer) or Array of VideoCategorySet (integers) category id of the video (see /videos/categories) | |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| excludeAlreadyWatched | boolean Whether or not to exclude videos that are in the user's video history |
| hasHLSFiles | boolean PeerTube >= 4.0 Display only videos that have HLS files |
| hasWebVideoFiles | boolean PeerTube >= 6.0 Display only videos that have Web Video files |
| host | string Find elements owned by this host |
| include | integer Enum: 0 1 2 4 8 16 32 Only administrators and moderators can use this parameter Include additional videos in results (can be combined using bitwise or operator)
|
| includeScheduledLive | boolean whether or not include live that are scheduled for later |
| isLive | boolean whether or not the video is a live |
| isLocal | boolean PeerTube >= 4.0 Display only local or remote objects |
VideoLanguageSet (string) or Array of VideoLanguageSet (strings) language id of the video (see /videos/languages). Use | |
VideoLicenceSet (integer) or Array of VideoLicenceSet (integers) licence id of the video (see /videos/licences) | |
| nsfw | string Enum: "true" "false" whether to include nsfw videos, if any |
| nsfwFlagsExcluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsIncluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| privacyOneOf | integer (VideoPrivacySet) Enum: 1 2 3 4 5 PeerTube >= 4.0 Display only videos in this specific privacy/privacies |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| skipCount | string Default: "false" Enum: "true" "false" if you don't need the |
| sort | string Enum: "name" "-duration" "-createdAt" "-publishedAt" "-views" "-likes" "-comments" "-trending" "-hot" "-best" Sort videos by criteria (prefixing with
|
| start | integer >= 0 Offset used to paginate results |
integer or Array of integers PeerTube >= 8.2 Admins and moderators only filter on videos that have one of these states | |
string or Array of strings tag(s) of the video, where all should be present in the video | |
string or Array of strings tag(s) of the video |
fetch('https://peertube2.cpy.re/api/v1/accounts/{name}/videos') .then(function(response) { return response.json() }).then(function(data) { console.log(data) })
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
]
}Request special tokens that expire quickly to use them in some context (like accessing private static files)
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| x-peertube-video-password | string Required on password protected video |
{- "files": {
- "token": "string",
- "expires": "2019-08-24T14:15:22Z"
}
}Create a task to edit a video (cut, add intro/outro etc). By default the video is edited in place. Set saveAsNewVideo to keep it untouched and save the result in a new video.
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
required | Array of cut (object) or add-intro (object) or add-outro (object) or add-watermark (object) or remove-segments (object) (VideoStudioCreateTask) |
| saveAsNewVideo | boolean Default: false Keep the source video untouched: duplicate it, and edit the duplicate. The duplicate is created private, in the same channel as the source video, with the source video metadata. The size of the source video counts towards the user quota. |
{- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}Create a copy of a local video, in the same channel.
The copy of a blocked video (that only moderators can duplicate) is blocked for the same reason.
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| name | string [ 3 .. 120 ] characters Name of the copy. Defaults to the name of the source video followed by "(Copy)" |
{- "name": "string"
}{- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}VideoAIUsageSet (integer) or Array of VideoAIUsageSet (integers) PeerTube >= 9.0 Only list videos with one of these AI usages, declared by video creators.
If not provided, the preference of the authenticated user ( | |
string or Array of strings PeerTube >= 6.2 Admins and moderators only filter on videos that contain one of these automatic tags | |
VideoCategorySet (integer) or Array of VideoCategorySet (integers) category id of the video (see /videos/categories) | |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| excludeAlreadyWatched | boolean Whether or not to exclude videos that are in the user's video history |
| hasHLSFiles | boolean PeerTube >= 4.0 Display only videos that have HLS files |
| hasWebVideoFiles | boolean PeerTube >= 6.0 Display only videos that have Web Video files |
| host | string Find elements owned by this host |
| include | integer Enum: 0 1 2 4 8 16 32 Only administrators and moderators can use this parameter Include additional videos in results (can be combined using bitwise or operator)
|
| includeScheduledLive | boolean whether or not include live that are scheduled for later |
| isLive | boolean whether or not the video is a live |
| isLocal | boolean PeerTube >= 4.0 Display only local or remote objects |
VideoLanguageSet (string) or Array of VideoLanguageSet (strings) language id of the video (see /videos/languages). Use | |
VideoLicenceSet (integer) or Array of VideoLicenceSet (integers) licence id of the video (see /videos/licences) | |
| nsfw | string Enum: "true" "false" whether to include nsfw videos, if any |
| nsfwFlagsExcluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsIncluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| privacyOneOf | integer (VideoPrivacySet) Enum: 1 2 3 4 5 PeerTube >= 4.0 Display only videos in this specific privacy/privacies |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| skipCount | string Default: "false" Enum: "true" "false" if you don't need the |
| sort | string Enum: "name" "-duration" "-createdAt" "-publishedAt" "-views" "-likes" "-comments" "-trending" "-hot" "-best" Sort videos by criteria (prefixing with
|
| start | integer >= 0 Offset used to paginate results |
integer or Array of integers PeerTube >= 8.2 Admins and moderators only filter on videos that have one of these states | |
string or Array of strings tag(s) of the video, where all should be present in the video | |
string or Array of strings tag(s) of the video |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
]
}Return videos recommended next to a reference video (or general recommendations if no reference video is given).
PeerTube decides the recommendation algorithm: it currently lists videos sharing tags with the reference video
(excluding videos already watched by the authenticated user), then the latest videos.
All returned videos are restricted to the scope, which defaults to the recommendationScope of the reference video.
VideoAIUsageSet (integer) or Array of VideoAIUsageSet (integers) PeerTube >= 9.0 Only list videos with one of these AI usages, declared by video creators.
If not provided, the preference of the authenticated user ( | |
| count | integer [ 1 .. 30 ] Default: 10 Number of videos to return |
| excludeVideoIds | Array of integers (id) <= 50 items [ items >= 1 ] Example: excludeVideoIds=42 Videos that must not be recommended (the reference video is always excluded) |
| nsfw | string Enum: "true" "false" whether to include nsfw videos, if any |
| nsfwFlagsExcluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsIncluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| scope | integer (VideoRecommendationScopeSet) Enum: 1 2 3 4 Restrict recommended videos. Defaults to the |
id (integer) or UUIDv4 (string) or shortUUID (string) Reference video. Required if |
| x-peertube-video-password | string Required on password protected video |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
]
}{- "1": "Music",
- "2": "Films",
- "3": "Vehicles",
- "4": "Art",
- "5": "Sports",
- "6": "Travels",
- "7": "Gaming",
- "8": "People",
- "9": "Comedy",
- "10": "Entertainment",
- "11": "News & Politics",
- "12": "How To",
- "13": "Education",
- "14": "Activism",
- "15": "Science & Technology",
- "16": "Animals",
- "17": "Kids",
- "18": "Food"
}{- "1": "Attribution",
- "2": "Attribution - Share Alike",
- "3": "Attribution - No Derivatives",
- "4": "Attribution - Non Commercial",
- "5": "Attribution - Non Commercial - Share Alike",
- "6": "Attribution - Non Commercial - No Derivatives",
- "7": "Public Domain Dedication",
- "8": "Free of known copyright restrictions",
- "9": "All Rights Reserved"
}| scope | string Value: "subtitle" PeerTube >= 8.2 Filter languages by scope. Use |
{- "aa": "Afar",
- "ab": "Abkhazian",
- "af": "Afrikaans",
- "ak": "Akan",
- "am": "Amharic",
- "ar": "Arabic",
- "an": "Aragonese",
- "ase": "American Sign Language",
- "as": "Assamese",
- "asq": "Austrian Sign Language",
- "av": "Avaric",
- "avk": "Kotava",
- "ay": "Aymara",
- "az": "Azerbaijani",
- "ba": "Bashkir",
- "bm": "Bambara",
- "be": "Belarusian",
- "bn": "Bengali",
- "bfi": "British Sign Language",
- "bi": "Bislama",
- "bo": "Tibetan",
- "bs": "Bosnian",
- "br": "Breton",
- "bg": "Bulgarian",
- "bzs": "Brazilian Sign Language",
- "ca": "Catalan",
- "cs": "Czech",
- "ch": "Chamorro",
- "ce": "Chechen",
- "cv": "Chuvash",
- "kw": "Cornish",
- "co": "Corsican",
- "cr": "Cree",
- "cse": "Czech Sign Language",
- "csl": "Chinese Sign Language",
- "cy": "Welsh",
- "da": "Danish",
- "de": "German",
- "dv": "Dhivehi",
- "dsl": "Danish Sign Language",
- "dz": "Dzongkha",
- "el": "Greek",
- "en": "English",
- "eo": "Esperanto",
- "et": "Estonian",
- "eu": "Basque",
- "ee": "Ewe",
- "fo": "Faroese",
- "fa": "Persian",
- "fj": "Fijian",
- "fi": "Finnish",
- "fr": "French",
- "fy": "Western Frisian",
- "fse": "Finnish Sign Language",
- "fsl": "French Sign Language",
- "ff": "Fulah",
- "gcf": "Guadeloupean Creole French",
- "gd": "Scottish Gaelic",
- "ga": "Irish",
- "gl": "Galician",
- "gv": "Manx",
- "gn": "Guarani",
- "gsg": "German Sign Language",
- "gsw": "Swiss German",
- "gu": "Gujarati",
- "ht": "Haitian",
- "ha": "Hausa",
- "sh": "Serbo-Croatian",
- "he": "Hebrew",
- "hz": "Herero",
- "hi": "Hindi",
- "ho": "Hiri Motu",
- "hr": "Croatian",
- "hu": "Hungarian",
- "hy": "Armenian",
- "ig": "Igbo",
- "ii": "Sichuan Yi",
- "iu": "Inuktitut",
- "id": "Indonesian",
- "ik": "Inupiaq",
- "is": "Icelandic",
- "it": "Italian",
- "jv": "Javanese",
- "jbo": "Lojban",
- "ja": "Japanese",
- "jsl": "Japanese Sign Language",
- "kab": "Kabyle",
- "kl": "Kalaallisut",
- "kn": "Kannada",
- "ks": "Kashmiri",
- "ka": "Georgian",
- "kr": "Kanuri",
- "kk": "Kazakh",
- "km": "Khmer",
- "ki": "Kikuyu",
- "rw": "Kinyarwanda",
- "ky": "Kirghiz",
- "kv": "Komi",
- "kg": "Kongo",
- "ko": "Korean",
- "kj": "Kuanyama",
- "ku": "Kurdish",
- "lo": "Lao",
- "la": "Latin",
- "lv": "Latvian",
- "li": "Limburgan",
- "ln": "Lingala",
- "lt": "Lithuanian",
- "lb": "Luxembourgish",
- "lu": "Luba-Katanga",
- "lg": "Ganda",
- "mh": "Marshallese",
- "ml": "Malayalam",
- "mr": "Marathi",
- "mk": "Macedonian",
- "mg": "Malagasy",
- "mt": "Maltese",
- "mn": "Mongolian",
- "mi": "Maori",
- "ms": "Malay (macrolanguage)",
- "my": "Burmese",
- "na": "Nauru",
- "nv": "Navajo",
- "nr": "South Ndebele",
- "nd": "North Ndebele",
- "ng": "Ndonga",
- "ne": "Nepali (macrolanguage)",
- "nl": "Dutch",
- "nn": "Norwegian Nynorsk",
- "nb": "Norwegian Bokmål",
- "no": "Norwegian",
- "ny": "Nyanja",
- "oc": "Occitan",
- "oj": "Ojibwa",
- "or": "Oriya (macrolanguage)",
- "om": "Oromo",
- "os": "Ossetian",
- "pa": "Panjabi",
- "pks": "Pakistan Sign Language",
- "pl": "Polish",
- "pt": "Portuguese",
- "ps": "Pushto",
- "qu": "Quechua",
- "rm": "Romansh",
- "ro": "Romanian",
- "rsl": "Russian Sign Language",
- "rn": "Rundi",
- "ru": "Russian",
- "sg": "Sango",
- "sdl": "Saudi Arabian Sign Language",
- "sfs": "South African Sign Language",
- "si": "Sinhala",
- "sk": "Slovak",
- "sl": "Slovenian",
- "se": "Northern Sami",
- "sm": "Samoan",
- "sn": "Shona",
- "sd": "Sindhi",
- "so": "Somali",
- "st": "Southern Sotho",
- "es": "Spanish (Spain)",
- "sq": "Albanian",
- "sc": "Sardinian",
- "sr": "Serbian",
- "ss": "Swati",
- "su": "Sundanese",
- "sw": "Swahili (macrolanguage)",
- "sv": "Swedish",
- "swl": "Swedish Sign Language",
- "ty": "Tahitian",
- "ta": "Tamil",
- "tt": "Tatar",
- "te": "Telugu",
- "tg": "Tajik",
- "tl": "Tagalog",
- "th": "Thai",
- "ti": "Tigrinya",
- "tlh": "Klingon",
- "to": "Tonga (Tonga Islands)",
- "tn": "Tswana",
- "ts": "Tsonga",
- "tk": "Turkmen",
- "tr": "Turkish",
- "tw": "Twi",
- "ug": "Uighur",
- "uk": "Ukrainian",
- "ur": "Urdu",
- "uz": "Uzbek",
- "ve": "Venda",
- "vi": "Vietnamese",
- "wa": "Walloon",
- "wo": "Wolof",
- "xh": "Xhosa",
- "yi": "Yiddish",
- "yo": "Yoruba",
- "za": "Zhuang",
- "zh": "Chinese",
- "zu": "Zulu",
- "zxx": "No linguistic content",
- "tok": "Toki Pona",
- "pt-BR": "Portuguese (Brazilian)",
- "pt-PT": "Portuguese (Portugal)",
- "es-419": "Spanish (Latin America)",
- "zh-Hans": "Simplified Chinese",
- "zh-Hant": "Traditional Chinese",
- "ca-valencia": "Valencian",
- "rcf": "Réunion Creole French",
- "gcr": "Guianese Creole French"
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| aiUsage | integer (VideoAIUsageSet) Enum: 1 2 3 4 PeerTube >= 9.0 Use of AI in the video, declared by the video creator:
|
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| channelId | integer New channel of the video. The channel must be owned by the same account as the previous one. Use the "change ownership" endpoints to give a video to a channel owned by another account on the local PeerTube instance. |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| commercialContent | integer (VideoCommercialContentSet) Enum: 1 2 3 PeerTube >= 9.0 Commercial content in the video, declared by the video creator:
|
| description | string Video description |
| downloadEnabled | boolean Enable or disable downloading for this video |
| language | string (VideoLanguageSet) language id of the video (see /videos/languages) |
| licence | integer (VideoLicenceSet) licence id of the video (see /videos/licences) |
| name | string [ 3 .. 120 ] characters Video name |
| nsfw | boolean Whether or not this video contains sensitive content |
| nsfwFlags | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwSummary | any More information about the sensitive content of the video |
| originallyPublishedAt | string or null <date-time> Date when the content was originally published |
| previewfile | string <binary> Deprecated Deprecated in PeerTube v8.1, use thumbnailfile instead |
| privacy | |
| recommendationScope | integer (VideoRecommendationScopeSet) Enum: 1 2 3 4 Videos that can be recommended next to a video:
This is a preference of the video owner: applications displaying recommendations may not apply it |
object (VideoScheduledUpdate) | |
| support | string A text tell the audience how to support the video creator |
| tags | Array of strings [ 1 .. 5 ] items [ items [ 2 .. 30 ] characters ] Video tags (maximum 5 tags each between 2 and 30 characters) |
| thumbnailfile | string <binary> Video thumbnail file |
| videoPasswords | Array of strings (AddVideoPasswords) unique [ items >= 2 characters ] |
| waitTranscoding | string Whether or not we wait transcoding before publish the video |
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| x-peertube-video-password | string Required on password protected video |
{- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 42,
- "name": "chocobozzz",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "description": "string"
}, - "channel": {
- "id": 42,
- "name": "chocobozzz",
- "displayName": "Videos of Framasoft",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
], - "viewers": 0,
- "description": "\"**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network,\nbased on free/libre software!*\\r\\n\\r\\n**Animation Produced by:** [LILA](https://libreart.info) - [ZeMarmot Team](https://film.zemarmot.net)\\r\\n\n*Directed by* Aryeom\\r\\n*Assistant* Jehan\\r\\n**Licence**: [CC-By-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)\\r\\n\\r\\n\n**Sponsored by** [Framasoft](https://framasoft.org)\\r\\n\\r\\n**Music**: [Red Step Forward](http://play.dogmazic.net/song.php?song_id=52491) - CC-By Ken Bushima\\r\\n\\r\\n\n**Movie Clip**: [Caminades 3: Llamigos](http://www.caminandes.com/) CC-By Blender Institute\\r\\n\\r\\n**Video sources**: https://gitlab.gnome.org/Jehan/what-is-peertube/\"\n",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "tags": [
- "flowers",
- "gardening"
], - "commentsPolicy": {
- "id": 1,
- "label": "string"
}, - "downloadEnabled": true,
- "inputFileUpdatedAt": "2019-08-24T14:15:22Z",
- "trackerUrls": [
- "wss://peertube2.cpy.re/tracker/socket"
], - "files": [
- {
- "id": 42,
- "resolution": {
- "id": 240,
- "label": "240p"
}, - "size": 0,
- "torrentUrl": "string",
- "torrentDownloadUrl": "string",
- "fileUrl": "string",
- "playlistUrl": "string",
- "fileDownloadUrl": "string",
- "fps": 0,
- "width": 0,
- "height": 0,
- "metadataUrl": "string",
- "hasAudio": true,
- "hasVideo": true,
- "storage": 0
}
], - "streamingPlaylists": [
- {
- "id": 42,
- "type": 1,
- "playlistUrl": "string",
- "segmentsSha256Url": "string",
- "files": [
- {
- "id": 42,
- "resolution": {
- "id": 240,
- "label": "240p"
}, - "size": 0,
- "torrentUrl": "string",
- "torrentDownloadUrl": "string",
- "fileUrl": "string",
- "playlistUrl": "string",
- "fileDownloadUrl": "string",
- "fps": 0,
- "width": 0,
- "height": 0,
- "metadataUrl": "string",
- "hasAudio": true,
- "hasVideo": true,
- "storage": 0
}
], - "redundancies": [
- {
- "baseUrl": "string"
}
]
}
]
}Call this endpoint regularly (every 5-10 seconds for example) to notify the server the user is watching the video. After a while, PeerTube will increase video's viewers counter. If the user is authenticated, PeerTube will also store the current player time.
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| currentTime required | integer <seconds> timestamp within the video, in seconds |
| client | string Client software used to watch the video. For example "Firefox", "PeerTube Approval Android", etc. |
| device | any Enum: "console" "embedded" "mobile" "smarttv" "tablet" "wearable" "xr" "desktop" Device used to watch the video. For example "desktop", "mobile", "smarttv", etc. |
| operatingSystem | string Operating system used to watch the video. For example "Windows", "Ubuntu", etc. |
| sessionId | string Optional param to represent the current viewer session. Used by the backend to properly count one view per session per video. PeerTube admin can configure the server to not trust this |
| viewEvent | string Value: "seek" Event since last viewing call:
|
{- "currentTime": 5,
- "viewEvent": "seek",
- "sessionId": "string",
- "client": "string",
- "device": "console",
- "operatingSystem": "string"
}Uses a single request to upload a video.
| channelId required | integer >= 1 Channel id that will contain this video |
| name required | string [ 3 .. 120 ] characters Video name |
| videofile required | string <binary> Video file |
| aiUsage | integer (VideoAIUsageSet) Enum: 1 2 3 4 PeerTube >= 9.0 Use of AI in the video, declared by the video creator:
|
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| commercialContent | integer (VideoCommercialContentSet) Enum: 1 2 3 PeerTube >= 9.0 Commercial content in the video, declared by the video creator:
|
| description | string Video description |
| downloadEnabled | boolean Enable or disable downloading for this video |
| generateTranscription | boolean PeerTube >= 6.2 If enabled by the admin, automatically generate a subtitle of the video |
| language | string (VideoLanguageSet) language id of the video (see /videos/languages) |
| licence | integer (VideoLicenceSet) licence id of the video (see /videos/licences) |
| nsfw | boolean Whether or not this video contains sensitive content |
| nsfwFlags | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwSummary | any More information about the sensitive content of the video |
| originallyPublishedAt | string <date-time> Date when the content was originally published |
| previewfile | string <binary> Deprecated Deprecated in PeerTube v8.1, use thumbnailfile instead |
| privacy | |
| recommendationScope | integer (VideoRecommendationScopeSet) Enum: 1 2 3 4 Videos that can be recommended next to a video:
This is a preference of the video owner: applications displaying recommendations may not apply it |
object (VideoScheduledUpdate) | |
| support | string A text tell the audience how to support the video creator |
| tags | Array of strings [ 1 .. 5 ] items unique [ items [ 2 .. 30 ] characters ] Video tags (maximum 5 tags each between 2 and 30 characters) |
| thumbnailfile | string <binary> Video thumbnail file |
| videoPasswords | Array of strings (AddVideoPasswords) unique [ items >= 2 characters ] |
| waitTranscoding | boolean Whether or not we wait transcoding before publish the video |
## DEPENDENCIES: jq USERNAME="<your_username>" PASSWORD="<your_password>" FILE_PATH="<your_file_path>" CHANNEL_ID="<your_channel_id>" NAME="<video_name>" API="https://peertube2.cpy.re/api/v1" ## AUTH client_id=$(curl -s "$API/oauth-clients/local" | jq -r ".client_id") client_secret=$(curl -s "$API/oauth-clients/local" | jq -r ".client_secret") token=$(curl -s "$API/users/token" \ --data client_id="$client_id" \ --data client_secret="$client_secret" \ --data grant_type=password \ --data username="$USERNAME" \ --data password="$PASSWORD" \ | jq -r ".access_token") ## VIDEO UPLOAD curl -s "$API/videos/upload" \ -H "Authorization: Bearer $token" \ --max-time 600 \ --form videofile=@"$FILE_PATH" \ --form channelId=$CHANNEL_ID \ --form name="$NAME"
{- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}Uses a resumable protocol to initialize the upload of a video
| X-Upload-Content-Length required | number Example: 2469036 Number of bytes that will be uploaded in subsequent requests. Set this value to the size of the file you are uploading. |
| X-Upload-Content-Type required | string <mimetype> Example: video/mp4 MIME type of the file that you are uploading. Depending on your instance settings, acceptable values might vary. |
| channelId required | integer >= 1 Channel id that will contain this video |
| filename required | string <filename> Video filename including extension |
| name required | string [ 3 .. 120 ] characters Video name |
| aiUsage | integer (VideoAIUsageSet) Enum: 1 2 3 4 PeerTube >= 9.0 Use of AI in the video, declared by the video creator:
|
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| commercialContent | integer (VideoCommercialContentSet) Enum: 1 2 3 PeerTube >= 9.0 Commercial content in the video, declared by the video creator:
|
| description | string Video description |
| downloadEnabled | boolean Enable or disable downloading for this video |
| generateTranscription | boolean PeerTube >= 6.2 If enabled by the admin, automatically generate a subtitle of the video |
| language | string (VideoLanguageSet) language id of the video (see /videos/languages) |
| licence | integer (VideoLicenceSet) licence id of the video (see /videos/licences) |
| nsfw | boolean Whether or not this video contains sensitive content |
| nsfwFlags | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwSummary | any More information about the sensitive content of the video |
| originallyPublishedAt | string <date-time> Date when the content was originally published |
| previewfile | string <binary> Deprecated Deprecated in PeerTube v8.1, use thumbnailfile instead |
| privacy | |
| recommendationScope | integer (VideoRecommendationScopeSet) Enum: 1 2 3 4 Videos that can be recommended next to a video:
This is a preference of the video owner: applications displaying recommendations may not apply it |
object (VideoScheduledUpdate) | |
| support | string A text tell the audience how to support the video creator |
| tags | Array of strings [ 1 .. 5 ] items unique [ items [ 2 .. 30 ] characters ] Video tags (maximum 5 tags each between 2 and 30 characters) |
| thumbnailfile | string <binary> Video thumbnail file |
| videoPasswords | Array of strings (AddVideoPasswords) unique [ items >= 2 characters ] |
| waitTranscoding | boolean Whether or not we wait transcoding before publish the video |
{- "name": "What is PeerTube?",
- "channelId": 3,
- "privacy": 1,
- "category": 15,
- "licence": 2,
- "language": "en",
- "description": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\n",
- "waitTranscoding": true,
- "generateTranscription": true,
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "nsfw": true,
- "nsfwSummary": null,
- "nsfwFlags": 0,
- "tags": [
- "framasoft",
- "peertube"
], - "commentsPolicy": 1,
- "recommendationScope": 1,
- "aiUsage": 1,
- "commercialContent": 1,
- "downloadEnabled": true,
- "originallyPublishedAt": "2019-08-24T14:15:22Z",
- "scheduleUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "thumbnailfile": "string",
- "previewfile": "string",
- "videoPasswords": [
- "string"
], - "filename": "what_is_peertube.mp4"
}Uses a resumable protocol to continue, pause or resume the upload of a video
| upload_id required | string Created session id to proceed with. If you didn't send chunks in the last hour, it is not valid anymore and you need to initialize a new upload. |
| Content-Length required | number Example: 262144 Size of the chunk that the request is sending. Remember that larger chunks are more efficient. PeerTube's web client uses chunks varying from 1048576 bytes (~1MB) and increases or reduces size depending on connection health. |
| Content-Range required | string Example: bytes 0-262143/2469036 Specifies the bytes in the file that the request is uploading. For example, a value of When the server config |
{- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}Uses a resumable protocol to cancel the upload of a video
| upload_id required | string Created session id to proceed with. If you didn't send chunks in the last hour, it is not valid anymore and you need to initialize a new upload. |
| Content-Length required | number Example: 0 |
| channelId required | integer Channel id that will contain this live video |
| name required | string [ 3 .. 120 ] characters Live video/replay name |
| aiUsage | integer (VideoAIUsageSet) Enum: 1 2 3 4 PeerTube >= 9.0 Use of AI in the video, declared by the video creator:
|
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| commercialContent | integer (VideoCommercialContentSet) Enum: 1 2 3 PeerTube >= 9.0 Commercial content in the video, declared by the video creator:
|
| description | string Live video/replay description |
| downloadEnabled | boolean Enable or disable downloading for the replay of this live video |
| language | string (VideoLanguageSet) language id of the video (see /videos/languages) |
| latencyMode | integer Enum: 1 2 3 User can select live latency mode if enabled by the instance |
| licence | integer (VideoLicenceSet) licence id of the video (see /videos/licences) |
| nsfw | boolean Whether or not this live video/replay contains sensitive content |
| nsfwFlags | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwSummary | any More information about the sensitive content of the video |
| permanentLive | boolean User can stream multiple times in a permanent live |
| previewfile | string <binary> Deprecated Deprecated in PeerTube v8.1, use thumbnailfile instead |
| privacy | |
| recommendationScope | integer (VideoRecommendationScopeSet) Enum: 1 2 3 4 Videos that can be recommended next to a video:
This is a preference of the video owner: applications displaying recommendations may not apply it |
object (LiveVideoReplaySettings) | |
| saveReplay | boolean |
Array of objects (LiveSchedule) | |
| support | string A text tell the audience how to support the creator |
| tags | Array of strings [ 1 .. 5 ] items [ items [ 2 .. 30 ] characters ] Live video/replay tags (maximum 5 tags each between 2 and 30 characters) |
| thumbnailfile | string <binary> Live video/replay thumbnail file |
{- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
{- "rtmpUrl": "string",
- "rtmpsUrl": "string",
- "streamKey": "string",
- "saveReplay": true,
- "replaySettings": {
- "privacy": 1
}, - "permanentLive": true,
- "latencyMode": 1,
- "schedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
]
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| latencyMode | integer Enum: 1 2 3 User can select live latency mode if enabled by the instance |
| permanentLive | boolean User can stream multiple times in a permanent live |
object (LiveVideoReplaySettings) | |
| saveReplay | boolean |
Array of objects (LiveSchedule) |
{- "saveReplay": true,
- "replaySettings": {
- "privacy": 1
}, - "permanentLive": true,
- "latencyMode": 1,
- "schedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
]
}Get metadata and download link of original video file
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
{- "inputFilename": "string",
- "fileDownloadUrl": "string",
- "resolution": {
- "id": 240,
- "label": "240p"
}, - "size": 0,
- "fps": 0,
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z"
}PeerTube >= 6.0 Uses a resumable protocol to initialize the replacement of a video
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| X-Upload-Content-Length required | number Example: 2469036 Number of bytes that will be uploaded in subsequent requests. Set this value to the size of the file you are uploading. |
| X-Upload-Content-Type required | string <mimetype> Example: video/mp4 MIME type of the file that you are uploading. Depending on your instance settings, acceptable values might vary. |
| filename | string <filename> Video filename including extension |
{- "filename": "what_is_peertube.mp4"
}PeerTube >= 6.0 Uses a resumable protocol to continue, pause or resume the replacement of a video
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| upload_id required | string Created session id to proceed with. If you didn't send chunks in the last hour, it is not valid anymore and you need to initialize a new upload. |
| Content-Length required | number Example: 262144 Size of the chunk that the request is sending. Remember that larger chunks are more efficient. PeerTube's web client uses chunks varying from 1048576 bytes (~1MB) and increases or reduces size depending on connection health. |
| Content-Range required | string Example: bytes 0-262143/2469036 Specifies the bytes in the file that the request is uploading. For example, a value of When the server config |
PeerTube >= 6.0 Uses a resumable protocol to cancel the replacement of a video
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| upload_id required | string Created session id to proceed with. If you didn't send chunks in the last hour, it is not valid anymore and you need to initialize a new upload. |
| Content-Length required | number Example: 0 |
PeerTube >= 6.0
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
{- "storyboards": [
- {
- "storyboardPath": "string",
- "fileUrl": "string",
- "totalHeight": 0,
- "totalWidth": 0,
- "spriteHeight": 0,
- "spriteWidth": 0,
- "spriteDuration": 0
}
]
}| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
VideoAIUsageSet (integer) or Array of VideoAIUsageSet (integers) PeerTube >= 9.0 Only list videos with one of these AI usages, declared by video creators.
If not provided, the preference of the authenticated user ( | |
string or Array of strings PeerTube >= 6.2 Admins and moderators only filter on videos that contain one of these automatic tags | |
VideoCategorySet (integer) or Array of VideoCategorySet (integers) category id of the video (see /videos/categories) | |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| excludeAlreadyWatched | boolean Whether or not to exclude videos that are in the user's video history |
| hasHLSFiles | boolean PeerTube >= 4.0 Display only videos that have HLS files |
| hasWebVideoFiles | boolean PeerTube >= 6.0 Display only videos that have Web Video files |
| host | string Find elements owned by this host |
| include | integer Enum: 0 1 2 4 8 16 32 Only administrators and moderators can use this parameter Include additional videos in results (can be combined using bitwise or operator)
|
| includeScheduledLive | boolean whether or not include live that are scheduled for later |
| isLive | boolean whether or not the video is a live |
| isLocal | boolean PeerTube >= 4.0 Display only local or remote objects |
VideoLanguageSet (string) or Array of VideoLanguageSet (strings) language id of the video (see /videos/languages). Use | |
VideoLicenceSet (integer) or Array of VideoLicenceSet (integers) licence id of the video (see /videos/licences) | |
| nsfw | string Enum: "true" "false" whether to include nsfw videos, if any |
| nsfwFlagsExcluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsIncluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| privacyOneOf | integer (VideoPrivacySet) Enum: 1 2 3 4 5 PeerTube >= 4.0 Display only videos in this specific privacy/privacies |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| skipCount | string Default: "false" Enum: "true" "false" if you don't need the |
| sort | string Enum: "name" "-duration" "-createdAt" "-publishedAt" "-views" "-likes" "-comments" "-trending" "-hot" "-best" Sort videos by criteria (prefixing with
|
| start | integer >= 0 Offset used to paginate results |
integer or Array of integers PeerTube >= 8.2 Admins and moderators only filter on videos that have one of these states | |
string or Array of strings tag(s) of the video, where all should be present in the video | |
string or Array of strings tag(s) of the video |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
]
}VideoAIUsageSet (integer) or Array of VideoAIUsageSet (integers) PeerTube >= 9.0 Only list videos with one of these AI usages, declared by video creators.
If not provided, the preference of the authenticated user ( | |
string or Array of strings PeerTube >= 6.2 Admins and moderators only filter on videos that contain one of these automatic tags | |
VideoCategorySet (integer) or Array of VideoCategorySet (integers) category id of the video (see /videos/categories) | |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| durationMax | integer Get videos that have this maximum duration |
| durationMin | integer Get videos that have this minimum duration |
| endDate | string <date-time> Get videos that are published before this date |
| excludeAlreadyWatched | boolean Whether or not to exclude videos that are in the user's video history |
| hasHLSFiles | boolean PeerTube >= 4.0 Display only videos that have HLS files |
| hasWebVideoFiles | boolean PeerTube >= 6.0 Display only videos that have Web Video files |
| host | string Find elements owned by this host |
| include | integer Enum: 0 1 2 4 8 16 32 Only administrators and moderators can use this parameter Include additional videos in results (can be combined using bitwise or operator)
|
| includeScheduledLive | boolean whether or not include live that are scheduled for later |
| isLive | boolean whether or not the video is a live |
| isLocal | boolean PeerTube >= 4.0 Display only local or remote objects |
VideoLanguageSet (string) or Array of VideoLanguageSet (strings) language id of the video (see /videos/languages). Use | |
VideoLicenceSet (integer) or Array of VideoLicenceSet (integers) licence id of the video (see /videos/licences) | |
| nsfw | string Enum: "true" "false" whether to include nsfw videos, if any |
| nsfwFlagsExcluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsIncluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| originallyPublishedEndDate | string <date-time> Get videos that are originally published before this date |
| originallyPublishedStartDate | string <date-time> Get videos that are originally published after this date |
| privacyOneOf | integer (VideoPrivacySet) Enum: 1 2 3 4 5 PeerTube >= 4.0 Display only videos in this specific privacy/privacies |
| search required | string String to search. If the user can make a remote URI search, and the string is an URI then the PeerTube instance will fetch the remote object and add it to its database. Then, you can use the REST API to fetch the complete video information and interact with it. |
| searchTarget | string Enum: "local" "search-index" If the administrator enabled search index support, you can override the default search target. Warning: If you choose to make an index search, PeerTube will get results from a third party service. It means the instance may not yet know the objects you fetched. If you want to load video/channel information:
|
| skipCount | string Default: "false" Enum: "true" "false" if you don't need the |
| sort | string Enum: "name" "-duration" "-createdAt" "-publishedAt" "-views" "-likes" "-comments" "-trending" "-hot" "-best" Sort videos by criteria (prefixing with
|
| start | integer >= 0 Offset used to paginate results |
| startDate | string <date-time> Get videos that are published after this date |
integer or Array of integers PeerTube >= 8.2 Admins and moderators only filter on videos that have one of these states | |
string or Array of strings tag(s) of the video, where all should be present in the video | |
string or Array of strings tag(s) of the video | |
| uuids | Array of strings Find elements with specific UUIDs |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
]
}Operations dealing with adding video or audio. PeerTube supports two upload modes, and three import modes.
You can upload videos more reliably by using the resumable variant. Its protocol lets you resume an upload operation after a network interruption or other transmission failure, saving time and bandwidth in the event of network failures.
Favor using resumable uploads in any of the following cases:
The import function is practical when the desired video/audio is available online. It makes PeerTube download it for you, saving you as much bandwidth and avoiding any instability or limitation your network might have.
Uses a single request to upload a video.
| channelId required | integer >= 1 Channel id that will contain this video |
| name required | string [ 3 .. 120 ] characters Video name |
| videofile required | string <binary> Video file |
| aiUsage | integer (VideoAIUsageSet) Enum: 1 2 3 4 PeerTube >= 9.0 Use of AI in the video, declared by the video creator:
|
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| commercialContent | integer (VideoCommercialContentSet) Enum: 1 2 3 PeerTube >= 9.0 Commercial content in the video, declared by the video creator:
|
| description | string Video description |
| downloadEnabled | boolean Enable or disable downloading for this video |
| generateTranscription | boolean PeerTube >= 6.2 If enabled by the admin, automatically generate a subtitle of the video |
| language | string (VideoLanguageSet) language id of the video (see /videos/languages) |
| licence | integer (VideoLicenceSet) licence id of the video (see /videos/licences) |
| nsfw | boolean Whether or not this video contains sensitive content |
| nsfwFlags | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwSummary | any More information about the sensitive content of the video |
| originallyPublishedAt | string <date-time> Date when the content was originally published |
| previewfile | string <binary> Deprecated Deprecated in PeerTube v8.1, use thumbnailfile instead |
| privacy | |
| recommendationScope | integer (VideoRecommendationScopeSet) Enum: 1 2 3 4 Videos that can be recommended next to a video:
This is a preference of the video owner: applications displaying recommendations may not apply it |
object (VideoScheduledUpdate) | |
| support | string A text tell the audience how to support the video creator |
| tags | Array of strings [ 1 .. 5 ] items unique [ items [ 2 .. 30 ] characters ] Video tags (maximum 5 tags each between 2 and 30 characters) |
| thumbnailfile | string <binary> Video thumbnail file |
| videoPasswords | Array of strings (AddVideoPasswords) unique [ items >= 2 characters ] |
| waitTranscoding | boolean Whether or not we wait transcoding before publish the video |
## DEPENDENCIES: jq USERNAME="<your_username>" PASSWORD="<your_password>" FILE_PATH="<your_file_path>" CHANNEL_ID="<your_channel_id>" NAME="<video_name>" API="https://peertube2.cpy.re/api/v1" ## AUTH client_id=$(curl -s "$API/oauth-clients/local" | jq -r ".client_id") client_secret=$(curl -s "$API/oauth-clients/local" | jq -r ".client_secret") token=$(curl -s "$API/users/token" \ --data client_id="$client_id" \ --data client_secret="$client_secret" \ --data grant_type=password \ --data username="$USERNAME" \ --data password="$PASSWORD" \ | jq -r ".access_token") ## VIDEO UPLOAD curl -s "$API/videos/upload" \ -H "Authorization: Bearer $token" \ --max-time 600 \ --form videofile=@"$FILE_PATH" \ --form channelId=$CHANNEL_ID \ --form name="$NAME"
{- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}Uses a resumable protocol to initialize the upload of a video
| X-Upload-Content-Length required | number Example: 2469036 Number of bytes that will be uploaded in subsequent requests. Set this value to the size of the file you are uploading. |
| X-Upload-Content-Type required | string <mimetype> Example: video/mp4 MIME type of the file that you are uploading. Depending on your instance settings, acceptable values might vary. |
| channelId required | integer >= 1 Channel id that will contain this video |
| filename required | string <filename> Video filename including extension |
| name required | string [ 3 .. 120 ] characters Video name |
| aiUsage | integer (VideoAIUsageSet) Enum: 1 2 3 4 PeerTube >= 9.0 Use of AI in the video, declared by the video creator:
|
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| commercialContent | integer (VideoCommercialContentSet) Enum: 1 2 3 PeerTube >= 9.0 Commercial content in the video, declared by the video creator:
|
| description | string Video description |
| downloadEnabled | boolean Enable or disable downloading for this video |
| generateTranscription | boolean PeerTube >= 6.2 If enabled by the admin, automatically generate a subtitle of the video |
| language | string (VideoLanguageSet) language id of the video (see /videos/languages) |
| licence | integer (VideoLicenceSet) licence id of the video (see /videos/licences) |
| nsfw | boolean Whether or not this video contains sensitive content |
| nsfwFlags | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwSummary | any More information about the sensitive content of the video |
| originallyPublishedAt | string <date-time> Date when the content was originally published |
| previewfile | string <binary> Deprecated Deprecated in PeerTube v8.1, use thumbnailfile instead |
| privacy | |
| recommendationScope | integer (VideoRecommendationScopeSet) Enum: 1 2 3 4 Videos that can be recommended next to a video:
This is a preference of the video owner: applications displaying recommendations may not apply it |
object (VideoScheduledUpdate) | |
| support | string A text tell the audience how to support the video creator |
| tags | Array of strings [ 1 .. 5 ] items unique [ items [ 2 .. 30 ] characters ] Video tags (maximum 5 tags each between 2 and 30 characters) |
| thumbnailfile | string <binary> Video thumbnail file |
| videoPasswords | Array of strings (AddVideoPasswords) unique [ items >= 2 characters ] |
| waitTranscoding | boolean Whether or not we wait transcoding before publish the video |
{- "name": "What is PeerTube?",
- "channelId": 3,
- "privacy": 1,
- "category": 15,
- "licence": 2,
- "language": "en",
- "description": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\n",
- "waitTranscoding": true,
- "generateTranscription": true,
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "nsfw": true,
- "nsfwSummary": null,
- "nsfwFlags": 0,
- "tags": [
- "framasoft",
- "peertube"
], - "commentsPolicy": 1,
- "recommendationScope": 1,
- "aiUsage": 1,
- "commercialContent": 1,
- "downloadEnabled": true,
- "originallyPublishedAt": "2019-08-24T14:15:22Z",
- "scheduleUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "thumbnailfile": "string",
- "previewfile": "string",
- "videoPasswords": [
- "string"
], - "filename": "what_is_peertube.mp4"
}Uses a resumable protocol to continue, pause or resume the upload of a video
| upload_id required | string Created session id to proceed with. If you didn't send chunks in the last hour, it is not valid anymore and you need to initialize a new upload. |
| Content-Length required | number Example: 262144 Size of the chunk that the request is sending. Remember that larger chunks are more efficient. PeerTube's web client uses chunks varying from 1048576 bytes (~1MB) and increases or reduces size depending on connection health. |
| Content-Range required | string Example: bytes 0-262143/2469036 Specifies the bytes in the file that the request is uploading. For example, a value of When the server config |
{- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}Uses a resumable protocol to cancel the upload of a video
| upload_id required | string Created session id to proceed with. If you didn't send chunks in the last hour, it is not valid anymore and you need to initialize a new upload. |
| Content-Length required | number Example: 0 |
Import a torrent or magnetURI or HTTP resource (if enabled by the instance administrator)
| channelId required | integer >= 1 Channel id that will contain this video |
| name required | string [ 3 .. 120 ] characters Video name |
| targetUrl required | string <url> remote URL where to find the import's source video |
| aiUsage | integer (VideoAIUsageSet) Enum: 1 2 3 4 PeerTube >= 9.0 Use of AI in the video, declared by the video creator:
|
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| commercialContent | integer (VideoCommercialContentSet) Enum: 1 2 3 PeerTube >= 9.0 Commercial content in the video, declared by the video creator:
|
| description | string Video description |
| downloadEnabled | boolean Enable or disable downloading for this video |
| generateTranscription | boolean PeerTube >= 6.2 If enabled by the admin, automatically generate a subtitle of the video |
| language | string (VideoLanguageSet) language id of the video (see /videos/languages) |
| licence | integer (VideoLicenceSet) licence id of the video (see /videos/licences) |
| nsfw | boolean Whether or not this video contains sensitive content |
| nsfwFlags | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwSummary | any More information about the sensitive content of the video |
| originallyPublishedAt | string <date-time> Date when the content was originally published |
| previewfile | string <binary> Deprecated Deprecated in PeerTube v8.1, use thumbnailfile instead |
| privacy | |
| recommendationScope | integer (VideoRecommendationScopeSet) Enum: 1 2 3 4 Videos that can be recommended next to a video:
This is a preference of the video owner: applications displaying recommendations may not apply it |
object (VideoScheduledUpdate) | |
| support | string A text tell the audience how to support the video creator |
| tags | Array of strings [ 1 .. 5 ] items unique [ items [ 2 .. 30 ] characters ] Video tags (maximum 5 tags each between 2 and 30 characters) |
| thumbnailfile | string <binary> Video thumbnail file |
| videoPasswords | Array of strings (AddVideoPasswords) unique [ items >= 2 characters ] |
| waitTranscoding | boolean Whether or not we wait transcoding before publish the video |
{- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}PeerTube >= 6.0 Uses a resumable protocol to initialize the replacement of a video
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| X-Upload-Content-Length required | number Example: 2469036 Number of bytes that will be uploaded in subsequent requests. Set this value to the size of the file you are uploading. |
| X-Upload-Content-Type required | string <mimetype> Example: video/mp4 MIME type of the file that you are uploading. Depending on your instance settings, acceptable values might vary. |
| filename | string <filename> Video filename including extension |
{- "filename": "what_is_peertube.mp4"
}PeerTube >= 6.0 Uses a resumable protocol to continue, pause or resume the replacement of a video
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| upload_id required | string Created session id to proceed with. If you didn't send chunks in the last hour, it is not valid anymore and you need to initialize a new upload. |
| Content-Length required | number Example: 262144 Size of the chunk that the request is sending. Remember that larger chunks are more efficient. PeerTube's web client uses chunks varying from 1048576 bytes (~1MB) and increases or reduces size depending on connection health. |
| Content-Range required | string Example: bytes 0-262143/2469036 Specifies the bytes in the file that the request is uploading. For example, a value of When the server config |
PeerTube >= 6.0 Uses a resumable protocol to cancel the replacement of a video
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| upload_id required | string Created session id to proceed with. If you didn't send chunks in the last hour, it is not valid anymore and you need to initialize a new upload. |
| Content-Length required | number Example: 0 |
Import a torrent or magnetURI or HTTP resource (if enabled by the instance administrator)
| channelId required | integer >= 1 Channel id that will contain this video |
| name required | string [ 3 .. 120 ] characters Video name |
| targetUrl required | string <url> remote URL where to find the import's source video |
| aiUsage | integer (VideoAIUsageSet) Enum: 1 2 3 4 PeerTube >= 9.0 Use of AI in the video, declared by the video creator:
|
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| commercialContent | integer (VideoCommercialContentSet) Enum: 1 2 3 PeerTube >= 9.0 Commercial content in the video, declared by the video creator:
|
| description | string Video description |
| downloadEnabled | boolean Enable or disable downloading for this video |
| generateTranscription | boolean PeerTube >= 6.2 If enabled by the admin, automatically generate a subtitle of the video |
| language | string (VideoLanguageSet) language id of the video (see /videos/languages) |
| licence | integer (VideoLicenceSet) licence id of the video (see /videos/licences) |
| nsfw | boolean Whether or not this video contains sensitive content |
| nsfwFlags | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwSummary | any More information about the sensitive content of the video |
| originallyPublishedAt | string <date-time> Date when the content was originally published |
| previewfile | string <binary> Deprecated Deprecated in PeerTube v8.1, use thumbnailfile instead |
| privacy | |
| recommendationScope | integer (VideoRecommendationScopeSet) Enum: 1 2 3 4 Videos that can be recommended next to a video:
This is a preference of the video owner: applications displaying recommendations may not apply it |
object (VideoScheduledUpdate) | |
| support | string A text tell the audience how to support the video creator |
| tags | Array of strings [ 1 .. 5 ] items unique [ items [ 2 .. 30 ] characters ] Video tags (maximum 5 tags each between 2 and 30 characters) |
| thumbnailfile | string <binary> Video thumbnail file |
| videoPasswords | Array of strings (AddVideoPasswords) unique [ items >= 2 characters ] |
| waitTranscoding | boolean Whether or not we wait transcoding before publish the video |
{- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| x-peertube-video-password | string Required on password protected video |
{- "total": 1,
- "data": [
- {
- "language": {
- "id": "en",
- "label": "English"
}, - "automaticallyGenerated": true,
- "captionPath": "string",
- "fileUrl": "string",
- "m3u8Url": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}PeerTube >= 6.2 This feature has to be enabled by the administrator
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| forceTranscription | boolean Default: false |
{- "forceTranscription": false
}| captionLanguage required | string (VideoLanguageSet) Example: en The caption language |
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| captionfile | string <binary> The file to upload. |
PeerTube >= 6.0
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| x-peertube-video-password | string Required on password protected video |
{- "chapters": {
- "title": "string",
- "timecode": 0
}
}PeerTube >= 6.0
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
Array of objects |
{- "chapters": [
- {
- "title": "string",
- "timecode": 0
}
]
}Operations dealing with the creation, modification and listing of videos within a channel.
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}
]
}| displayName required | any Channel display name |
| name required | string [ 1 .. 50 ] characters /^[a-zA-Z0-9\\-_.:]+$/ username of the channel to create |
| description | any Channel description |
| publicEmail | string or null <email> Public email visible in podcast RSS feeds |
| support | any How to support/fund the channel |
{- "displayName": null,
- "description": null,
- "support": null,
- "publicEmail": "user@example.com",
- "name": "framasoft_videos"
}{- "videoChannel": {
- "id": 42
}
}| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
{- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| bulkVideosSupportUpdate | boolean Update the support field for all videos of this channel |
| description | any Channel description |
| displayName | any Channel display name |
| publicEmail | string or null <email> Public email visible in podcast RSS feeds |
| support | any How to support/fund the channel |
{- "displayName": null,
- "description": null,
- "support": null,
- "publicEmail": "user@example.com",
- "bulkVideosSupportUpdate": true
}| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
VideoAIUsageSet (integer) or Array of VideoAIUsageSet (integers) PeerTube >= 9.0 Only list videos with one of these AI usages, declared by video creators.
If not provided, the preference of the authenticated user ( | |
string or Array of strings PeerTube >= 6.2 Admins and moderators only filter on videos that contain one of these automatic tags | |
VideoCategorySet (integer) or Array of VideoCategorySet (integers) category id of the video (see /videos/categories) | |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| excludeAlreadyWatched | boolean Whether or not to exclude videos that are in the user's video history |
| hasHLSFiles | boolean PeerTube >= 4.0 Display only videos that have HLS files |
| hasWebVideoFiles | boolean PeerTube >= 6.0 Display only videos that have Web Video files |
| host | string Find elements owned by this host |
| include | integer Enum: 0 1 2 4 8 16 32 Only administrators and moderators can use this parameter Include additional videos in results (can be combined using bitwise or operator)
|
| includeScheduledLive | boolean whether or not include live that are scheduled for later |
| isLive | boolean whether or not the video is a live |
| isLocal | boolean PeerTube >= 4.0 Display only local or remote objects |
VideoLanguageSet (string) or Array of VideoLanguageSet (strings) language id of the video (see /videos/languages). Use | |
VideoLicenceSet (integer) or Array of VideoLicenceSet (integers) licence id of the video (see /videos/licences) | |
| nsfw | string Enum: "true" "false" whether to include nsfw videos, if any |
| nsfwFlagsExcluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsIncluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| privacyOneOf | integer (VideoPrivacySet) Enum: 1 2 3 4 5 PeerTube >= 4.0 Display only videos in this specific privacy/privacies |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| skipCount | string Default: "false" Enum: "true" "false" if you don't need the |
| sort | string Enum: "name" "-duration" "-createdAt" "-publishedAt" "-views" "-likes" "-comments" "-trending" "-hot" "-best" Sort videos by criteria (prefixing with
|
| start | integer >= 0 Offset used to paginate results |
integer or Array of integers PeerTube >= 8.2 Admins and moderators only filter on videos that have one of these states | |
string or Array of strings tag(s) of the video, where all should be present in the video | |
string or Array of strings tag(s) of the video |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
]
}PeerTube >= 8.0
| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 0,
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "action": {
- "id": 1,
- "label": "string"
}, - "targetType": {
- "id": 1,
- "label": "string"
}, - "details": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string"
}, - "video": {
- "id": 42,
- "name": "string",
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "url": "string",
- "isLive": true
}, - "videoImport": {
- "id": 42,
- "name": "string",
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "url": "string",
}, - "playlist": {
- "id": 42,
- "name": "string",
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "url": "string"
},
}
]
}| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| playlistType | integer (VideoPlaylistTypeSet) Enum: 1 2 The video playlist type (Regular = |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "displayName": "string",
- "isLocal": true,
- "videoLength": 0,
- "thumbnailPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "privacy": {
- "id": 1,
- "label": "string"
}, - "type": {
- "id": 1,
- "label": "string"
}, - "ownerAccount": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannelPosition": 1
}
]
}| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| insertAfterPosition required | integer >= 0 New position for the block to reorder, to add the block before the first element |
| startPosition required | integer >= 1 Start position of the element to reorder |
| reorderLength | integer >= 1 How many element from |
{- "startPosition": 1,
- "insertAfterPosition": 0,
- "reorderLength": 1
}| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| sort | string Value: "createdAt" Sort followers by criteria |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "follower": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "following": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "score": 0,
- "state": "pending",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| avatarfile | string <binary> The file to upload. |
{- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}Import a remote channel/playlist videos into a channel
| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| externalChannelUrl required | string |
| videoChannelSyncId | integer If part of a channel sync process, specify its id to assign video imports to this channel synchronization |
{- "videoChannelSyncId": 0
}| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| includeCollaborations | boolean PeerTube >= 8.0 Include objects from collaborated channels |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
| statsDays | integer Default: 30 Enum: 30 90 365 0 number of days of view statistics to include in |
| withStats | boolean include view statistics time series and total views (only if authenticated as the account user) |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}
]
}| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| includeCollaborations | boolean PeerTube >= 8.0 Include objects from collaborated channels |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "state": {
- "id": 2,
- "label": "PROCESSING"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "lastSyncAt": "2019-08-24T14:15:22Z",
- "channel": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}, - "videoPrivacy": 0
}
]
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| handles | Array of strings Find elements with these handles |
| host | string Find elements owned by this host |
| search required | string String to search. If the user can make a remote URI search, and the string is an URI then the PeerTube instance will fetch the remote object and add it to its database. Then, you can use the REST API to fetch the complete channel information and interact with it. |
| searchTarget | string Enum: "local" "search-index" If the administrator enabled search index support, you can override the default search target. Warning: If you choose to make an index search, PeerTube will get results from a third party service. It means the instance may not yet know the objects you fetched. If you want to load video/channel information:
|
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}
]
}PeerTube >= 8.0
| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "state": {
- "id": 1,
- "label": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}PeerTube >= 8.0 Invite a local user to collaborate on the specified video channel.
| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| accountHandle | string Local user username to invite |
{- "accountHandle": "string"
}{- "collaborator": {
- "id": 42,
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "state": {
- "id": 1,
- "label": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}PeerTube >= 8.0 Only the channel owner or the collaborator themselves can remove a collaborator from a channel
| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| collaboratorId required | integer (id) >= 1 Example: 42 The collaborator id |
Operations dealing with comments to a video. Comments are organized in threads: adding a comment in response to the video starts a thread, adding a reply to a comment adds it to its root comment thread.
PeerTube >= 6.2
string or Array of strings PeerTube >= 6.2 filter on comments that contain one of these automatic tags | |
| includeCollaborations | boolean PeerTube >= 8.0 Include objects from collaborated channels |
| isHeldForReview | boolean only display comments that are held for review |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| searchAccount | string Filter comments by searching on the account |
| searchVideo | string Filter comments by searching on the video |
| videoChannelId | integer Limit results on this specific video channel |
| videoId | integer Limit results on this specific video |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "url": "string",
- "text": "This video is wonderful!",
- "heldForReview": true,
- "threadId": 42,
- "inReplyToCommentId": 42,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "name": "What is PeerTube?",
- "state": {
- "id": 1,
- "label": "string"
}
}, - "automaticTags": [
- "string"
]
}
]
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Enum: "-createdAt" "-totalReplies" Sort comments by criteria |
| start | integer >= 0 Offset used to paginate results |
| x-peertube-video-password | string Required on password protected video |
{- "total": 0,
- "totalNotDeletedComments": 0,
- "data": [
- {
- "id": 42,
- "url": "string",
- "text": "This video is wonderful!",
- "threadId": 42,
- "inReplyToCommentId": 42,
- "videoId": 42,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "deletedAt": null,
- "isDeleted": false,
- "heldForReview": true,
- "totalRepliesFromVideoAuthor": 0,
- "totalReplies": 0,
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}
}
]
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| text required | string <html> [ 1 .. 10000 ] characters Text of the comment |
{- "text": "This video is wonderful!"
}{- "comment": {
- "id": 42,
- "url": "string",
- "text": "This video is wonderful!",
- "threadId": 42,
- "inReplyToCommentId": 42,
- "videoId": 42,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "deletedAt": null,
- "isDeleted": false,
- "heldForReview": true,
- "totalRepliesFromVideoAuthor": 0,
- "totalReplies": 0,
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}
}
}Since PeerTube 8.3 the returned tree is truncated: only the first replies of each comment are included, and only down to maxDepth nesting levels. Use GET /api/v1/videos/{id}/comments/{commentId}/replies to fetch the replies that are missing, comparing children and totalChildren of each node of the tree.
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| threadId required | integer The thread id (root comment id) |
| maxDepth | integer [ 1 .. 10 ] Default: 5 Number of nesting levels to include below the requested comment.
Bounded by |
| repliesPerLevel | integer [ 1 .. 30 ] Default: 10 Number of direct replies to include for each comment of the tree. Does not apply to the first level of |
| x-peertube-video-password | string Required on password protected video |
{- "comment": {
- "id": 42,
- "url": "string",
- "text": "This video is wonderful!",
- "threadId": 42,
- "inReplyToCommentId": 42,
- "videoId": 42,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "deletedAt": null,
- "isDeleted": false,
- "heldForReview": true,
- "totalRepliesFromVideoAuthor": 0,
- "totalReplies": 0,
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}
}, - "children": [
- { }
], - "totalChildren": 0
}PeerTube >= 8.3 List the direct replies of a comment, each of them nested up to maxDepth levels. Used to unfold the parts of a thread that GET /api/v1/videos/{id}/comment-threads/{threadId} truncated.
| commentId required | integer >= 1 Example: 42 The comment id |
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| maxDepth | integer [ 1 .. 10 ] Default: 5 Number of nesting levels to include below the requested comment.
Bounded by |
| repliesPerLevel | integer [ 1 .. 30 ] Default: 10 Number of direct replies to include for each comment of the tree. Does not apply to the first level of |
| sort | string Default: "createdAt" Enum: "createdAt" "-createdAt" Sort the direct replies of the comment. Deeper levels of the tree are always sorted the same way.
Defaults to |
| start | integer >= 0 Offset used to paginate results |
| x-peertube-video-password | string Required on password protected video |
{- "total": 13,
- "data": [
- {
- "comment": {
- "id": 42,
- "url": "string",
- "text": "This video is wonderful!",
- "threadId": 42,
- "inReplyToCommentId": 42,
- "videoId": 42,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "deletedAt": null,
- "isDeleted": false,
- "heldForReview": true,
- "totalRepliesFromVideoAuthor": 0,
- "totalReplies": 0,
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}
}, - "children": [
- { }
], - "totalChildren": 0
}
]
}string or Array of strings PeerTube >= 6.2 filter on comments that contain one of these automatic tags | |
| includeMuted | boolean PeerTube >= 8.2 Include comments from muted accounts |
| isLocal | boolean PeerTube >= 4.0 Display only local or remote objects |
| onLocalVideo | boolean Display only objects of local or remote videos |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| searchAccount | string Filter comments by searching on the account |
| searchVideo | string Filter comments by searching on the video |
| videoChannelId | integer Limit results on this specific video channel |
| videoId | integer Limit results on this specific video |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "url": "string",
- "text": "This video is wonderful!",
- "heldForReview": true,
- "threadId": 42,
- "inReplyToCommentId": 42,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "name": "What is PeerTube?",
- "state": {
- "id": 1,
- "label": "string"
}
}, - "automaticTags": [
- "string"
]
}
]
}| commentId required | integer >= 1 Example: 42 The comment id |
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| x-peertube-video-password | string Required on password protected video |
| text required | string <html> [ 1 .. 10000 ] characters Text of the comment |
{- "text": "This video is wonderful!"
}{- "comment": {
- "id": 42,
- "url": "string",
- "text": "This video is wonderful!",
- "threadId": 42,
- "inReplyToCommentId": 42,
- "videoId": 42,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "deletedAt": null,
- "isDeleted": false,
- "heldForReview": true,
- "totalRepliesFromVideoAuthor": 0,
- "totalReplies": 0,
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}
}
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| x-peertube-video-password | string Required on password protected video |
| rating required | string Enum: "like" "dislike" |
{- "rating": "like"
}Operations dealing with playlists of videos. Playlists are bound to users and/or channels.
| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| playlistType | integer (VideoPlaylistTypeSet) Enum: 1 2 The video playlist type (Regular = |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "displayName": "string",
- "isLocal": true,
- "videoLength": 0,
- "thumbnailPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "privacy": {
- "id": 1,
- "label": "string"
}, - "type": {
- "id": 1,
- "label": "string"
}, - "ownerAccount": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannelPosition": 1
}
]
}| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| insertAfterPosition required | integer >= 0 New position for the block to reorder, to add the block before the first element |
| startPosition required | integer >= 1 Start position of the element to reorder |
| reorderLength | integer >= 1 How many element from |
{- "startPosition": 1,
- "insertAfterPosition": 0,
- "reorderLength": 1
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| playlistType | integer (VideoPlaylistTypeSet) Enum: 1 2 The video playlist type (Regular = |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "displayName": "string",
- "isLocal": true,
- "videoLength": 0,
- "thumbnailPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "privacy": {
- "id": 1,
- "label": "string"
}, - "type": {
- "id": 1,
- "label": "string"
}, - "ownerAccount": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannelPosition": 1
}
]
}If the video playlist is set as public, videoChannelId is mandatory.
| displayName required | string [ 1 .. 120 ] characters Video playlist display name |
| description | string [ 3 .. 1000 ] characters Video playlist description |
| privacy | integer (VideoPlaylistPrivacySet) Enum: 1 2 3 Video playlist privacy policy (see /video-playlists/privacies) |
| thumbnailfile | string <binary> Video playlist thumbnail file |
| videoChannelId | integer >= 1 Video channel in which the playlist will be published |
{- "videoPlaylist": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}{- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "displayName": "string",
- "isLocal": true,
- "videoLength": 0,
- "thumbnailPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "privacy": {
- "id": 1,
- "label": "string"
}, - "type": {
- "id": 1,
- "label": "string"
}, - "ownerAccount": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannelPosition": 1
}If the video playlist is set as public, the playlist must have a assigned channel.
| playlistId required | integer >= 1 Example: 42 Playlist id |
| description | string Video playlist description |
| displayName | string [ 1 .. 120 ] characters Video playlist display name |
| privacy | integer (VideoPlaylistPrivacySet) Enum: 1 2 3 Video playlist privacy policy (see /video-playlists/privacies) |
| thumbnailfile | string <binary> Video playlist thumbnail file |
| videoChannelId | integer >= 1 Video channel in which the playlist will be published |
| playlistId required | integer >= 1 Example: 42 Playlist id |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "position": 2,
- "startTimestamp": 10,
- "stopTimestamp": 41,
- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
}
]
}| playlistId required | integer >= 1 Example: 42 Playlist id |
required | string or integer Video to add in the playlist |
| startTimestamp | integer <seconds> Start the video at this specific timestamp |
| stopTimestamp | integer <seconds> Stop the video at this specific timestamp |
{- "videoId": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "startTimestamp": 0,
- "stopTimestamp": 0
}{- "videoPlaylistElement": {
- "id": 2
}
}| playlistId required | integer >= 1 Example: 42 Playlist id |
| insertAfterPosition required | integer >= 0 New position for the block to reorder, to add the block before the first element |
| startPosition required | integer >= 1 Start position of the element to reorder |
| reorderLength | integer >= 1 How many element from |
{- "startPosition": 1,
- "insertAfterPosition": 0,
- "reorderLength": 1
}| playlistElementId required | integer (id) >= 1 Example: 42 Playlist element id |
| playlistId required | integer >= 1 Example: 42 Playlist id |
| startTimestamp | integer <seconds> Start the video at this specific timestamp |
| stopTimestamp | integer <seconds> Stop the video at this specific timestamp |
{- "startTimestamp": 0,
- "stopTimestamp": 0
}| videoIds required | Array of integers[ items >= 1 ] Example: videoIds=42 The video ids to check |
{- "videoId": [
- {
- "playlistElementId": 0,
- "playlistId": 0,
- "startTimestamp": 0,
- "stopTimestamp": 0
}
]
}| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
string or Array of strings PeerTube >= 8.0 Filter on playlists that are published on a channel with one of these names | |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| includeCollaborations | boolean PeerTube >= 8.0 Include objects from collaborated channels |
| playlistType | integer (VideoPlaylistTypeSet) Enum: 1 2 The video playlist type (Regular = |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "displayName": "string",
- "isLocal": true,
- "videoLength": 0,
- "thumbnailPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "privacy": {
- "id": 1,
- "label": "string"
}, - "type": {
- "id": 1,
- "label": "string"
}, - "ownerAccount": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannelPosition": 1
}
]
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| host | string Find elements owned by this host |
| search required | string String to search. If the user can make a remote URI search, and the string is an URI then the PeerTube instance will fetch the remote object and add it to its database. Then, you can use the REST API to fetch the complete playlist information and interact with it. |
| searchTarget | string Enum: "local" "search-index" If the administrator enabled search index support, you can override the default search target. Warning: If you choose to make an index search, PeerTube will get results from a third party service. It means the instance may not yet know the objects you fetched. If you want to load video/channel information:
|
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
| uuids | Array of strings Find elements with specific UUIDs |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "displayName": "string",
- "isLocal": true,
- "videoLength": 0,
- "thumbnailPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "privacy": {
- "id": 1,
- "label": "string"
}, - "type": {
- "id": 1,
- "label": "string"
}, - "ownerAccount": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannelPosition": 1
}
]
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| endDate | string <date-time> Filter stats by end date |
| startDate | string <date-time> Filter stats by start date |
{- "averageWatchTime": 0,
- "totalWatchTime": 0,
- "viewersPeak": 0,
- "totalViewers": 0,
- "viewersPeakDate": "2019-08-24T14:15:22Z",
- "countries": [
- {
- "isoCode": "string",
- "viewers": 0
}
], - "subdivisions": [
- {
- "name": "string",
- "viewers": 0
}
]
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| endDate | string <date-time> Filter stats by end date |
| startDate | string <date-time> Filter stats by start date |
{- "clients": [
- {
- "name": "string",
- "viewers": 0
}
], - "devices": [
- {
- "name": "console",
- "viewers": 0
}
], - "operatingSystem": [
- {
- "name": "string",
- "viewers": 0
}
]
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| metric required | string Enum: "viewers" "aggregateWatchTime" The metric to get |
| endDate | string <date-time> Filter stats by end date |
| startDate | string <date-time> Filter stats by start date |
{- "data": [
- {
- "date": "string",
- "value": 0
}
]
}List ownership change requests received by the authenticated user and requests sent by a channel managed by the authenticated user
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Enum: "-createdAt" "createdAt" |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "state": {
- "id": 1,
- "label": "string"
}, - "initiatorAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "nextOwnerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "name": "string",
- "isLive": true,
- "nsfw": true,
- "publishedAt": "2019-08-24T14:15:22Z",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
}, - "videoChannel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| channelId required | integer Target channel id owned by the authenticated user |
{- "channelId": 0
}List all ownership change requests for a specific video. The authenticated user must be able to manage the video.
required | id (integer) or UUIDv4 (string) or shortUUID (string) Video id or UUID |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Enum: "-createdAt" "createdAt" |
| start | integer >= 0 Offset used to paginate results |
| state | integer (ChangeOwnershipState) Enum: 1 2 3 Filter by ownership change state |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "state": {
- "id": 1,
- "label": "string"
}, - "initiatorAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "nextOwnerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "name": "string",
- "isLive": true,
- "nsfw": true,
- "publishedAt": "2019-08-24T14:15:22Z",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
}, - "videoChannel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]
}List ownership change requests received by the authenticated user and requests sent by channels managed by the authenticated user
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Enum: "-createdAt" "createdAt" |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "state": {
- "id": 1,
- "label": "string"
}, - "initiatorAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "nextOwnerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "name": "string",
- "isLive": true,
- "nsfw": true,
- "publishedAt": "2019-08-24T14:15:22Z",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
}, - "videoChannel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]
}List all ownership change requests for a specific channel. The authenticated user must be able to manage the channel.
| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Enum: "-createdAt" "createdAt" |
| start | integer >= 0 Offset used to paginate results |
| state | integer (ChangeOwnershipState) Enum: 1 2 3 Filter by ownership change state |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "state": {
- "id": 1,
- "label": "string"
}, - "initiatorAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "nextOwnerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "name": "string",
- "isLive": true,
- "nsfw": true,
- "publishedAt": "2019-08-24T14:15:22Z",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
}, - "videoChannel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]
}| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| username required | string |
{- "username": "string"
}PeerTube instances can mirror videos from one another, and help distribute some videos.
For importing videos as your own, refer to video imports.
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Value: "name" Sort abuses by criteria |
| start | integer >= 0 Offset used to paginate results |
| target required | string Enum: "my-videos" "remote-videos" direction of the mirror |
[- {
- "id": 42,
- "name": "string",
- "url": "string",
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "redundancies": {
- "streamingPlaylists": [
- {
- "id": 42,
- "fileUrl": "string",
- "strategy": "manual",
- "size": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "expiresOn": "2019-08-24T14:15:22Z"
}
]
}
}
]Create a task to edit a video (cut, add intro/outro etc). By default the video is edited in place. Set saveAsNewVideo to keep it untouched and save the result in a new video.
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
required | Array of cut (object) or add-intro (object) or add-outro (object) or add-watermark (object) or remove-segments (object) (VideoStudioCreateTask) |
| saveAsNewVideo | boolean Default: false Keep the source video untouched: duplicate it, and edit the duplicate. The duplicate is created private, in the same channel as the source video, with the source video metadata. The size of the source video counts towards the user quota. |
{- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| transcodingType required | string Enum: "hls" "web-video" |
| forceTranscoding | boolean Default: false If the video is stuck in transcoding state, do it anyway |
{- "transcodingType": "hls",
- "forceTranscoding": false
}| channelId required | integer Channel id that will contain this live video |
| name required | string [ 3 .. 120 ] characters Live video/replay name |
| aiUsage | integer (VideoAIUsageSet) Enum: 1 2 3 4 PeerTube >= 9.0 Use of AI in the video, declared by the video creator:
|
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| commercialContent | integer (VideoCommercialContentSet) Enum: 1 2 3 PeerTube >= 9.0 Commercial content in the video, declared by the video creator:
|
| description | string Live video/replay description |
| downloadEnabled | boolean Enable or disable downloading for the replay of this live video |
| language | string (VideoLanguageSet) language id of the video (see /videos/languages) |
| latencyMode | integer Enum: 1 2 3 User can select live latency mode if enabled by the instance |
| licence | integer (VideoLicenceSet) licence id of the video (see /videos/licences) |
| nsfw | boolean Whether or not this live video/replay contains sensitive content |
| nsfwFlags | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwSummary | any More information about the sensitive content of the video |
| permanentLive | boolean User can stream multiple times in a permanent live |
| previewfile | string <binary> Deprecated Deprecated in PeerTube v8.1, use thumbnailfile instead |
| privacy | |
| recommendationScope | integer (VideoRecommendationScopeSet) Enum: 1 2 3 4 Videos that can be recommended next to a video:
This is a preference of the video owner: applications displaying recommendations may not apply it |
object (LiveVideoReplaySettings) | |
| saveReplay | boolean |
Array of objects (LiveSchedule) | |
| support | string A text tell the audience how to support the creator |
| tags | Array of strings [ 1 .. 5 ] items [ items [ 2 .. 30 ] characters ] Live video/replay tags (maximum 5 tags each between 2 and 30 characters) |
| thumbnailfile | string <binary> Live video/replay thumbnail file |
{- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
{- "rtmpUrl": "string",
- "rtmpsUrl": "string",
- "streamKey": "string",
- "saveReplay": true,
- "replaySettings": {
- "privacy": 1
}, - "permanentLive": true,
- "latencyMode": 1,
- "schedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
]
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| latencyMode | integer Enum: 1 2 3 User can select live latency mode if enabled by the instance |
| permanentLive | boolean User can stream multiple times in a permanent live |
object (LiveVideoReplaySettings) | |
| saveReplay | boolean |
Array of objects (LiveSchedule) |
{- "saveReplay": true,
- "replaySettings": {
- "privacy": 1
}, - "permanentLive": true,
- "latencyMode": 1,
- "schedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
]
}List all sessions created in a particular live
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| sort | string Example: sort=-createdAt Sort column |
{- "total": 1,
- "data": [
- {
- "id": 0,
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "error": 1,
- "replayVideo": {
- "id": 0,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}
]
}If the video is a replay of a live, you can find the associated live session using this endpoint
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| x-peertube-video-password | string Required on password protected video |
{- "id": 0,
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "error": 1,
- "replayVideo": {
- "id": 0,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC"
}
}Operations dealing with synchronizing PeerTube user's channel with channels of other platforms
Import a remote channel/playlist videos into a channel
| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
| externalChannelUrl required | string |
| videoChannelSyncId | integer If part of a channel sync process, specify its id to assign video imports to this channel synchronization |
{- "videoChannelSyncId": 0
}| externalChannelUrl | string |
| videoChannelId | integer (id) >= 1 |
| videoPrivacy | integer Privacy of imported videos (1 = PUBLIC, 2 = UNLISTED, 3 = PRIVATE, 4 = INTERNAL). Password protected privacy is not supported |
{- "videoChannelId": 42,
- "videoPrivacy": 0
}{- "videoChannelSync": {
- "id": 42,
- "state": {
- "id": 2,
- "label": "PROCESSING"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "lastSyncAt": "2019-08-24T14:15:22Z",
- "channel": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}, - "videoPrivacy": 0
}
}| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| includeCollaborations | boolean PeerTube >= 8.0 Include objects from collaborated channels |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "state": {
- "id": 2,
- "label": "PROCESSING"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "lastSyncAt": "2019-08-24T14:15:22Z",
- "channel": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}, - "videoPrivacy": 0
}
]
}PeerTube >= 6.0
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "password": "string",
- "videoId": 42
}
]
}PeerTube >= 6.0
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| passwords | Array of strings (AddVideoPasswords) unique [ items >= 2 characters ] |
{- "passwords": [
- "string"
]
}PeerTube >= 8.0
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| password | string |
{- "password": "string"
}PeerTube >= 8.1
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| domains | Array of strings |
| policy | integer (VideoEmbedPrivacy) Enum: 1 2 3 4 The video embed privacy level:
|
{- "policy": 1,
- "domains": [
- "example.com"
]
}PeerTube >= 8.1 Check if video embed is allowed on a specific domain according to the video embed privacy settings
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| domain required | string The domain to check if embed is allowed |
{- "domainAllowed": true,
- "userBypassAllowed": true
}The search helps to find videos or channels from within the instance and beyond. Videos from other instances federated by the instance (that is, instances followed by the instance) can be found via keywords and other criteria of the advanced search.
Administrators can also enable the use of a remote search system, indexing videos and channels that may not be federated by the instance.
VideoAIUsageSet (integer) or Array of VideoAIUsageSet (integers) PeerTube >= 9.0 Only list videos with one of these AI usages, declared by video creators.
If not provided, the preference of the authenticated user ( | |
string or Array of strings PeerTube >= 6.2 Admins and moderators only filter on videos that contain one of these automatic tags | |
VideoCategorySet (integer) or Array of VideoCategorySet (integers) category id of the video (see /videos/categories) | |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| durationMax | integer Get videos that have this maximum duration |
| durationMin | integer Get videos that have this minimum duration |
| endDate | string <date-time> Get videos that are published before this date |
| excludeAlreadyWatched | boolean Whether or not to exclude videos that are in the user's video history |
| hasHLSFiles | boolean PeerTube >= 4.0 Display only videos that have HLS files |
| hasWebVideoFiles | boolean PeerTube >= 6.0 Display only videos that have Web Video files |
| host | string Find elements owned by this host |
| include | integer Enum: 0 1 2 4 8 16 32 Only administrators and moderators can use this parameter Include additional videos in results (can be combined using bitwise or operator)
|
| includeScheduledLive | boolean whether or not include live that are scheduled for later |
| isLive | boolean whether or not the video is a live |
| isLocal | boolean PeerTube >= 4.0 Display only local or remote objects |
VideoLanguageSet (string) or Array of VideoLanguageSet (strings) language id of the video (see /videos/languages). Use | |
VideoLicenceSet (integer) or Array of VideoLicenceSet (integers) licence id of the video (see /videos/licences) | |
| nsfw | string Enum: "true" "false" whether to include nsfw videos, if any |
| nsfwFlagsExcluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| nsfwFlagsIncluded | integer (NSFWFlag) Enum: 0 1 2 4 NSFW flags (can be combined using bitwise or operator)
|
| originallyPublishedEndDate | string <date-time> Get videos that are originally published before this date |
| originallyPublishedStartDate | string <date-time> Get videos that are originally published after this date |
| privacyOneOf | integer (VideoPrivacySet) Enum: 1 2 3 4 5 PeerTube >= 4.0 Display only videos in this specific privacy/privacies |
| search required | string String to search. If the user can make a remote URI search, and the string is an URI then the PeerTube instance will fetch the remote object and add it to its database. Then, you can use the REST API to fetch the complete video information and interact with it. |
| searchTarget | string Enum: "local" "search-index" If the administrator enabled search index support, you can override the default search target. Warning: If you choose to make an index search, PeerTube will get results from a third party service. It means the instance may not yet know the objects you fetched. If you want to load video/channel information:
|
| skipCount | string Default: "false" Enum: "true" "false" if you don't need the |
| sort | string Enum: "name" "-duration" "-createdAt" "-publishedAt" "-views" "-likes" "-comments" "-trending" "-hot" "-best" Sort videos by criteria (prefixing with
|
| start | integer >= 0 Offset used to paginate results |
| startDate | string <date-time> Get videos that are published after this date |
integer or Array of integers PeerTube >= 8.2 Admins and moderators only filter on videos that have one of these states | |
string or Array of strings tag(s) of the video, where all should be present in the video | |
string or Array of strings tag(s) of the video | |
| uuids | Array of strings Find elements with specific UUIDs |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}
]
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| handles | Array of strings Find elements with these handles |
| host | string Find elements owned by this host |
| search required | string String to search. If the user can make a remote URI search, and the string is an URI then the PeerTube instance will fetch the remote object and add it to its database. Then, you can use the REST API to fetch the complete channel information and interact with it. |
| searchTarget | string Enum: "local" "search-index" If the administrator enabled search index support, you can override the default search target. Warning: If you choose to make an index search, PeerTube will get results from a third party service. It means the instance may not yet know the objects you fetched. If you want to load video/channel information:
|
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}
]
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| host | string Find elements owned by this host |
| search required | string String to search. If the user can make a remote URI search, and the string is an URI then the PeerTube instance will fetch the remote object and add it to its database. Then, you can use the REST API to fetch the complete playlist information and interact with it. |
| searchTarget | string Enum: "local" "search-index" If the administrator enabled search index support, you can override the default search target. Warning: If you choose to make an index search, PeerTube will get results from a third party service. It means the instance may not yet know the objects you fetched. If you want to load video/channel information:
|
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
| uuids | Array of strings Find elements with specific UUIDs |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "displayName": "string",
- "isLocal": true,
- "videoLength": 0,
- "thumbnailPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "privacy": {
- "id": 1,
- "label": "string"
}, - "type": {
- "id": 1,
- "label": "string"
}, - "ownerAccount": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "videoChannelPosition": 1
}
]
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| id | integer only list the report with this id |
| sort | string Enum: "-id" "-createdAt" "-state" Sort abuses by criteria |
| start | integer >= 0 Offset used to paginate results |
| state | integer (AbuseStateSet) Enum: 1 2 3 The abuse state (Pending = |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "reason": "The video is a spam",
- "predefinedReasons": [
- "spamOrMisleading"
], - "reporterAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "state": {
- "id": 1,
- "label": "string"
}, - "moderationComment": "Decided to ban the server since it spams us regularly",
- "video": {
- "id": 0,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "name": "string",
- "nsfw": true,
- "startAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "deleted": true,
- "blacklisted": true,
- "thumbnailPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "channel": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| filter | string Enum: "video" "comment" "account" only list account, comment or video reports |
| id | integer only list the report with this id |
| predefinedReason | Array of strings (PredefinedAbuseReasons) <= 8 items Items Enum: "violentOrAbusive" "hatefulOrAbusive" "spamOrMisleading" "privacy" "rights" "serverRules" "thumbnails" "captions" predefined reason the listed reports should contain |
| search | string plain search that will match with video titles, reporter names and more |
| searchReportee | string only list reports of a specific reportee |
| searchReporter | string only list reports of a specific reporter |
| searchVideo | string only list reports of a specific video |
| searchVideoChannel | string only list reports of a specific video channel |
| sort | string Enum: "-id" "-createdAt" "-state" Sort abuses by criteria |
| start | integer >= 0 Offset used to paginate results |
| state | integer (AbuseStateSet) Enum: 1 2 3 The abuse state (Pending = |
| videoIs | string Enum: "deleted" "blacklisted" only list deleted or blocklisted videos |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "reason": "The video is a spam",
- "predefinedReasons": [
- "spamOrMisleading"
], - "reporterAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "state": {
- "id": 1,
- "label": "string"
}, - "moderationComment": "Decided to ban the server since it spams us regularly",
- "video": {
- "id": 0,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "name": "string",
- "nsfw": true,
- "startAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "deleted": true,
- "blacklisted": true,
- "thumbnailPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "channel": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "displayName": "Videos of Framasoft",
- "description": "Videos made with <3 by Framasoft",
- "support": "Please support our work on https://soutenir.framasoft.org/en/ <3",
- "publicEmail": "user@example.com",
- "isLocal": true,
- "banners": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "ownerAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "videosCount": 0,
- "viewsPerDay": [
- {
- "date": "2019-08-24T14:15:22Z",
- "views": 0
}
], - "viewsGroupInterval": "day",
- "totalViews": 0
}
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]
}You cannot report a video that you own or on which you are a collaborator (video channel editor).
| reason required | string [ 2 .. 3000 ] characters Reason why the user reports this video |
object | |
object | |
| predefinedReasons | Array of strings (PredefinedAbuseReasons) <= 8 items Items Enum: "violentOrAbusive" "hatefulOrAbusive" "spamOrMisleading" "privacy" "rights" "serverRules" "thumbnails" "captions" Reason categories that help triage reports |
object |
{- "reason": "string",
- "predefinedReasons": [
- "violentOrAbusive"
], - "video": {
- "id": 42,
- "startAt": 0,
- "endAt": 0
}, - "comment": {
- "id": 42
}, - "account": {
- "id": 0
}
}{- "abuse": {
- "id": 42
}
}| abuseId required | integer >= 1 Example: 42 Abuse id |
| moderationComment | string [ 2 .. 3000 ] characters Update the report comment visible only to the moderation team |
| state | integer (AbuseStateSet) Enum: 1 2 3 The abuse state (Pending = |
{- "state": 1,
- "moderationComment": "string"
}| abuseId required | integer >= 1 Example: 42 Abuse id |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "message": "string",
- "byModerator": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
}
]
}Operations dealing with blocking videos (removing them from view and preventing interactions).
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| internalNote | string Internal note for moderators/admins |
| reason | string Reason for the block (public) |
| unfederate | boolean Whether to unfederate the video |
{- "reason": "string",
- "unfederate": true,
- "internalNote": "string"
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| internalNote | string Internal note for moderators/admins |
| reason | string Reason for the block (displayed publicly) |
{- "reason": "string",
- "internalNote": "string"
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| search | string plain search that will match with video titles, and more |
| sort | string Enum: "-id" "name" "-duration" "-views" "-likes" "-dislikes" "-uuid" "-createdAt" Sort blocklists by criteria |
| start | integer >= 0 Offset used to paginate results |
| type | integer Enum: 1 2 list only blocks that match this type:
|
{- "total": 1,
- "data": [
- {
- "id": 42,
- "reason": "string",
- "internalNote": "string",
- "unfederated": true,
- "type": 0,
- "video": {
- "id": 42,
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "shortUUID": "2y84q2MQUMWPbiEcxNXMgC",
- "isLive": true,
- "liveSchedules": [
- {
- "startAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2017-10-01T10:52:46.396Z",
- "publishedAt": "2018-10-01T10:52:46.396Z",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "originallyPublishedAt": "2010-10-01T10:52:46.396Z",
- "category": {
- "id": 15,
- "label": "Science & Technology"
}, - "licence": {
- "id": 2,
- "label": "Attribution - Share Alike"
}, - "language": {
- "id": "en",
- "label": "English"
}, - "privacy": {
- "id": 1,
- "label": "string"
}, - "truncatedDescription": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n",
- "duration": 1419,
- "aspectRatio": 1.778,
- "isLocal": true,
- "name": "What is PeerTube?",
- "thumbnailPath": "string",
- "previewPath": "string",
- "thumbnails": [
- {
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "aspectRatio": "16:9"
}
], - "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "string",
- "aiUsage": {
- "id": 1,
- "label": "string"
}, - "commercialContent": {
- "id": 1,
- "label": "string"
}, - "recommendationScope": {
- "id": 1,
- "label": "string"
}, - "waitTranscoding": true,
- "state": {
- "id": 1,
- "label": "string"
}, - "scheduledUpdate": {
- "privacy": 1,
- "updateAt": "2019-08-24T14:15:22Z"
}, - "blacklisted": true,
- "blacklistedReason": "string",
- "account": {
- "id": 0,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "channel": {
- "id": 42,
- "name": "string",
- "displayName": "string",
- "url": "string",
- "host": "example.com",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}, - "captionLanguages": [
- "fr"
]
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| accounts | Array of strings Example: accounts=goofy@example.com&accounts=donald@example.com Check if these accounts are blocked |
| hosts | Array of strings Example: hosts=example.com Check if these hosts are blocked |
{- "accounts": {
- "account1": {
- "blockedByServer": true,
- "blockedByServerSubscription": "string",
- "blockedByUser": true
}, - "account2": {
- "blockedByServer": true,
- "blockedByServerSubscription": "string",
- "blockedByUser": true
}
}, - "hosts": {
- "host1": {
- "blockedByServer": true,
- "blockedByServerSubscription": "string",
- "blockedByUser": true
}, - "host2": {
- "blockedByServer": true,
- "blockedByServerSubscription": "string",
- "blockedByUser": true
}
}
}Get the list of accounts that the authenticated user has blocked
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| search | string Search query string |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "byAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "blockedAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "blocklistSubscription": {
- "id": 42,
- "name": "string",
- "url": "string"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]
}Add an account to the authenticated user's blocklist
| accountName required | string Account name to block (format: name@host) |
{- "accountName": "user@example.com"
}Get the list of servers that the authenticated user has blocked
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| search | string Search query string |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "byAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "blockedServer": {
- "host": "example.com"
}, - "blocklistSubscription": {
- "id": 42,
- "name": "string",
- "url": "string"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]
}| accounts | Array of strings Example: accounts=goofy@example.com&accounts=donald@example.com Check if these accounts are blocked |
| hosts | Array of strings Example: hosts=example.com Check if these hosts are blocked |
{- "accounts": {
- "account1": {
- "blockedByServer": true,
- "blockedByServerSubscription": "string",
- "blockedByUser": true
}, - "account2": {
- "blockedByServer": true,
- "blockedByServerSubscription": "string",
- "blockedByUser": true
}
}, - "hosts": {
- "host1": {
- "blockedByServer": true,
- "blockedByServerSubscription": "string",
- "blockedByUser": true
}, - "host2": {
- "blockedByServer": true,
- "blockedByServerSubscription": "string",
- "blockedByUser": true
}
}
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
| subscriptionName | string |
{- "total": 1,
- "data": [
- {
- "byAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "blockedAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "blocklistSubscription": {
- "id": 42,
- "name": "string",
- "url": "string"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
| subscriptionName | string |
{- "total": 1,
- "data": [
- {
- "byAccount": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": 42,
- "displayName": "string",
- "description": "string"
}, - "blockedServer": {
- "host": "example.com"
}, - "blocklistSubscription": {
- "id": 42,
- "name": "string",
- "url": "string"
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "name": "string",
- "url": "string",
- "mutedAccountsCount": 0,
- "mutedServersCount": 0,
- "lastSyncAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| url required | string <url> |
{- "url": "string"
}{- "id": 42,
- "name": "string",
- "url": "string",
- "mutedAccountsCount": 0,
- "mutedServersCount": 0,
- "lastSyncAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Automatic tags set on objects (like comments or videos) by specific rules (external link, watched words, etc.)
PeerTube >= 6.2
| accountName required | string account name to list watched words |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "listName": "string",
- "words": [
- "string"
], - "subscriptionUrl": "string",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "createdAt": "2021-05-04T08:01:01.502Z"
}
]
}PeerTube >= 6.2
| accountName required | string |
| listName | string |
| words | Array of strings |
{- "listName": "string",
- "words": [
- "string"
]
}{- "watchedWordsList": {
- "id": 0
}
}PeerTube >= 6.2
| accountName required | string |
| listId required | string list of watched words to update |
| listName | string |
| words | Array of strings |
{- "listName": "string",
- "words": [
- "string"
]
}{- "total": 1,
- "data": [
- {
- "id": 42,
- "listName": "string",
- "words": [
- "string"
], - "subscriptionUrl": "string",
- "updatedAt": "2021-05-04T08:01:01.502Z",
- "createdAt": "2021-05-04T08:01:01.502Z"
}
]
}PeerTube >= 6.2
| listName | string |
| words | Array of strings |
{- "listName": "string",
- "words": [
- "string"
]
}{- "watchedWordsList": {
- "id": 0
}
}PeerTube >= 6.2
| listId required | string list of watched words to update |
| listName | string |
| words | Array of strings |
{- "listName": "string",
- "words": [
- "string"
]
}| accountName required | string account name to list watched words subscriptions |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "name": "string",
- "url": "string",
- "importedWordsCount": 0,
- "lastSyncAt": "2021-05-04T08:01:01.502Z",
- "state": {
- "id": 1,
- "label": "string"
}, - "updatedAt": "2021-05-04T08:01:01.502Z",
- "createdAt": "2021-05-04T08:01:01.502Z"
}
]
}| accountName required | string |
| url required | string <url> |
{- "url": "string"
}{- "id": 42,
- "name": "string",
- "url": "string",
- "importedWordsCount": 0,
- "lastSyncAt": "2021-05-04T08:01:01.502Z",
- "state": {
- "id": 1,
- "label": "string"
}, - "updatedAt": "2021-05-04T08:01:01.502Z",
- "createdAt": "2021-05-04T08:01:01.502Z"
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "name": "string",
- "url": "string",
- "importedWordsCount": 0,
- "lastSyncAt": "2021-05-04T08:01:01.502Z",
- "state": {
- "id": 1,
- "label": "string"
}, - "updatedAt": "2021-05-04T08:01:01.502Z",
- "createdAt": "2021-05-04T08:01:01.502Z"
}
]
}| url required | string <url> |
{- "url": "string"
}{- "id": 42,
- "name": "string",
- "url": "string",
- "importedWordsCount": 0,
- "lastSyncAt": "2021-05-04T08:01:01.502Z",
- "state": {
- "id": 1,
- "label": "string"
}, - "updatedAt": "2021-05-04T08:01:01.502Z",
- "createdAt": "2021-05-04T08:01:01.502Z"
}{- "client": {
- "newFeaturesInfo": true,
- "header": {
- "hideInstanceName": false
}, - "videos": {
- "miniature": {
- "preferAuthorDisplayName": true
}, - "resumableUpload": {
- "maxChunkSize": 0,
- "minChunkSize": 0
}
}, - "browseVideos": {
- "defaultSort": "-publishedAt",
- "defaultScope": "federated",
- "includeScheduledLive": false
}, - "menu": {
- "login": {
- "redirectOnSingleExternalAuth": false
}
}, - "openInApp": {
- "android": {
- "intent": {
- "enabled": true,
- "host": "joinpeertube.org",
- "scheme": "peertube",
}
}, - "ios": {
- "enabled": true,
- "host": "joinpeertube.org",
- "scheme": "peertube",
}
}
}, - "defaults": {
- "publish": {
- "downloadEnabled": true,
- "commentsPolicy": 1,
- "recommendationScope": 1,
- "privacy": 4,
- "licence": null
}, - "live": {
- "saveReplay": false
}, - "p2p": {
- "webapp": {
- "enabled": true
}, - "embed": {
- "enabled": true
}
}, - "player": {
- "theme": "lucide",
- "autoPlay": true
}
}, - "webadmin": {
- "configuration": {
- "edition": {
- "allowed": true
}
}, - "passwordConfirmation": {
- "enabled": true
}
}, - "instance": {
- "name": "PeerTube Nightly",
- "shortDescription": "PeerTube instance updated nightly",
- "isNSFW": false,
- "defaultNSFWPolicy": "do_not_list",
- "defaultClientRoute": "/home",
- "serverCountry": "",
- "support": {
- "text": ""
}, - "social": {
- "blueskyLink": "",
- "mastodonLink": "",
- "xLink": "",
- "externalLink": ""
}, - "customizations": {
- "javascript": "",
- "css": ""
}, - "defaultLanguage": "en-US",
- "avatars": [
- {
- "height": 1500,
- "width": 1500,
- "path": "/lazy-static/avatars/82936e50-9560-42e7-9e4b-d96309f5c9c9.png",
- "createdAt": "2024-05-15T09:12:38.684Z",
- "updatedAt": "2024-05-15T09:12:38.684Z"
}, - {
- "height": 600,
- "width": 600,
- "path": "/lazy-static/avatars/177f70c4-ddef-4bb6-bc96-b00d5e2a0e05.png",
- "createdAt": "2024-05-15T09:12:38.709Z",
- "updatedAt": "2024-05-15T09:12:38.709Z"
}, - {
- "height": 120,
- "width": 120,
- "path": "/lazy-static/avatars/1163da44-0367-4df9-bf10-a1b0dc0e3fb9.png",
- "createdAt": "2024-05-15T09:12:38.719Z",
- "updatedAt": "2024-05-15T09:12:38.719Z"
}, - {
- "height": 48,
- "width": 48,
- "path": "/lazy-static/avatars/abace30f-69ad-4ff2-a954-dea06c5db6eb.png",
- "createdAt": "2024-05-15T09:12:38.749Z",
- "updatedAt": "2024-05-15T09:12:38.749Z"
}
], - "banners": [
- {
- "height": 100,
- "width": 600,
- "path": "/lazy-static/banners/d853452c-f020-4c6f-a4ea-9fc582d68ff2.jpg",
- "createdAt": "2024-04-16T14:09:02.665Z",
- "updatedAt": "2024-04-16T14:09:02.665Z"
}, - {
- "height": 317,
- "width": 1920,
- "path": "/lazy-static/banners/772ff0ae-6cb5-4d1c-b89b-ace85eece196.jpg",
- "createdAt": "2024-04-16T14:09:02.615Z",
- "updatedAt": "2024-04-16T14:09:02.615Z"
}
], - "logo": [
- {
- "height": 1500,
- "width": 1500,
- "type": "favicon",
- "isFallback": true
}, - {
- "height": 600,
- "width": 600,
- "type": "favicon",
- "isFallback": true
}, - {
- "height": 120,
- "width": 120,
- "type": "favicon",
- "isFallback": true
}, - {
- "height": 48,
- "width": 48,
- "type": "favicon",
- "isFallback": true
}, - {
- "height": 1500,
- "width": 1500,
- "type": "header-square",
- "isFallback": true
}, - {
- "height": 600,
- "width": 600,
- "type": "header-square",
- "isFallback": true
}, - {
- "height": 120,
- "width": 120,
- "type": "header-square",
- "isFallback": true
}, - {
- "height": 48,
- "width": 48,
- "type": "header-square",
- "isFallback": true
}, - {
- "height": 1500,
- "width": 1500,
- "type": "header-wide",
- "isFallback": true
}, - {
- "height": 600,
- "width": 600,
- "type": "header-wide",
- "isFallback": true
}, - {
- "height": 120,
- "width": 120,
- "type": "header-wide",
- "isFallback": true
}, - {
- "height": 48,
- "width": 48,
- "type": "header-wide",
- "isFallback": true
}, - {
- "height": 1500,
- "width": 1500,
- "type": "opengraph",
- "isFallback": true
}, - {
- "height": 600,
- "width": 600,
- "type": "opengraph",
- "isFallback": true
}, - {
- "height": 120,
- "width": 120,
- "type": "opengraph",
- "isFallback": true
}, - {
- "height": 48,
- "width": 48,
- "type": "opengraph",
- "isFallback": true
}
]
}, - "search": {
- "remoteUri": {
- "users": true,
- "anonymous": false
}, - "searchIndex": {
- "enabled": true,
- "disableLocalSearch": false,
- "isDefaultSearch": true
}
}, - "plugin": {
- "registered": [
- {
- "npmName": "peertube-plugin-auto-mute",
- "name": "auto-mute",
- "version": "0.0.8",
- "description": "Auto mute plugin for PeerTube",
- "clientScripts": { }
}, - {
- "npmName": "peertube-plugin-auth-openid-connect",
- "name": "auth-openid-connect",
- "version": "2.1.1",
- "description": "Add OpenID connect support to login form in PeerTube.",
- "clientScripts": { }
}, - {
- "npmName": "peertube-plugin-transcoding-custom-quality",
- "name": "transcoding-custom-quality",
- "version": "0.2.0",
- "description": "Set a custom quality for transcoding",
- "clientScripts": { }
}, - {
- "npmName": "peertube-plugin-video-annotation",
- "name": "video-annotation",
- "version": "0.2.0",
- "description": "PeerTube plugin video annotation",
- "clientScripts": {
- "dist/embed-client-plugin.js": {
- "script": "dist/embed-client-plugin.js",
- "scopes": [
- "embed"
]
}, - "dist/video-edit-client-plugin.js": {
- "script": "dist/video-edit-client-plugin.js",
- "scopes": [
- "video-edit"
]
}, - "dist/video-watch-client-plugin.js": {
- "script": "dist/video-watch-client-plugin.js",
- "scopes": [
- "video-watch"
]
}
}
}, - {
- "npmName": "peertube-plugin-livechat",
- "name": "livechat",
- "version": "14.0.4",
- "description": "PeerTube plugin livechat: create chat rooms for your Peertube lives! Comes with many features: federation, moderation tools, chat bot, chat persistence, OBS integration, ...",
- "clientScripts": {
- "dist/client/common-client-plugin.js": {
- "script": "dist/client/common-client-plugin.js",
- "scopes": [
- "common"
]
}, - "dist/client/admin-plugin-client-plugin.js": {
- "script": "dist/client/admin-plugin-client-plugin.js",
- "scopes": [
- "admin-plugin"
]
}
}
}, - {
- "npmName": "peertube-plugin-auth-ldap",
- "name": "auth-ldap",
- "version": "0.3.0",
- "description": "Add LDAP support to login form in PeerTube.",
- "clientScripts": { }
}, - {
- "npmName": "peertube-plugin-matomo",
- "name": "matomo",
- "version": "1.0.4",
- "description": "Matomo plugin that tracks page views on a PeerTube instance.",
- "clientScripts": {
- "dist/common-client-plugin.js": {
- "script": "dist/common-client-plugin.js",
- "scopes": [
- "common"
]
}, - "dist/embed-client-plugin.js": {
- "script": "dist/embed-client-plugin.js",
- "scopes": [
- "embed"
]
}
}
}, - {
- "npmName": "peertube-plugin-ultimate-transcoding",
- "name": "ultimate-transcoding",
- "version": "0.7.4",
- "description": "Ultimate PeerTube transcoding controls with a cleaner settings UI, FFmpeg overrides, and high-quality audio passthrough",
- "clientScripts": {
- "client/admin-plugin-client-plugin.js": {
- "script": "client/admin-plugin-client-plugin.js",
- "scopes": [
- "admin-plugin"
]
}
}
}, - {
- "npmName": "peertube-plugin-ambient-light",
- "name": "ambient-light",
- "version": "1.0.0",
- "description": "Ambilight-style glow around the PeerTube video player",
- "clientScripts": {
- "dist/video-watch-client-plugin.js": {
- "script": "dist/video-watch-client-plugin.js",
- "scopes": [
- "video-watch"
]
}, - "dist/embed-client-plugin.js": {
- "script": "dist/embed-client-plugin.js",
- "scopes": [
- "embed"
]
}
}
}
], - "registeredExternalAuths": [ ],
- "registeredIdAndPassAuths": [
- {
- "npmName": "peertube-plugin-auth-ldap",
- "name": "auth-ldap",
- "version": "0.3.0",
- "authName": "ldap",
- "weight": 100
}
]
}, - "theme": {
- "registered": [
- {
- "npmName": "peertube-theme-dark",
- "name": "dark",
- "version": "3.0.2",
- "description": "PeerTube dark theme",
- "css": [
- "assets/style.css"
], - "clientScripts": { }
}, - {
- "npmName": "peertube-theme-framasoft",
- "name": "framasoft",
- "version": "1.0.0",
- "description": "PeerTube Framasoft theme",
- "css": [
- "assets/style.css"
], - "clientScripts": { }
}
], - "builtIn": [
- {
- "name": "peertube-core-dark-brown"
}, - {
- "name": "peertube-core-light-beige"
}
], - "default": "default",
- "customization": {
- "primaryColor": null,
- "onPrimaryColor": null,
- "foregroundColor": null,
- "backgroundColor": null,
- "backgroundSecondaryColor": null,
- "menuForegroundColor": null,
- "menuBackgroundColor": null,
- "menuBorderRadius": null,
- "headerForegroundColor": null,
- "headerBackgroundColor": null,
- "inputBorderRadius": null
}
}, - "email": {
- "enabled": true
}, - "contactForm": {
- "enabled": true
}, - "serverVersion": "8.3.2-nightly-2026-11-06",
- "serverCommit": "",
- "transcoding": {
- "remoteRunners": {
- "enabled": true
}, - "hls": {
- "enabled": true,
- "splitAudioAndVideo": true
}, - "web_videos": {
- "enabled": false
}, - "enabledResolutions": [
- 0,
- 240,
- 480
], - "profile": "ultimate-transcoding",
- "availableProfiles": [
- "default",
- "custom-quality",
- "ultimate-transcoding"
], - "alwaysTranscodeOriginalResolution": true,
- "alwaysTranscodePodcastOptimizedAudio": true
}, - "live": {
- "enabled": true,
- "allowReplay": true,
- "dvr": {
- "maxWindow": 3600
}, - "latencySetting": {
- "enabled": true
}, - "maxDuration": -1,
- "maxInstanceLives": 20,
- "maxUserLives": 4,
- "transcoding": {
- "enabled": true,
- "remoteRunners": {
- "enabled": true
}, - "enabledResolutions": [
- 360
], - "profile": "default",
- "availableProfiles": [
- "default",
- "custom-quality",
- "ultimate-transcoding"
]
}, - "rtmp": {
- "port": 1935
}
}, - "videoStudio": {
- "enabled": true,
- "remoteRunners": {
- "enabled": false
}
}, - "videoFile": {
- "update": {
- "enabled": true
}
}, - "videoTranscription": {
- "enabled": true,
- "remoteRunners": {
- "enabled": true
}
}, - "import": {
- "videos": {
- "http": {
- "enabled": true
}, - "torrent": {
- "enabled": true
}
}, - "videoChannelSynchronization": {
- "enabled": true
}, - "users": {
- "enabled": true,
- "resumableUpload": {
- "minChunkSize": 0
}
}
}, - "export": {
- "users": {
- "enabled": true,
- "exportExpiration": 172800000,
- "maxUserVideoQuota": 10737418240
}
}, - "autoBlacklist": {
- "videos": {
- "ofUsers": {
- "enabled": true
}
}
}, - "avatar": {
- "file": {
- "size": {
- "max": 8388608
}, - "extensions": [
- ".png",
- ".jpeg",
- ".jpg",
- ".gif",
- ".webp"
]
}
}, - "banner": {
- "file": {
- "size": {
- "max": 8388608
}, - "extensions": [
- ".png",
- ".jpeg",
- ".jpg",
- ".gif",
- ".webp"
]
}
}, - "logo": {
- "file": {
- "size": {
- "max": 8388608
}, - "extensions": [
- ".svg",
- ".png",
- ".jpeg",
- ".jpg",
- ".gif",
- ".webp"
]
}
}, - "video": {
- "image": {
- "extensions": [
- ".png",
- ".jpg",
- ".jpeg",
- ".webp"
], - "size": {
- "max": 8388608
}
}, - "file": {
- "extensions": [
- ".webm",
- ".ogv",
- ".ogg",
- ".mp4",
- ".mkv",
- ".mov",
- ".qt",
- ".mqv",
- ".m4v",
- ".flv",
- ".f4v",
- ".wmv",
- ".avi",
- ".3gp",
- ".3gpp",
- ".3g2",
- ".3gpp2",
- ".nut",
- ".mts",
- ".ts",
- ".m2ts",
- ".mpv",
- ".m2v",
- ".m1v",
- ".mpg",
- ".mpe",
- ".mpeg",
- ".vob",
- ".mxf",
- ".mp3",
- ".wma",
- ".wav",
- ".flac",
- ".aac",
- ".m4a",
- ".m4b",
- ".ac3"
]
}
}, - "videoCaption": {
- "file": {
- "size": {
- "max": 20971520
}, - "extensions": [
- ".vtt",
- ".srt"
]
}
}, - "user": {
- "videoQuota": 524288000,
- "videoQuotaDaily": 104857600
}, - "videoChannels": {
- "maxPerUser": 20
}, - "trending": {
- "videos": {
- "intervalDays": 7,
- "algorithms": {
- "enabled": [
- "best",
- "hot",
- "most-viewed",
- "most-liked"
], - "default": "most-viewed"
}
}
}, - "tracker": {
- "enabled": true
}, - "followings": {
}, - "blocklist": {
- "publicLog": {
- "enabled": true
}
}, - "federation": {
- "enabled": true
}, - "broadcastMessage": {
- "enabled": false,
- "message": "We are currently experiencing technical problems on this instance. We are trying to fix it as soon as possible. Thank you for your understanding.",
- "level": "error",
- "dismissable": true
}, - "homepage": {
- "enabled": true
}, - "openTelemetry": {
- "metrics": {
- "enabled": true,
- "playbackStatsInterval": 15000
}
}, - "views": {
- "videos": {
- "countViewAfter": 10000,
- "remote": {
- "maxAge": 2592000000
}, - "local": {
- "maxAge": -1
}, - "watchingInterval": {
- "anonymous": 5000,
- "users": 5000
}
}
}, - "storyboards": {
- "enabled": true,
- "remoteRunners": {
- "enabled": false
}
}, - "webrtc": {
- "stunServers": [
- "stun:stunserver2025.stunprotocol.org",
- "stun:stun.framasoft.org",
- "stun:stun.ekiga.net",
- "stun:stun.freeswitch.org"
]
}, - "nsfwFlagsSettings": {
- "enabled": true
}, - "fieldsConstraints": {
- "users": {
- "password": {
- "minLength": 8,
- "maxLength": 50
}
}
}, - "signup": {
- "allowed": false,
- "allowedForCurrentIP": true,
- "minimumAge": 16,
- "requiresApproval": true,
- "requiresEmailVerification": true
}
}Translatable information is returned in the language of the request, using the x-peertube-language header
or the Accept-Language header. If the instance has no translation for this language, the default information is returned.
| x-peertube-language | string Locale of the web interface ( |
{- "instance": {
- "name": "PeerTube Nightly",
- "shortDescription": "PeerTube instance updated nightly",
- "description": "This instance is a test instance of the PeerTube project. It is updated to the latest commit in the develop branch every business day, 8pm CET.",
- "terms": "No terms for now. Being a closed test instance, no real terms of use beyond fair use are to be expected.",
- "codeOfConduct": "",
- "hardwareInformation": "",
- "creationReason": "",
- "moderationInformation": "This instance only allows...",
- "administrator": "",
- "maintenanceLifetime": "",
- "businessModel": "",
- "support": {
- "text": ""
}, - "languages": [
- "fr"
], - "categories": [
- 16
], - "banners": [
- {
- "height": 100,
- "width": 600,
- "path": "/lazy-static/banners/d853452c-f020-4c6f-a4ea-9fc582d68ff2.jpg",
- "createdAt": "2024-04-16T14:09:02.665Z",
- "updatedAt": "2024-04-16T14:09:02.665Z"
}, - {
- "height": 317,
- "width": 1920,
- "path": "/lazy-static/banners/772ff0ae-6cb5-4d1c-b89b-ace85eece196.jpg",
- "createdAt": "2024-04-16T14:09:02.615Z",
- "updatedAt": "2024-04-16T14:09:02.615Z"
}
], - "avatars": [
- {
- "height": 1500,
- "width": 1500,
- "path": "/lazy-static/avatars/82936e50-9560-42e7-9e4b-d96309f5c9c9.png",
- "createdAt": "2024-05-15T09:12:38.684Z",
- "updatedAt": "2024-05-15T09:12:38.684Z"
}, - {
- "height": 600,
- "width": 600,
- "path": "/lazy-static/avatars/177f70c4-ddef-4bb6-bc96-b00d5e2a0e05.png",
- "createdAt": "2024-05-15T09:12:38.709Z",
- "updatedAt": "2024-05-15T09:12:38.709Z"
}, - {
- "height": 120,
- "width": 120,
- "path": "/lazy-static/avatars/1163da44-0367-4df9-bf10-a1b0dc0e3fb9.png",
- "createdAt": "2024-05-15T09:12:38.719Z",
- "updatedAt": "2024-05-15T09:12:38.719Z"
}, - {
- "height": 48,
- "width": 48,
- "path": "/lazy-static/avatars/abace30f-69ad-4ff2-a954-dea06c5db6eb.png",
- "createdAt": "2024-05-15T09:12:38.749Z",
- "updatedAt": "2024-05-15T09:12:38.749Z"
}
]
}
}{- "instance": {
- "name": "string",
- "shortDescription": "string",
- "description": "string",
- "terms": "string",
- "codeOfConduct": "string",
- "creationReason": "string",
- "moderationInformation": "string",
- "administrator": "string",
- "maintenanceLifetime": "string",
- "businessModel": "string",
- "hardwareInformation": "string",
- "translations": [
- {
- "language": "fr-FR",
- "shortDescription": "string",
- "description": "string",
- "terms": "string",
- "codeOfConduct": "string",
- "moderationInformation": "string",
- "administrator": "string",
- "creationReason": "string",
- "maintenanceLifetime": "string",
- "businessModel": "string",
- "hardwareInformation": "string",
- "supportText": "string"
}
], - "languages": [
- "string"
], - "categories": [
- 0
], - "isNSFW": true,
- "defaultNSFWPolicy": "string",
- "serverCountry": "string",
- "support": {
- "text": "string"
}, - "social": {
- "externalLink": "string",
- "mastodonLink": "string",
- "blueskyLink": "string",
- "xLink": "string"
}, - "defaultClientRoute": "string",
- "customizations": {
- "javascript": "string",
- "css": "string"
}
}, - "theme": {
- "default": "string"
}, - "services": {
- "twitter": {
- "username": "string"
}
}, - "cache": {
- "previews": {
- "size": 0
}, - "captions": {
- "size": 0
}
}, - "signup": {
- "enabled": true,
- "limit": 0,
- "requiresEmailVerification": true
}, - "admin": {
- "email": "user@example.com"
}, - "contactForm": {
- "enabled": true
}, - "user": {
- "videoQuota": 16810141515,
- "videoQuotaDaily": 1681014151
}, - "transcoding": {
- "enabled": true,
- "originalFile": {
- "keep": true
}, - "allowAdditionalExtensions": true,
- "allowAudioFiles": true,
- "threads": 0,
- "concurrency": 0,
- "profile": "default",
- "resolutions": {
- "0p": true,
- "144p": true,
- "240p": true,
- "360p": true,
- "480p": true,
- "720p": true,
- "1080p": true,
- "1440p": true,
- "2160p": true
}, - "web_videos": {
- "enabled": true
}, - "hls": {
- "enabled": true,
- "splitAudioAndVideo": true
}
}, - "import": {
- "videos": {
- "http": {
- "enabled": true
}, - "torrent": {
- "enabled": true
}
}, - "video_channel_synchronization": {
- "enabled": true
}
}, - "autoBlacklist": {
- "videos": {
- "ofUsers": {
- "enabled": true
}
}
}, - "blocklist": {
- "publicLog": {
- "enabled": true
}
}, - "followers": {
- "instance": {
- "enabled": true,
- "manualApproval": true
}
}, - "storyboard": {
- "enabled": true
}, - "defaults": {
- "publish": {
- "downloadEnabled": true,
- "commentsPolicy": 1,
- "recommendationScope": 1,
- "privacy": 1,
- "licence": 2
}, - "p2p": {
- "webapp": {
- "enabled": true
}, - "embed": {
- "enabled": true
}
}, - "player": {
- "autoPlay": true
}
}
}Changing instance.customizations.javascript or instance.customizations.css requires a password confirmation: set currentPassword at the root of the request body.
Set a cookie so that the next time the client refreshes the HTML of the web interface, PeerTube uses the selected language.
| language required | string or null Language code to set |
{- "language": "en-US"
}Set a cookie so that the next time the client refreshes the HTML of the web interface, PeerTube uses the selected language.
| language required | string or null Language code to set, or |
{- "language": "en-US"
}Managing servers which the instance interacts with is crucial to the concept of federation in PeerTube and external video indexation. The PeerTube server then deals with inter-server ActivityPub operations and propagates information across its social graph by posting activities to actors' inbox endpoints.
| actorType | string Enum: "Person" "Application" "Group" "Service" "Organization" |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
| state | string Enum: "pending" "accepted" |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "follower": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "following": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "score": 0,
- "state": "pending",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| actorType | string Enum: "Person" "Application" "Group" "Service" "Organization" |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
| state | string Enum: "pending" "accepted" |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "follower": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "following": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "string",
- "fileUrl": "string",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "host": "example.com",
- "hostRedundancyAllowed": true,
- "followingCount": 0,
- "followersCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "score": 0,
- "state": "pending",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| handles | Array of strings unique |
| hosts | Array of strings <hostname> unique [ items <hostname > ] |
{- "hosts": [
- "example.com"
], - "handles": [
- "string"
]
}Redundancy is part of the inter-server solidarity that PeerTube fosters. Manage the list of instances you wish to help by seeding their videos according to the policy of video selection of your choice. Note that you have a similar functionality to mirror individual videos, see video mirroring.
| host required | string <hostname> server domain to mirror |
| redundancyAllowed required | boolean allow mirroring of the host's local videos |
{- "redundancyAllowed": true
}Managing plugins installed from a local path or from NPM, or search for new ones.
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| pluginType | integer |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
| uninstalled | boolean |
{- "total": 1,
- "data": [
- {
- "name": "peertube-plugin-auth-ldap",
- "type": 1,
- "latestVersion": "0.0.3",
- "version": "0.0.1",
- "enabled": true,
- "uninstalled": true,
- "peertubeEngine": "2.2.0",
- "description": "string",
- "settings": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| currentPeerTubeEngine | string |
| pluginType | integer |
| search | string |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "name": "peertube-plugin-auth-ldap",
- "type": 1,
- "latestVersion": "0.0.3",
- "version": "0.0.1",
- "enabled": true,
- "uninstalled": true,
- "peertubeEngine": "2.2.0",
- "description": "string",
- "settings": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| npmName required | string |
| currentPassword | string <password> (currentPassword) Password of the authenticated user, required if password confirmation is enabled |
{- "path": "string",
- "currentPassword": "pa$$word"
}| npmName required | string |
| currentPassword | string <password> (currentPassword) Password of the authenticated user, required if password confirmation is enabled |
{- "path": "string",
- "currentPassword": "pa$$word"
}| npmName required | string Example: peertube-plugin-auth-ldap name of the plugin/theme on npmjs.com or in its package.json |
{- "name": "peertube-plugin-auth-ldap",
- "type": 1,
- "latestVersion": "0.0.3",
- "version": "0.0.1",
- "enabled": true,
- "uninstalled": true,
- "peertubeEngine": "2.2.0",
- "description": "string",
- "settings": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}{- "totalUsers": 0,
- "totalDailyActiveUsers": 0,
- "totalWeeklyActiveUsers": 0,
- "totalMonthlyActiveUsers": 0,
- "totalModerators": 0,
- "totalAdmins": 0,
- "totalLocalVideos": 0,
- "totalLocalVideoViews": 0,
- "totalLocalVideoDownloads": 0,
- "totalLocalVideoComments": 0,
- "totalLocalVideoFilesSize": 0,
- "totalVideos": 0,
- "totalVideoComments": 0,
- "totalLocalVideoChannels": 0,
- "totalLocalDailyActiveVideoChannels": 0,
- "totalLocalWeeklyActiveVideoChannels": 0,
- "totalLocalMonthlyActiveVideoChannels": 0,
- "totalLocalPlaylists": 0,
- "totalInstanceFollowers": 0,
- "totalInstanceFollowing": 0,
- "videosRedundancy": [
- {
- "strategy": "string",
- "totalSize": 0,
- "totalUsed": 0,
- "totalVideoFiles": 0,
- "totalVideos": 0
}
], - "totalActivityPubMessagesProcessed": 0,
- "totalActivityPubMessagesSuccesses": 0,
- "totalActivityPubMessagesErrors": 0,
- "activityPubMessagesProcessedPerSecond": 0,
- "totalActivityPubMessagesWaiting": 0,
- "averageRegistrationRequestResponseTimeMs": 0,
- "totalRegistrationRequestsProcessed": 0,
- "totalRegistrationRequests": 0,
- "averageAbuseResponseTimeMs": 0,
- "totalAbusesProcessed": 0,
- "totalAbuses": 0
}These metrics are exposed by OpenTelemetry metrics exporter if enabled.
| downloadedBytesHTTP required | number How many bytes were downloaded with HTTP since the last metric creation |
| downloadedBytesP2P required | number How many bytes were downloaded with P2P since the last metric creation |
| errors required | number How many errors occurred since the last metric creation |
| p2pEnabled required | boolean |
| playerMode required | string Enum: "p2p-media-loader" "web-video" |
| resolutionChanges required | number How many resolution changes occurred since the last metric creation |
| uploadedBytesP2P required | number How many bytes were uploaded with P2P since the last metric creation |
required | id (integer) or UUIDv4 (string) or shortUUID (string) |
| bufferStalled | number How many times buffer has been stalled since the last metric creation |
| fps | number Current player video fps |
| p2pPeers | number P2P peers connected (doesn't include WebSeed peers) |
| resolution | number Current player video resolution |
{- "playerMode": "p2p-media-loader",
- "resolution": 0,
- "fps": 0,
- "p2pEnabled": true,
- "p2pPeers": 0,
- "resolutionChanges": 0,
- "bufferStalled": 0,
- "errors": 0,
- "downloadedBytesP2P": 0,
- "downloadedBytesHTTP": 0,
- "uploadedBytesP2P": 0,
- "videoId": 42
}| level required | any Enum: "error" "warn" |
| message required | string |
| url required | string URL of the current user page |
| meta | string Additional information regarding this log |
| stackTrace | string Stack trace of the error if there is one |
| userAgent | string User agent of the web browser that sends the message |
{- "message": "string",
- "url": "string",
- "level": "error",
- "stackTrace": "string",
- "userAgent": "string",
- "meta": "string"
}User, administration and moderation actions recorded by all the PeerTube processes of the instance.
By default (format=array), returns an array of at most the 10,000 most recent entries of the requested date range, oldest first.
startDate is then required and pagination parameters are ignored.
With format=list, returns a paginated list.
| action | string (AuditLogAction) Enum: "create" "update" "delete" |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| endDate | string <date-time> |
| entityId | integer |
| entityType | string (AuditLogEntityType) Enum: "video" "video-import" "video-live" "video-source" "video-file" "video-caption" "video-chapters" "video-password" "video-embed-privacy" "video-transcoding" "video-transcription" "video-studio-edition" "video-player-settings" "ownership-change" "comment" "channel" "channel-sync" "channel-videos-import" "channel-collaborator" "channel-player-settings" "channel-playlists-order" "playlist" "playlist-element" "playlist-elements-order" "user" "registration" "password-reset" "token-session" "failed-login" "scoped-token" "user-export" "user-import" "abuse" "abuse-message" "video-block" "account-block" "server-block" "blocklist-subscription" "watched-words-list" "watched-words-subscription" "automatic-tag-policy" "config" "instance-image" "instance-homepage" "instance-host" "plugin" "follow" "server-redundancy" "video-redundancy" "job-queue" "job" "runner" "runner-registration-token" "debug-command" "storage-prune" |
| format | string Default: "array" Enum: "array" "list" |
| search | string Search in usernames, IP addresses and audited entities |
| sort | string Enum: "-createdAt" "createdAt" |
| start | integer >= 0 Offset used to paginate results |
| startDate | string <date-time> Required with the default |
[ ]Jobs are long-running tasks enqueued and processed by the instance itself. No additional worker registration is currently available.
| processRoles | Array of strings non-empty Items Enum: "primary" "secondary" Roles of the PeerTube processes that must pause their job queue. Defaults to all the roles. Other processes are notified asynchronously. |
{- "processRoles": [
- "primary"
]
}| processRoles | Array of strings non-empty Items Enum: "primary" "secondary" Roles of the PeerTube processes that must resume their job queue. Defaults to all the roles. Other processes are notified asynchronously. |
{- "processRoles": [
- "primary"
]
}| state required | string Enum: "" "active" "completed" "failed" "waiting" "delayed" The state of the job ('' for for no filter) |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| jobType | string (JobType) Enum: "activitypub-cleaner" "activitypub-follow" "activitypub-http-broadcast" "activitypub-http-broadcast-parallel" "activitypub-http-fetcher" "activitypub-http-unicast" "activitypub-refresher" "actor-keys" "after-video-channel-import" "build-automatic-tags" "build-object-automatic-tags" "create-user-export" "email" "federate-video" "generate-video-storyboard" "import-user-archive" "manage-video-torrent" "move-to-file-system" "move-to-object-storage" "notify" "transcoding-job-builder" "video-channel-import" "video-file-import" "video-files-lifecycle" "video-import" "video-live-ending" "video-redundancy" "video-studio-edition" "video-transcoding" "video-transcription" "videos-stats" job type |
| sort | string Example: sort=-createdAt Sort column |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "state": "active",
- "type": "activitypub-cleaner",
- "data": { },
- "error": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "finishedOn": "2019-08-24T14:15:22Z",
- "processedOn": "2019-08-24T14:15:22Z",
- "canCancel": true
}
]
}Abort a running job and its underlying ffmpeg/child process. Only active jobs that support cancellation can be cancelled.
| jobId required | string The id of the job to cancel |
| jobType required | string (JobType) Enum: "activitypub-cleaner" "activitypub-follow" "activitypub-http-broadcast" "activitypub-http-broadcast-parallel" "activitypub-http-fetcher" "activitypub-http-unicast" "activitypub-refresher" "actor-keys" "after-video-channel-import" "build-automatic-tags" "build-object-automatic-tags" "create-user-export" "email" "federate-video" "generate-video-storyboard" "import-user-archive" "manage-video-torrent" "move-to-file-system" "move-to-object-storage" "notify" "transcoding-job-builder" "video-channel-import" "video-file-import" "video-files-lifecycle" "video-import" "video-live-ending" "video-redundancy" "video-studio-edition" "video-transcoding" "video-transcription" "videos-stats" The type of the job to cancel |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Value: "createdAt" Sort registration tokens by criteria |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 0,
- "registrationToken": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "registeredRunnersCount": 0
}
]
}API used by PeerTube runners
| runnerToken required | string |
| jobTypes | Array of strings Filter jobs depending on their types |
{- "runnerToken": "string",
- "jobTypes": [
- "string"
]
}{- "availableJobs": [
- {
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "type": "vod-web-video-transcoding",
- "payload": {
- "input": {
- "videoFileUrl": "string"
}, - "output": {
- "resolution": 0,
- "fps": 0
}
}
}
]
}API used by PeerTube runners
| jobUUID required | string <uuid> (UUIDv4) = 36 characters ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 9c9de5e8-0a1e-484a-b099-e80766180a6d |
| runnerToken required | string |
{- "runnerToken": "string"
}{- "job": {
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "type": "vod-web-video-transcoding",
- "state": {
- "id": 1,
- "label": "Processing"
}, - "payload": {
- "input": {
- "videoFileUrl": "string"
}, - "output": {
- "resolution": 0,
- "fps": 0
}
}, - "failures": 0,
- "error": "string",
- "progress": 0,
- "priority": 0,
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "startedAt": "2019-08-24T14:15:22Z",
- "finishedAt": "2019-08-24T14:15:22Z",
- "parent": {
- "type": "vod-web-video-transcoding",
- "state": {
- "id": 1,
- "label": "Processing"
}, - "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d"
}, - "runner": {
- "id": 0,
- "name": "string",
- "description": "string"
}, - "jobToken": "string"
}
}API used by PeerTube runners
| jobUUID required | string <uuid> (UUIDv4) = 36 characters ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 9c9de5e8-0a1e-484a-b099-e80766180a6d |
| jobToken required | string |
| reason required | string Why the runner aborts this job |
| runnerToken required | string |
{- "runnerToken": "string",
- "jobToken": "string",
- "reason": "string"
}API used by PeerTube runners
| jobUUID required | string <uuid> (UUIDv4) = 36 characters ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 9c9de5e8-0a1e-484a-b099-e80766180a6d |
| jobToken required | string |
| runnerToken required | string |
object | |
| progress | integer Update job progression percentage (optional) |
{- "runnerToken": "string",
- "jobToken": "string",
- "progress": 0,
- "payload": {
- "type": "add-chunk",
- "masterPlaylistFile": "string",
- "resolutionPlaylistFile": "string",
- "resolutionPlaylistFilename": "string",
- "videoChunkFile": "string",
- "videoChunkFilename": "string"
}
}API used by PeerTube runners
| jobUUID required | string <uuid> (UUIDv4) = 36 characters ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 9c9de5e8-0a1e-484a-b099-e80766180a6d |
| jobToken required | string |
| message required | string Why the runner failed to process this job |
| runnerToken required | string |
{- "runnerToken": "string",
- "jobToken": "string",
- "message": "string"
}API used by PeerTube runners
| jobUUID required | string <uuid> (UUIDv4) = 36 characters ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 9c9de5e8-0a1e-484a-b099-e80766180a6d |
| jobToken required | string |
required | VOD web video transcoding (object) or VOD HLS transcoding (object) or VOD audio merge transcoding (object) or Live RTMP to HLS transcoding (object) |
| runnerToken required | string |
{- "runnerToken": "string",
- "jobToken": "string",
- "payload": {
- "videoFile": "string"
}
}API used by PeerTube runners.
| jobUUID required | string <uuid> (UUIDv4) = 36 characters ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 9c9de5e8-0a1e-484a-b099-e80766180a6d |
required | id (integer) or UUIDv4 (string) or shortUUID (string) Video id or UUID |
| jobToken required | string |
| runnerToken required | string |
{- "runnerToken": "string",
- "jobToken": "string"
}API used by PeerTube runners.
| jobUUID required | string <uuid> (UUIDv4) = 36 characters ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 9c9de5e8-0a1e-484a-b099-e80766180a6d |
required | id (integer) or UUIDv4 (string) or shortUUID (string) Video id or UUID |
| jobToken required | string |
| runnerToken required | string |
{- "runnerToken": "string",
- "jobToken": "string"
}API used by PeerTube runners.
| jobUUID required | string <uuid> (UUIDv4) = 36 characters ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 9c9de5e8-0a1e-484a-b099-e80766180a6d |
required | id (integer) or UUIDv4 (string) or shortUUID (string) Video id or UUID |
| jobToken required | string |
| runnerToken required | string |
{- "runnerToken": "string",
- "jobToken": "string"
}API used by PeerTube runners.
| jobUUID required | string <uuid> (UUIDv4) = 36 characters ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 9c9de5e8-0a1e-484a-b099-e80766180a6d |
required | id (integer) or UUIDv4 (string) or shortUUID (string) Video id or UUID |
| jobToken required | string |
| runnerToken required | string |
{- "runnerToken": "string",
- "jobToken": "string"
}API used by PeerTube runners.
| filename required | string Name of the task file to download |
| jobUUID required | string <uuid> (UUIDv4) = 36 characters ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 9c9de5e8-0a1e-484a-b099-e80766180a6d |
required | id (integer) or UUIDv4 (string) or shortUUID (string) Video id or UUID |
| jobToken required | string |
| runnerToken required | string |
{- "runnerToken": "string",
- "jobToken": "string"
}The endpoint will first cancel the job if needed, and then remove it from the database. Children jobs will also be removed
| jobUUID required | string <uuid> (UUIDv4) = 36 characters ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 9c9de5e8-0a1e-484a-b099-e80766180a6d |
| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| search | string Plain text search, applied to various parts of the model depending on endpoint |
| sort | string Enum: "updatedAt" "createdAt" "priority" "state" "progress" Sort runner jobs by criteria |
| start | integer >= 0 Offset used to paginate results |
| stateOneOf | Array of integers (RunnerJobState) Items Enum: 1 2 3 4 5 6 7 8 |
| typeOneOf | Array of strings (RunnerJobType) Items Enum: "vod-web-video-transcoding" "vod-hls-transcoding" "vod-audio-merge-transcoding" "live-rtmp-hls-transcoding" |
{- "total": 1,
- "data": [
- {
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "type": "vod-web-video-transcoding",
- "state": {
- "id": 1,
- "label": "Processing"
}, - "payload": {
- "input": {
- "videoFileUrl": "string"
}, - "output": {
- "resolution": 0,
- "fps": 0
}
}, - "failures": 0,
- "error": "string",
- "progress": 0,
- "priority": 0,
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "startedAt": "2019-08-24T14:15:22Z",
- "finishedAt": "2019-08-24T14:15:22Z",
- "parent": {
- "type": "vod-web-video-transcoding",
- "state": {
- "id": 1,
- "label": "Processing"
}, - "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d"
}, - "runner": {
- "id": 0,
- "name": "string",
- "description": "string"
}, - "privatePayload": { }
}
]
}API used by PeerTube runners
| name required | string |
| registrationToken required | string |
| description | string |
{- "registrationToken": "string",
- "name": "string",
- "description": "string"
}{- "id": 0,
- "runnerToken": "string"
}| count | integer [ 1 .. 100 ] Default: 15 Number of items to return |
| sort | string Value: "createdAt" Sort runners by criteria |
| start | integer >= 0 Offset used to paginate results |
{- "total": 1,
- "data": [
- {
- "id": 0,
- "name": "string",
- "description": "string",
- "ip": "string",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "lastContact": "2019-08-24T14:15:22Z"
}
]
}