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.
Each parameter is evaluated on its own against a set of rules before the route validator proceeds with potential testing involving parameter combinations. Errors coming from validation errors appear earlier and benefit from a more detailed error description:
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', and
invalid-params.<field>.value reports the value that didn't pass validation whose invalid-params.<field>.msg
is about.
Some fields could be included with previous versions. They are still included but their use is deprecated:
error: superseded by detailWe 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 |
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.
| videoId required | integer >= 1 Example: 42 The video id |
| 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 |
| 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>Sun, 16 Nov 2025 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/177f70c4-ddef-4bb6-bc96-b00d5e2a0e05.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[Hybrid GPU support fixed? Android sideloading is back, Valve's Linux push - Linux Weekly News - Basil Disco]]></title> <link>https://peertube2.cpy.re/w/tfBZJbgsmUk3Fcfi6B5Kef;threadId=182423</link> <guid>https://peertube2.cpy.re/w/tfBZJbgsmUk3Fcfi6B5Kef;threadId=182423</guid> <pubDate>Sun, 16 Nov 2025 03:40:58 GMT</pubDate> <content:encoded><![CDATA[<p>Glad Google walked back on the sideloading thing, though we'll have to see how annoying that 'warning' they mentioned will be.</p> <p>Also, GNOME Parental Controls looks cool. Hopefully, it'll also replace the weird parental controls bloat app that ships with Fedora.</p> ]]></content:encoded> <dc:creator>Basil Disco</dc:creator> </item> <item> <title><![CDATA[Paysan Pays Paysage (épisode 09/21) - lenvolee]]></title> <link>https://peertube2.cpy.re/w/5JiRPnjx8xsV8CEci1Lywx;threadId=182421</link> <guid>https://peertube2.cpy.re/w/5JiRPnjx8xsV8CEci1Lywx;threadId=182421</guid> <pubDate>Sat, 15 Nov 2025 20:15:29 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://indymotion.fr/accounts/claire_ananos" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>claire_ananos</span></a></span> Dans la scène ou le chien est au premier plan, est ce que vous savez quelles plantes sont autour ? On dirait de l'armoise</p>]]></content:encoded> <dc:creator>lenvolee</dc:creator> </item> <item> <title><![CDATA[Comment les armes soniques vont aider les policiers à mater les foules - Rock'n'Roll_φapy 🔻]]></title> <link>https://peertube2.cpy.re/w/41i5mX3dViRtbBXhuRXPWH;threadId=182419</link> <guid>https://peertube2.cpy.re/w/41i5mX3dViRtbBXhuRXPWH;threadId=182419</guid> <pubDate>Sat, 15 Nov 2025 17:31:20 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://video.blast-info.fr/accounts/blast" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>blast</span></a></span> Bientôt chez nous ...</p>]]></content:encoded> <dc:creator>Rock'n'Roll_φapy 🔻</dc:creator> </item> <item> <title><![CDATA[I'm ditching Firefox & Mozilla, and I think you should too... - Betterthanlast]]></title> <link>https://peertube2.cpy.re/w/fAvzwwK2abKCGUea6FT9va;threadId=182416</link> <guid>https://peertube2.cpy.re/w/fAvzwwK2abKCGUea6FT9va;threadId=182416</guid> <pubDate>Sat, 15 Nov 2025 13:41:54 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://tilvids.com/accounts/thelinuxexperiment" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>thelinuxexperiment</span></a></span> Came back to this video because they are already releasing yet another AI thing... It's not looking any better 8 months later</p>]]></content:encoded> <dc:creator>Betterthanlast</dc:creator> </item> <item> <title><![CDATA[Hybrid GPU support fixed? Android sideloading is back, Valve's Linux push - Linux Weekly News - bittin]]></title> <link>https://peertube2.cpy.re/w/tfBZJbgsmUk3Fcfi6B5Kef;threadId=182415</link> <guid>https://peertube2.cpy.re/w/tfBZJbgsmUk3Fcfi6B5Kef;threadId=182415</guid> <pubDate>Sat, 15 Nov 2025 12:32:01 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://tilvids.com/accounts/thelinuxexperiment" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>thelinuxexperiment</span></a></span> listening to the audio version on my way to visit the family</p>]]></content:encoded> <dc:creator>bittin</dc:creator> </item> <item> <title><![CDATA[Hybrid GPU support fixed? Android sideloading is back, Valve's Linux push - Linux Weekly News - Tisha Tiger / Neliger]]></title> <link>https://peertube2.cpy.re/w/tfBZJbgsmUk3Fcfi6B5Kef;threadId=182414</link> <guid>https://peertube2.cpy.re/w/tfBZJbgsmUk3Fcfi6B5Kef;threadId=182414</guid> <pubDate>Sat, 15 Nov 2025 12:18:22 GMT</pubDate> <content:encoded><![CDATA[<p>Yeah I had very hard time with multi-GPU on Linux back in the days 😹</p> ]]></content:encoded> <dc:creator>Tisha Tiger / Neliger</dc:creator> </item> <item> <title><![CDATA[16 cool new (and old) GNOME extensions & applications! - Stefan Ihringer]]></title> <link>https://peertube2.cpy.re/w/jbdvvRhhdf9PLpAPcwvVGz;threadId=182413</link> <guid>https://peertube2.cpy.re/w/jbdvvRhhdf9PLpAPcwvVGz;threadId=182413</guid> <pubDate>Sat, 15 Nov 2025 12:03:12 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://tilvids.com/accounts/thelinuxexperiment" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>thelinuxexperiment</span></a></span> Thank you so much for the effort you're putting into your reviews.</p>]]></content:encoded> <dc:creator>Stefan Ihringer</dc:creator> </item> <item> <title><![CDATA[New Steam Machine (console), Frame (VR Headset) and Controller announced ! - Tisha Tiger / Neliger]]></title> <link>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182412</link> <guid>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182412</guid> <pubDate>Sat, 15 Nov 2025 09:55:29 GMT</pubDate> <content:encoded><![CDATA[<p>Tha Frame looks so good 😻</p> ]]></content:encoded> <dc:creator>Tisha Tiger / Neliger</dc:creator> </item> <item> <title><![CDATA[Le plan de l’extrême droite pour éliminer LFI - InternetDev-Anti-Communicant🍉]]></title> <link>https://peertube2.cpy.re/w/19RKVHW6yAArS5YDBb87JE;threadId=182411</link> <guid>https://peertube2.cpy.re/w/19RKVHW6yAArS5YDBb87JE;threadId=182411</guid> <pubDate>Sat, 15 Nov 2025 03:34:57 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://video.blast-info.fr/accounts/blast" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>blast</span></a></span> </p><p>Faire confiance aux mensonges et diffamations de <a href="https://mastodon.social/tags/Franceintox" class="mention hashtag" rel="noopener noreferrer" target="_blank">#<span>Franceintox</span></a> traitant régulièrement <a href="https://mastodon.social/tags/LFI" class="mention hashtag" rel="noopener noreferrer" target="_blank">#<span>LFI</span></a> d'antisémite ?</p>]]></content:encoded> <dc:creator>InternetDev-Anti-Communicant🍉</dc:creator> </item> <item> <title><![CDATA[New Steam Machine (console), Frame (VR Headset) and Controller announced ! - Neptune]]></title> <link>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182410</link> <guid>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182410</guid> <pubDate>Sat, 15 Nov 2025 03:10:41 GMT</pubDate> <content:encoded><![CDATA[<p>The Steam Frame actually will be able to play majority of the VR games out there(i.e.; all the ones you can play on Linux like Beat Saber, Gorilla Tag, Boneworks, Half-Life: Aylx, etc). As Valve has contributed and worked an Open Source project named FEX into Proton. FEX emulates x86 applications and games onto ARM devices. Which means you'll be able to play majority of the VR games out there on the Steam Frame, standalone.</p> ]]></content:encoded> <dc:creator>Neptune</dc:creator> </item> <item> <title><![CDATA[Entropie : la transition condamnée ? (1/2) (ft. @ApresLaBiere ) - jeanlou]]></title> <link>https://peertube2.cpy.re/w/pFVhwUq1bnjd6drngrchWg;threadId=182409</link> <guid>https://peertube2.cpy.re/w/pFVhwUq1bnjd6drngrchWg;threadId=182409</guid> <pubDate>Fri, 14 Nov 2025 19:57:53 GMT</pubDate> <content:encoded><![CDATA[<p>Pour celles et ceux que ça intéresse, je viens d'uploader la suite de cette collaboration sur ma chaîne sur la même instance là 👉 <a href="https://skeptikon.fr/w/fqinVrsqYLhyrvm8gtu2Gs" target="_blank" rel="noopener noreferrer">https://skeptikon.fr/w/fqinVrsqYLhyrvm8gtu2Gs</a></p> ]]></content:encoded> <dc:creator>jeanlou</dc:creator> </item> <item> <title><![CDATA[New Steam Machine (console), Frame (VR Headset) and Controller announced ! - jonnobleuk]]></title> <link>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182391</link> <guid>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182391</guid> <pubDate>Fri, 14 Nov 2025 13:54:51 GMT</pubDate> <content:encoded><![CDATA[<p>@RandomMusickMayhem@metalhead.club @asterisk@social.linux.pizza from the announcement "Yes, Steam Machine is optimized for gaming, but it's still your PC. Install your own apps, or even another operating system. Who are we to tell you how to use your computer?"</p> ]]></content:encoded> <dc:creator>jonnobleuk</dc:creator> </item> <item> <title><![CDATA[New Steam Machine (console), Frame (VR Headset) and Controller announced ! - Chris Sears]]></title> <link>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182405</link> <guid>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182405</guid> <pubDate>Fri, 14 Nov 2025 05:39:34 GMT</pubDate> <content:encoded><![CDATA[<p>I had to pause the video to listen to a certain Daft Punk song just to get it out of my head.</p> ]]></content:encoded> <dc:creator>Chris Sears</dc:creator> </item> <item> <title><![CDATA[Please stop asking for One Single Linux Desktop or Distro - jakob :peertube:]]></title> <link>https://peertube2.cpy.re/w/voDpE1tzPqGfZ9Q2eVL8os;threadId=182404</link> <guid>https://peertube2.cpy.re/w/voDpE1tzPqGfZ9Q2eVL8os;threadId=182404</guid> <pubDate>Thu, 13 Nov 2025 21:34:29 GMT</pubDate> <content:encoded><![CDATA[<p>I really love your enthusiasm for linux and its diversity in ecosystem. 😄</p> ]]></content:encoded> <dc:creator>jakob :peertube:</dc:creator> </item> <item> <title><![CDATA[Please stop asking for One Single Linux Desktop or Distro - Fmutix]]></title> <link>https://peertube2.cpy.re/w/voDpE1tzPqGfZ9Q2eVL8os;threadId=182403</link> <guid>https://peertube2.cpy.re/w/voDpE1tzPqGfZ9Q2eVL8os;threadId=182403</guid> <pubDate>Thu, 13 Nov 2025 18:35:18 GMT</pubDate> <content:encoded><![CDATA[<p>A great real-talk video. 🤗</p> <p>I think it will take some time before Linux is widely accepted. But the first steps have already been taken. I like the many possibilities it offers, even if it can be difficult for some beginners to find the right one.<br /> Thanks for the video!</p> ]]></content:encoded> <dc:creator>Fmutix</dc:creator> </item> <item> <title><![CDATA[Please stop asking for One Single Linux Desktop or Distro - NeatNit]]></title> <link>https://peertube2.cpy.re/w/voDpE1tzPqGfZ9Q2eVL8os;threadId=182383</link> <guid>https://peertube2.cpy.re/w/voDpE1tzPqGfZ9Q2eVL8os;threadId=182383</guid> <pubDate>Thu, 13 Nov 2025 16:07:25 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://mastodon.social/@CountHoldem" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>CountHoldem</span></a></span> <span><a href="https://tilvids.com/accounts/thelinuxexperiment" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>thelinuxexperiment</span></a></span> I don't see how that's relevant, but in general - that's impossible.</p><p>See <a href="https://mastodon.world/@Mer__edith/115445702978061919" target="_blank" rel="noopener noreferrer"><span>https://</span><span>mastodon.world/@Mer__edith/115</span><span>445702978061919</span></a> about Signal having no choice but to use AWS.</p><p>As for Gnome, I don't know why they even need to use a hyperscaler at all, but assuming they do, there's no alternative.</p>]]></content:encoded> <dc:creator>NeatNit</dc:creator> </item> <item> <title><![CDATA[New Steam Machine (console), Frame (VR Headset) and Controller announced ! - Don't Let Me Fall]]></title> <link>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182400</link> <guid>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182400</guid> <pubDate>Thu, 13 Nov 2025 15:49:23 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://tilvids.com/accounts/thelinuxexperiment" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>thelinuxexperiment</span></a></span> </p><p>Been eyeing Framework laptops for a few years now, but the Steam Machine is looking great. My only issue with it so far is the fact that I prefer laptops.</p><p>It may just end up being my first Linux desktop. Haven't used a personal desktop since Windows XP for context. Only used Windows desktops at work, and even that was a while back (2018).</p>]]></content:encoded> <dc:creator>Don't Let Me Fall</dc:creator> </item> <item> <title><![CDATA[Cheap, low-effort, perfect filament splicing method - lemgandi]]></title> <link>https://peertube2.cpy.re/w/nXBYm21kqQTgG2dQuv6vBu;threadId=182399</link> <guid>https://peertube2.cpy.re/w/nXBYm21kqQTgG2dQuv6vBu;threadId=182399</guid> <pubDate>Thu, 13 Nov 2025 15:17:07 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://toobnix.org/accounts/ppc" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>ppc</span></a></span> That's very cool. I'll try it with my next near-empty spool.</p>]]></content:encoded> <dc:creator>lemgandi</dc:creator> </item> <item> <title><![CDATA[New Steam Machine (console), Frame (VR Headset) and Controller announced ! - Fern]]></title> <link>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182398</link> <guid>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182398</guid> <pubDate>Thu, 13 Nov 2025 14:44:14 GMT</pubDate> <content:encoded><![CDATA[<p>If the price is right, I can't see the steam machine being a total failure.<br /> The way I see it is its a console with a much larger game library and the freedom to do whatever I want on it. I have lots of GoG games, RetroArch stuff, etc. that would work on this PLUS I can use it for streaming etc? Idk, seems like a no brainer to me. It'll likely dominate my living room assuming its not $1000 or something like that.</p> ]]></content:encoded> <dc:creator>Fern</dc:creator> </item> <item> <title><![CDATA[New Steam Machine (console), Frame (VR Headset) and Controller announced ! - Asterisk 🇨🇦]]></title> <link>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182391</link> <guid>https://peertube2.cpy.re/w/eReXLVdz6s1ZL5oeo2w21e;threadId=182391</guid> <pubDate>Thu, 13 Nov 2025 14:16:19 GMT</pubDate> <content:encoded><![CDATA[<p><span><a href="https://metalhead.club/@RandomMusickMayhem" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>RandomMusickMayhem</span></a></span> <span><a href="https://tilvids.com/accounts/thelinuxexperiment" class="u-url mention" target="_blank" rel="noopener noreferrer">@<span>thelinuxexperiment</span></a></span> I mean in practice since you won’t get a lot of SteamOS’s benefits or better performance.</p>]]></content:encoded> <dc:creator>Asterisk 🇨🇦</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>Sun, 16 Nov 2025 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/177f70c4-ddef-4bb6-bc96-b00d5e2a0e05.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[Un vrai kiff. - La chronique de Pierre-Emmanuel Barré]]></title> <link>https://peertube2.cpy.re/w/fxdDkAq5rQPJgsnwKY3Nwv</link> <guid>https://peertube2.cpy.re/w/fxdDkAq5rQPJgsnwKY3Nwv</guid> <pubDate>Sun, 16 Nov 2025 00:38:38 GMT</pubDate> <description><![CDATA[Not all policemen ! (But beaucoup quand même.) ⚠️ ERRATUM ! Laurent Nunez, il était secrétaire d’état au ministère de l’intérieur ! Pardon, j'ai fait une erreur. C'est 56627717 de moins que Laurent Nunez dans sa carrière. La chronique de ...]]></description> <content:encoded><![CDATA[<p>Not all policemen !</p> <p>(But beaucoup quand même.)</p> <p>⚠️ ERRATUM ! Laurent Nunez, il était secrétaire d’état au ministère de l’intérieur ! Pardon, j'ai fait une erreur. C'est 56627717 de moins que Laurent Nunez dans sa carrière.</p> <p>La chronique de Pierre-Emmanuel Barré dans La dernière du dimanche 9 novembre 2025 à Toulouse sur Radio Nova.</p> <p>La dernière, le dimanche à 18h en direct sur Radio Nova et à tout moment en podcast et en vidéo.</p> <p>🔔 Abonnez-vous à notre chaîne : <a href="http://j.mp/1cT7DvA" target="_blank" rel="noopener noreferrer">http://j.mp/1cT7DvA</a><br /> Radio Nova : <a href="http://www.nova.fr" target="_blank" rel="noopener noreferrer">http://www.nova.fr</a><br /> Notre playlist officielle Le Grand Mix : <a href="https://linktr.ee/laradionova" target="_blank" rel="noopener noreferrer">https://linktr.ee/laradionova</a></p> ]]></content:encoded> <dc:creator>Divers...</dc:creator> <category>News & Politics</category> <enclosure length="255116529" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/75bbca44-0f21-4a37-b80d-37e47cb40d11?videoFileIds=5523470"/> <media:community> <media:statistics views="3"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/fxdDkAq5rQPJgsnwKY3Nwv"/> <media:player url="https://peertube2.cpy.re/w/fxdDkAq5rQPJgsnwKY3Nwv"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/7e6cc544-25df-4a05-9249-aef090c2d480-2160-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/5537f047-b629-4e0c-8286-83e448b31001-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/5e95093f-31b6-4497-b323-7e50467e8d5a-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/0e248679-8018-4ca8-9e7b-fde3f2958889-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/96e5e0e9-3c06-4acf-9a6e-3e1772c3a433-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/947a095e-df2f-4337-8fb9-841ff03a3100-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="2160" fileSize="255116529" url="https://static.indymotion.fr/streaming-playlists/hls/75bbca44-0f21-4a37-b80d-37e47cb40d11/e984d12a-9431-4226-b3af-93dccec8a645-2160-fragmented.mp4" framerate="30" duration="345" isDefault="true"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="83448266" url="https://static.indymotion.fr/streaming-playlists/hls/75bbca44-0f21-4a37-b80d-37e47cb40d11/fe199b5c-25c3-4c2a-b6cd-11b0610d2059-1080-fragmented.mp4" framerate="30" duration="345" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="43030460" url="https://static.indymotion.fr/streaming-playlists/hls/75bbca44-0f21-4a37-b80d-37e47cb40d11/0a3cd72c-3a75-4cc4-9304-241ec689317d-720-fragmented.mp4" framerate="30" duration="345" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="24877563" url="https://static.indymotion.fr/streaming-playlists/hls/75bbca44-0f21-4a37-b80d-37e47cb40d11/306feace-c58b-406f-8751-6046d0d296f7-480-fragmented.mp4" framerate="30" duration="345" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="12096886" url="https://static.indymotion.fr/streaming-playlists/hls/75bbca44-0f21-4a37-b80d-37e47cb40d11/5a7b9926-a695-418f-8140-c87b41787a2e-240-fragmented.mp4" framerate="30" duration="345" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="5706156" url="https://static.indymotion.fr/streaming-playlists/hls/75bbca44-0f21-4a37-b80d-37e47cb40d11/73ccb7c0-2df9-4c66-b738-e179398144e8-0-fragmented.mp4" framerate="0" duration="345" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/cac06e38-7474-4aad-bec1-182d8dd1468b.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/c00c879e-364e-4712-90b9-d6d8d2dfe65b.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Un vrai kiff. - La chronique de Pierre-Emmanuel Barré</media:title> <media:description type="plain">Not all policemen ! (But beaucoup quand même.) ⚠️ ERRATUM ! Laurent Nunez, il était secrétaire d’état au ministère de l’intérieur ! Pardon, j'ai fait une erreur. C'est 56627717 de moins que Laurent Nunez dans sa carrière. La chronique de ...</media:description> </item> <item> <title><![CDATA[Les stats sur la voiture et le vélo que devraient entendre tous nos dirigeants]]></title> <link>https://peertube2.cpy.re/w/hQrTZzM92dXwjWoLrRoatM</link> <guid>https://peertube2.cpy.re/w/hQrTZzM92dXwjWoLrRoatM</guid> <pubDate>Sat, 15 Nov 2025 21:04:08 GMT</pubDate> <description><![CDATA[Jean-Marc Jancovici, expert énergie-climat, président du Shift Project, et Olivier Schneider, président de la Fédération française des usagers de la bicyclette, nous donnent des statistiques plus qu'importantes pour comprendre les enjeux entre les...]]></description> <content:encoded><![CDATA[<p>Jean-Marc Jancovici, expert énergie-climat, président du Shift Project, et Olivier Schneider, président de la Fédération française des usagers de la bicyclette, nous donnent des statistiques plus qu'importantes pour comprendre les enjeux entre les différentes mobilités : vélo et automobile. Chaud pour pédaler ?</p> <p>Réduire la qualité de la vidéo.</p> <p>00:00 Jean-marc Jancovici<br /> 03:40 Olivier Schneider</p> <p>S'abonner à la chaîne <a href="https://www.youtube.com/@greenletterclub4184" target="_blank" rel="noopener noreferrer">https://www.youtube.com/@greenletterclub4184</a><br /> Soutenir la chaîne Greenletter Club <a href="https://fr.tipeee.com/greenletter-club" target="_blank" rel="noopener noreferrer">https://fr.tipeee.com/greenletter-club</a><br /> S'abonner à la chaîne <a href="https://www.youtube.com/@rtl_france" target="_blank" rel="noopener noreferrer">https://www.youtube.com/@rtl_france</a></p> <p>Pour changer le système :<br /> Réclamer le RIC constituant : <a href="https://petitions.assemblee-nationale.fr/initiatives/i-2082" target="_blank" rel="noopener noreferrer">https://petitions.assemblee-nationale.fr/initiatives/i-2082</a><br /> Changer de banque: <a href="https://www.lanef.com/" target="_blank" rel="noopener noreferrer">https://www.lanef.com/</a> <a href="https://change-de-banque.org/particulier/" target="_blank" rel="noopener noreferrer">https://change-de-banque.org/particulier/</a><br /> Passer à l'action militante: <a href="https://extinctionrebellion.fr/" target="_blank" rel="noopener noreferrer">https://extinctionrebellion.fr/</a> <a href="https://ripostealimentaire.fr/" target="_blank" rel="noopener noreferrer">https://ripostealimentaire.fr/</a><br /> Changer de travail : <a href="https://jobs.makesense.org/fr" target="_blank" rel="noopener noreferrer">https://jobs.makesense.org/fr</a></p> <p>Source<br /> Janco RTL <a href="https://www.rtl.fr/actu/debats-societe/jean-marc-jancovici-explique-pourquoi-avoir-plus-de-pistes-cyclables-est-un-investissement-gagnant-sur-tous-les-plans-7900373632" target="_blank" rel="noopener noreferrer">https://www.rtl.fr/actu/debats-societe/jean-marc-jancovici-explique-pourquoi-avoir-plus-de-pistes-cyclables-est-un-investissement-gagnant-sur-tous-les-plans-7900373632</a><br /> Schneider GLC <a href="https://www.youtube.com/watch?v=E0sOlxuyTqk" target="_blank" rel="noopener noreferrer">https://www.youtube.com/watch?v=E0sOlxuyTqk</a><br /> Musique <a href="https://www.youtube.com/watch?v=39PVEaSytpo" target="_blank" rel="noopener noreferrer">https://www.youtube.com/watch?v=39PVEaSytpo</a></p> <p>Réponses au quiz de fin :</p> <p>/!\ Description à ne pas lire avant d'avoir vu la vidéo entièrement<br /> /!\</p> <p>/!\</p> <p>/!\ <br /> /!\</p> <p>Combien de kilomètres de pistes cyclables et de routes avons-nous en France ?<br /> 20 000 km de piste cyclable.<br /> 1,1 million de km de route.</p> <p>Quelle est la surface dynamique d'une voiture à 130km/h ?<br /> 500 m².</p> <p>Qu'est-ce qui a tué le commerce de centre-ville ?<br /> Les chaînes de grande distribution.</p> <p>#jancovici #schneider #écologie #vélo #automobile #voiture #bagnole #bicyclette #route #pistecyclable #cycle #emprise #janco #JMJ #GLC #greenletterclub #RTL #interview #extrait #ethiqueettac</p> ]]></content:encoded> <dc:creator>ethique_et_tac</dc:creator> <enclosure length="54249351" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/8855e0f6-7056-41a9-ad86-264738e1ccaf?videoFileIds=5523404"/> <media:community> <media:statistics views="11"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/hQrTZzM92dXwjWoLrRoatM"/> <media:player url="https://peertube2.cpy.re/w/hQrTZzM92dXwjWoLrRoatM"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/5d425fea-809b-428c-b099-65f347356244-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/31f78bb5-9ad1-43ff-bbcf-fc5573c7d3f0-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/16cef61f-ef50-452c-a456-92c5ba181b3d-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/e0e87848-c437-47b4-a805-259fc8aec592-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="54249351" url="https://static.indymotion.fr/streaming-playlists/hls/8855e0f6-7056-41a9-ad86-264738e1ccaf/5fc3750a-2d47-4eae-8bce-0562fba1fbdb-720-fragmented.mp4" framerate="25" duration="889" isDefault="true"/> <media:content type="video/mp4" medium="video" height="480" fileSize="40345334" url="https://static.indymotion.fr/streaming-playlists/hls/8855e0f6-7056-41a9-ad86-264738e1ccaf/dc694fb9-5cae-4bd8-b985-a3b4a3aeeeae-480-fragmented.mp4" framerate="25" duration="889" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="25167009" url="https://static.indymotion.fr/streaming-playlists/hls/8855e0f6-7056-41a9-ad86-264738e1ccaf/33af11de-4da9-4a33-bb4c-0e2ba97b04ed-240-fragmented.mp4" framerate="25" duration="889" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="14497402" url="https://static.indymotion.fr/streaming-playlists/hls/8855e0f6-7056-41a9-ad86-264738e1ccaf/59059c70-40dd-497d-93b3-e12c81e53357-0-fragmented.mp4" framerate="0" duration="889" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/b809ffc8-3719-467d-9bef-477aceeb8cb9.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/082d2da4-6672-47b2-a219-45f77b83274f.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Les stats sur la voiture et le vélo que devraient entendre tous nos dirigeants</media:title> <media:description type="plain">Jean-Marc Jancovici, expert énergie-climat, président du Shift Project, et Olivier Schneider, président de la Fédération française des usagers de la bicyclette, nous donnent des statistiques plus qu'importantes pour comprendre les enjeux entre les...</media:description> </item> <item> <title><![CDATA[La solution de Bégaudeau contre le racisme anti-blanc ( face a l'extrême droite )]]></title> <link>https://peertube2.cpy.re/w/axGrSEm9jZtd523sdb7x1T</link> <guid>https://peertube2.cpy.re/w/axGrSEm9jZtd523sdb7x1T</guid> <pubDate>Sat, 15 Nov 2025 21:00:47 GMT</pubDate> <description><![CDATA[https://qg.media/emission/racisme-antiblanc-le-debat-interdit-avec-francois-bousquet-francois-begaudeau-aude-lancelin/]]></description> <content:encoded><![CDATA[<p><a href="https://qg.media/emission/racisme-antiblanc-le-debat-interdit-avec-francois-bousquet-francois-begaudeau-aude-lancelin/" target="_blank" rel="noopener noreferrer">https://qg.media/emission/racisme-antiblanc-le-debat-interdit-avec-francois-bousquet-francois-begaudeau-aude-lancelin/</a></p> ]]></content:encoded> <dc:creator>a_gauche</dc:creator> <enclosure length="12209728" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/4d4f3b08-aced-4586-8f03-ad25545d331f?videoFileIds=5523401"/> <media:community> <media:statistics views="3"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/axGrSEm9jZtd523sdb7x1T"/> <media:player url="https://peertube2.cpy.re/w/axGrSEm9jZtd523sdb7x1T"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/8f85f591-cbc1-47af-a871-e120e713e047-434-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/33d3d5a0-fb0c-4e2f-8a3c-1cc5144318a5-290-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/27cbb133-b836-4dcb-a125-5724ef2bb297-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="434" fileSize="12209728" url="https://static.indymotion.fr/streaming-playlists/hls/4d4f3b08-aced-4586-8f03-ad25545d331f/4fb4d6fb-d7d4-4852-a31a-7854e5fcd854-360-fragmented.mp4" framerate="30" duration="362" isDefault="true"/> <media:content type="video/mp4" medium="video" height="290" fileSize="9988688" url="https://static.indymotion.fr/streaming-playlists/hls/4d4f3b08-aced-4586-8f03-ad25545d331f/837f293a-5cce-4084-9cc1-16a321558f31-240-fragmented.mp4" framerate="30" duration="362" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="5879754" url="https://static.indymotion.fr/streaming-playlists/hls/4d4f3b08-aced-4586-8f03-ad25545d331f/8e68af29-c6a7-4c79-9629-78660e8e7f32-0-fragmented.mp4" framerate="0" duration="362" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/4a89ce9b-25a3-44c1-87ea-d5446d622097.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/d03223ef-d8a5-41f8-a9a3-b99a1048e051.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">La solution de Bégaudeau contre le racisme anti-blanc ( face a l'extrême droite )</media:title> <media:description type="plain">https://qg.media/emission/racisme-antiblanc-le-debat-interdit-avec-francois-bousquet-francois-begaudeau-aude-lancelin/</media:description> </item> <item> <title><![CDATA[Extrait de "Dominium Mundi - L'Empire du Management (2007)"]]></title> <link>https://peertube2.cpy.re/w/hYXtDfpeUWcdMzVe596ksV</link> <guid>https://peertube2.cpy.re/w/hYXtDfpeUWcdMzVe596ksV</guid> <pubDate>Sat, 15 Nov 2025 20:50:48 GMT</pubDate> <description><![CDATA[Extrait : de 12'08" à 13'51" du documentaire complet, présenté sur cette page : https://dieudo.fr/wiki/Dominium_Mundi_-L%27Empire_du_Management(2007)]]></description> <content:encoded><![CDATA[<p>Extrait : de 12'08" à 13'51" du documentaire complet, présenté sur cette page :<br /> <a href="https://dieudo.fr/wiki/Dominium_Mundi_-_L%27Empire_du_Management_(2007)" target="_blank" rel="noopener noreferrer">https://dieudo.fr/wiki/Dominium_Mundi_-_L'Empire_du_Management_(2007)</a></p> ]]></content:encoded> <dc:creator>dieudo_channel</dc:creator> <category>News & Politics</category> <enclosure length="8957516" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/89860eef-922f-4dce-878f-e12929349a4d?videoFileIds=5523397"/> <media:community> <media:statistics views="0"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/hYXtDfpeUWcdMzVe596ksV"/> <media:player url="https://peertube2.cpy.re/w/hYXtDfpeUWcdMzVe596ksV"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/fb06d4d0-31a8-4a79-a120-bbe3c41fcb8c-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/af6d6197-9b37-4d40-8a3c-e7633bbe79b3-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/07e71a86-968f-4c90-9cee-f60fb9743fc0-144-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/ba54fc90-dab1-43c0-95dc-990a3e86ae32-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="8957516" url="https://tube.aquilenet.fr/static/streaming-playlists/hls/89860eef-922f-4dce-878f-e12929349a4d/e0d5b423-1d14-4f9c-ba05-cfbf95624457-480-fragmented.mp4" framerate="30" duration="103" isDefault="true"/> <media:content type="video/mp4" medium="video" height="240" fileSize="4384317" url="https://tube.aquilenet.fr/static/streaming-playlists/hls/89860eef-922f-4dce-878f-e12929349a4d/e49d71bd-f293-40a0-a42d-7c5dfe4c27b8-240-fragmented.mp4" framerate="30" duration="103" isDefault="false"/> <media:content type="video/mp4" medium="video" height="144" fileSize="2896012" url="https://tube.aquilenet.fr/static/streaming-playlists/hls/89860eef-922f-4dce-878f-e12929349a4d/ee4d5d1d-17c7-48e6-8c9b-e7ebb223c1ca-144-fragmented.mp4" framerate="30" duration="103" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="1676479" url="https://tube.aquilenet.fr/static/streaming-playlists/hls/89860eef-922f-4dce-878f-e12929349a4d/b6b7142d-5751-430d-ba09-c0edf9e963cd-0-fragmented.mp4" framerate="0" duration="103" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/596b03a0-a978-4cbe-a0a6-950fffa0068b.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/8104c073-1176-4014-94fe-6c93a3eca996.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Extrait de "Dominium Mundi - L'Empire du Management (2007)"</media:title> <media:description type="plain">Extrait : de 12'08" à 13'51" du documentaire complet, présenté sur cette page : https://dieudo.fr/wiki/Dominium_Mundi_-L%27Empire_du_Management(2007)</media:description> </item> <item> <title><![CDATA[👻 BGS - I'm on Observation Duty 4 : City House📹 (feat. Mister Boo 💀)]]></title> <link>https://peertube2.cpy.re/w/3uJ2MCciQLr2m5dAL4dWjh</link> <guid>https://peertube2.cpy.re/w/3uJ2MCciQLr2m5dAL4dWjh</guid> <pubDate>Sat, 15 Nov 2025 19:00:29 GMT</pubDate> <description><![CDATA[⚠️ CW / TW indiqués en vidéo ⚠️ Et c'est parti pour la première map du quatrième volet de la série de jeux avec Mister Boo ! N'hésite pas à : 💖 Liker 💬 Commenter 📱 Partager 🌈 Me suivre sur les réseaux ! Le jeu est dispo sur steam : http...]]></description> <content:encoded><![CDATA[<p>⚠️ CW / TW indiqués en vidéo ⚠️</p> <p>Et c'est parti pour la première map du quatrième volet de la série de jeux avec Mister Boo !<br /> N'hésite pas à : 💖 Liker 💬 Commenter 📱 Partager 🌈 Me suivre sur les réseaux !</p> <p>Le jeu est dispo sur steam : <a href="https://store.steampowered.com/app/1458560/Im_on_Observation_Duty_3/" target="_blank" rel="noopener noreferrer">https://store.steampowered.com/app/1458560/Im_on_Observation_Duty_3/</a></p> <p>𝑴𝒆𝒔 𝒍𝒊𝒆𝒏𝒔</p> <p>📸 Instagram : <a href="https://www.instagram.com/lukyaspyndell/" target="_blank" rel="noopener noreferrer">https://www.instagram.com/lukyaspyndell/</a><br /> 🦋 Bluesky : <a href="https://bsky.app/profile/lukyaspyndell.bsky.social" target="_blank" rel="noopener noreferrer">https://bsky.app/profile/lukyaspyndell.bsky.social</a><br /> 🐘 Mastodon : <a href="https://piaille.fr/@starrybubble" target="_blank" rel="noopener noreferrer">https://piaille.fr/@starrybubble</a><br /> 💌 Vos questions : <a href="https://tellonym.me/LukyaSpyndell" target="_blank" rel="noopener noreferrer">https://tellonym.me/LukyaSpyndell</a><br /> 🌙 Carrd : <a href="https://lukyaspyndell.carrd.co/" target="_blank" rel="noopener noreferrer">https://lukyaspyndell.carrd.co/</a></p> ]]></content:encoded> <dc:creator>Ghost in the Party 👻</dc:creator> <category>Gaming</category> <enclosure length="405639531" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/1435015a-3caa-4123-bc18-40c5ad1deccc?videoFileIds=5523288"/> <media:community> <media:statistics views="3"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/3uJ2MCciQLr2m5dAL4dWjh"/> <media:player url="https://peertube2.cpy.re/w/3uJ2MCciQLr2m5dAL4dWjh"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/ba863e56-5647-4474-a191-5c97038f1c54-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/f3bd05f2-d85c-473f-a3f2-cd277ecd861f-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/64d1fca9-350a-404e-9e3d-6b3e8689b2e2-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/b46ffe73-39bb-40f7-98a4-c9b841fa3063-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/097e7a3f-1904-49c0-8b8d-c79466736858-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="405639531" url="https://static.indymotion.fr/streaming-playlists/hls/1435015a-3caa-4123-bc18-40c5ad1deccc/065c1bb3-7a20-4c13-86c1-7d605bb10ed0-1080-fragmented.mp4" framerate="30" duration="2098" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="207674795" url="https://static.indymotion.fr/streaming-playlists/hls/1435015a-3caa-4123-bc18-40c5ad1deccc/3cfcc78d-1ea4-417d-aa0b-4f4d4b6504e1-720-fragmented.mp4" framerate="30" duration="2098" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="118816384" url="https://static.indymotion.fr/streaming-playlists/hls/1435015a-3caa-4123-bc18-40c5ad1deccc/d2549ff5-f6a4-43a6-bbc6-b2bcb17f3a59-480-fragmented.mp4" framerate="30" duration="2098" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="61893267" url="https://static.indymotion.fr/streaming-playlists/hls/1435015a-3caa-4123-bc18-40c5ad1deccc/40c0106c-0db7-433d-8908-de0dc5781a21-240-fragmented.mp4" framerate="30" duration="2098" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="34551291" url="https://static.indymotion.fr/streaming-playlists/hls/1435015a-3caa-4123-bc18-40c5ad1deccc/31b000fe-b011-46d1-8a12-2b9551d9e1bd-0-fragmented.mp4" framerate="0" duration="2098" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/35a3bb13-9549-471d-8133-1a7f6b71a7c4.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/796a3d1a-94c2-4214-a3fc-9c8b7d98d290.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">👻 BGS - I'm on Observation Duty 4 : City House📹 (feat. Mister Boo 💀)</media:title> <media:description type="plain">⚠️ CW / TW indiqués en vidéo ⚠️ Et c'est parti pour la première map du quatrième volet de la série de jeux avec Mister Boo ! N'hésite pas à : 💖 Liker 💬 Commenter 📱 Partager 🌈 Me suivre sur les réseaux ! Le jeu est dispo sur steam : http...</media:description> </item> <item> <title><![CDATA[Contemplations]]></title> <link>https://peertube2.cpy.re/w/eW5oUdzsWW19syaN59ZEFW</link> <guid>https://peertube2.cpy.re/w/eW5oUdzsWW19syaN59ZEFW</guid> <pubDate>Sat, 15 Nov 2025 16:22:13 GMT</pubDate> <description><![CDATA[île de Sein, 9 novembre 2017 tournage, montage, réalisation : Claire Ananos avec Frédéric Ferrer (Vertical Détour), Lou et Marin Ferrer-Thibaut, les Sénans et Sénanes croisées]]></description> <content:encoded><![CDATA[<p>île de Sein, 9 novembre 2017<br /> tournage, montage, réalisation : Claire Ananos<br /> avec Frédéric Ferrer (Vertical Détour), Lou et Marin Ferrer-Thibaut, les Sénans et Sénanes croisées</p> ]]></content:encoded> <dc:creator>la microscopique</dc:creator> <category>Travels</category> <enclosure length="206443136" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/70d3acb0-ba91-466c-b882-f5500fbe904c?videoFileIds=5523276"/> <media:community> <media:statistics views="0"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/eW5oUdzsWW19syaN59ZEFW"/> <media:player url="https://peertube2.cpy.re/w/eW5oUdzsWW19syaN59ZEFW"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/a7780f37-6d8f-44f2-9e0b-74da2b6dd875-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/54226b88-67a2-41ff-a4b4-9e1a7ac5625f-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/b9c337c8-7340-48b6-b777-c864088a24f1-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/42423155-1dc7-4f94-9997-b10f19f4e54a-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/317ad3e5-413c-4d85-9d9d-68afef4d179d-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="206443136" url="https://static.indymotion.fr/streaming-playlists/hls/70d3acb0-ba91-466c-b882-f5500fbe904c/e3d59072-ab5f-4d7c-a01d-39efbf88c964-1080-fragmented.mp4" framerate="50" duration="650" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="114219697" url="https://static.indymotion.fr/streaming-playlists/hls/70d3acb0-ba91-466c-b882-f5500fbe904c/24e02e4b-3fdf-459b-8bd7-f40c0d5861fe-720-fragmented.mp4" framerate="50" duration="650" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="59700184" url="https://static.indymotion.fr/streaming-playlists/hls/70d3acb0-ba91-466c-b882-f5500fbe904c/bce66e78-78b3-457c-9bd6-923f644fda9e-480-fragmented.mp4" framerate="25" duration="650" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="24748662" url="https://static.indymotion.fr/streaming-playlists/hls/70d3acb0-ba91-466c-b882-f5500fbe904c/f2e335e8-4e29-4d94-a674-3409463cb9df-240-fragmented.mp4" framerate="25" duration="650" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="10586107" url="https://static.indymotion.fr/streaming-playlists/hls/70d3acb0-ba91-466c-b882-f5500fbe904c/9887da51-91e2-4365-b95e-2b0c1563d1ea-0-fragmented.mp4" framerate="0" duration="650" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/4bdef9a8-ff83-4f0a-804f-0c58810d8b72.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/234ad397-3cb7-4cbe-aad8-8a83bc3178f6.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Contemplations</media:title> <media:description type="plain">île de Sein, 9 novembre 2017 tournage, montage, réalisation : Claire Ananos avec Frédéric Ferrer (Vertical Détour), Lou et Marin Ferrer-Thibaut, les Sénans et Sénanes croisées</media:description> </item> <item> <title><![CDATA[notre point d'entrée - topographie humaine d'un espace commun Arette]]></title> <link>https://peertube2.cpy.re/w/pXL36og8xZt8bVNUs4dBuQ</link> <guid>https://peertube2.cpy.re/w/pXL36og8xZt8bVNUs4dBuQ</guid> <pubDate>Sat, 15 Nov 2025 14:56:28 GMT</pubDate> <description><![CDATA[filmé à Arette, le 5 février 2020 avec Cécile Lelarge et Sylvain Airaud (espace Pic Nic) Les premiers portraits « topographie humaine d’un espace commun » à Arette (et à Bagnols-sur-Cèze) datent de 2012 ! Il était temps de les reprendre, les p...]]></description> <content:encoded><![CDATA[<p>filmé à Arette, le 5 février 2020<br /> avec Cécile Lelarge et Sylvain Airaud (espace Pic Nic)</p> <p>Les premiers portraits « topographie humaine d’un espace commun » à Arette (et à Bagnols-sur-Cèze) datent de 2012 ! Il était temps de les reprendre, les poursuivre, les étoffer !</p> <p>un film de Claire Ananos<br /> 2020</p> ]]></content:encoded> <dc:creator>la microscopique</dc:creator> <category>Travels</category> <enclosure length="120420374" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/c20b3c17-47e7-43ee-9156-8fc2d37e6ac4?videoFileIds=5523239"/> <media:community> <media:statistics views="2"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/pXL36og8xZt8bVNUs4dBuQ"/> <media:player url="https://peertube2.cpy.re/w/pXL36og8xZt8bVNUs4dBuQ"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/31ee6c3d-a5e1-4ed9-b4d5-98d5c8082011-544-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/9b0c18ee-deab-420f-9649-c2633fd95695-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/f7242366-0013-4042-bb3f-f8f6f4c99833-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/aba27ef1-2245-4476-afd1-aa35d1cc0164-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="544" fileSize="120420374" url="https://static.indymotion.fr/streaming-playlists/hls/c20b3c17-47e7-43ee-9156-8fc2d37e6ac4/c6bbc113-7ec7-4e9c-ab7e-8e88034fefad-544-fragmented.mp4" framerate="25" duration="1494" isDefault="true"/> <media:content type="video/mp4" medium="video" height="480" fileSize="93402873" url="https://static.indymotion.fr/streaming-playlists/hls/c20b3c17-47e7-43ee-9156-8fc2d37e6ac4/2949cf6c-3688-415f-b842-985e707d437d-480-fragmented.mp4" framerate="25" duration="1494" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="46441337" url="https://static.indymotion.fr/streaming-playlists/hls/c20b3c17-47e7-43ee-9156-8fc2d37e6ac4/d4266d7f-f1c6-42eb-91bf-9d99c0d42fa1-240-fragmented.mp4" framerate="25" duration="1494" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="24305348" url="https://static.indymotion.fr/streaming-playlists/hls/c20b3c17-47e7-43ee-9156-8fc2d37e6ac4/a742f2fd-c68c-4b3d-b271-c675f93278f7-0-fragmented.mp4" framerate="0" duration="1494" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/5741b593-1dcf-4b8c-a84a-aba87177e087.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/e71ab9d4-f07a-408d-95bc-3600f3a645df.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">notre point d'entrée - topographie humaine d'un espace commun Arette</media:title> <media:description type="plain">filmé à Arette, le 5 février 2020 avec Cécile Lelarge et Sylvain Airaud (espace Pic Nic) Les premiers portraits « topographie humaine d’un espace commun » à Arette (et à Bagnols-sur-Cèze) datent de 2012 ! Il était temps de les reprendre, les p...</media:description> </item> <item> <title><![CDATA[Dehors, la neige, dedans,...]]></title> <link>https://peertube2.cpy.re/w/ux4vVxiMH9anF9ScFWbTJk</link> <guid>https://peertube2.cpy.re/w/ux4vVxiMH9anF9ScFWbTJk</guid> <pubDate>Sat, 15 Nov 2025 14:06:53 GMT</pubDate> <description><![CDATA[filmé à Arette, le 10 janvier 2021 improvisation piano non accordé et chant : Zeph Maire sons ambiance : Sylvie Ananos image, montage, réalisation : Claire Ananos]]></description> <content:encoded><![CDATA[<p>filmé à Arette, le 10 janvier 2021<br /> improvisation piano non accordé et chant : Zeph Maire<br /> sons ambiance : Sylvie Ananos<br /> image, montage, réalisation : Claire Ananos</p> ]]></content:encoded> <dc:creator>la microscopique</dc:creator> <category>Travels</category> <enclosure length="89816032" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/e7161b29-ffdc-4215-a179-838645bb65d3?videoFileIds=5523220"/> <media:community> <media:statistics views="1"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/ux4vVxiMH9anF9ScFWbTJk"/> <media:player url="https://peertube2.cpy.re/w/ux4vVxiMH9anF9ScFWbTJk"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/bcc60437-d1a4-4574-ada9-4c1ef83475e9-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/ea858531-7639-460c-acd1-083c41e9b396-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/3fd71476-37db-4e78-b543-9ac795751c6b-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/85195423-b4a9-47df-99d3-77ff69dc4751-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/992350fa-2687-4864-a3a6-216232e93dac-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="89816032" url="https://static.indymotion.fr/streaming-playlists/hls/e7161b29-ffdc-4215-a179-838645bb65d3/c70bef3f-a9f4-4c88-b89d-113b5b80bf96-1080-fragmented.mp4" framerate="25" duration="198" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="46667709" url="https://static.indymotion.fr/streaming-playlists/hls/e7161b29-ffdc-4215-a179-838645bb65d3/f679eef3-1c15-48b1-a5d2-636e1799ddde-720-fragmented.mp4" framerate="25" duration="198" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="24744731" url="https://static.indymotion.fr/streaming-playlists/hls/e7161b29-ffdc-4215-a179-838645bb65d3/397d527d-9040-4a86-8e63-9efb3ff09689-480-fragmented.mp4" framerate="25" duration="198" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="10652183" url="https://static.indymotion.fr/streaming-playlists/hls/e7161b29-ffdc-4215-a179-838645bb65d3/e56553f4-c000-4416-8df3-0088f674bf16-240-fragmented.mp4" framerate="25" duration="198" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="3112604" url="https://static.indymotion.fr/streaming-playlists/hls/e7161b29-ffdc-4215-a179-838645bb65d3/787b18fc-d41c-44c7-a824-0e517e085eb4-0-fragmented.mp4" framerate="0" duration="198" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/765b7633-1814-4078-a22d-4baa36c7520b.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/08939417-b7f8-4319-b998-f3f3f4ef03de.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Dehors, la neige, dedans,...</media:title> <media:description type="plain">filmé à Arette, le 10 janvier 2021 improvisation piano non accordé et chant : Zeph Maire sons ambiance : Sylvie Ananos image, montage, réalisation : Claire Ananos</media:description> </item> <item> <title><![CDATA[Les abeilles Méllifères avec ou sans ailes]]></title> <link>https://peertube2.cpy.re/w/gUw9mP6JZDWHmv9vm8m3kF</link> <guid>https://peertube2.cpy.re/w/gUw9mP6JZDWHmv9vm8m3kF</guid> <pubDate>Sat, 15 Nov 2025 13:57:42 GMT</pubDate> <description><![CDATA[filmé à Arette, le 18 juin 2021 suite à l'article de Christian Muscarditz dans le journal de la microscopique n°2 réalisation Claire Ananos]]></description> <content:encoded><![CDATA[<p>filmé à Arette, le 18 juin 2021<br /> suite à l'article de Christian Muscarditz dans le journal de la microscopique n°2<br /> réalisation Claire Ananos</p> ]]></content:encoded> <dc:creator>la microscopique</dc:creator> <category>Animals</category> <enclosure length="28368432" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/80ce5539-bfcd-454b-83bf-43b5975da80d?videoFileIds=5523215"/> <media:community> <media:statistics views="1"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/gUw9mP6JZDWHmv9vm8m3kF"/> <media:player url="https://peertube2.cpy.re/w/gUw9mP6JZDWHmv9vm8m3kF"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/464c7117-3104-4019-99b8-56edd6cad3a0-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/8c11279a-e934-46e4-b252-6e7dd01c7a33-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/8feee787-278e-4568-a167-50e4ada26435-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/8970d11d-648b-4d93-9dde-da83f64521c0-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/dd819f7c-3dae-43c9-a6a4-c1b4c5040f95-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="28368432" url="https://static.indymotion.fr/streaming-playlists/hls/80ce5539-bfcd-454b-83bf-43b5975da80d/455ace03-41b7-4872-9ae6-6f1c7970ad7a-1080-fragmented.mp4" framerate="25" duration="113" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="10460915" url="https://static.indymotion.fr/streaming-playlists/hls/80ce5539-bfcd-454b-83bf-43b5975da80d/e0e9e046-ac69-4c47-9270-0fab654c53d3-720-fragmented.mp4" framerate="25" duration="113" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="5289835" url="https://static.indymotion.fr/streaming-playlists/hls/80ce5539-bfcd-454b-83bf-43b5975da80d/19cda180-34df-4e1f-a2f1-89355b5317a7-480-fragmented.mp4" framerate="25" duration="113" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="2717726" url="https://static.indymotion.fr/streaming-playlists/hls/80ce5539-bfcd-454b-83bf-43b5975da80d/2e856fff-6755-4fbe-a315-5fc89183835f-240-fragmented.mp4" framerate="25" duration="113" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="1763301" url="https://static.indymotion.fr/streaming-playlists/hls/80ce5539-bfcd-454b-83bf-43b5975da80d/c6f10d6f-8e82-46a8-8435-380c5ded7d1e-0-fragmented.mp4" framerate="0" duration="113" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/7475b00d-9ae0-4601-b2d1-6e90576cdadb.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/feb1c2dd-4f05-4718-822f-4a9d78daa192.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Les abeilles Méllifères avec ou sans ailes</media:title> <media:description type="plain">filmé à Arette, le 18 juin 2021 suite à l'article de Christian Muscarditz dans le journal de la microscopique n°2 réalisation Claire Ananos</media:description> </item> <item> <title><![CDATA[バカ吉川]]></title> <link>https://peertube2.cpy.re/w/evceL6MxwuyQAoxWHvx3Ep</link> <guid>https://peertube2.cpy.re/w/evceL6MxwuyQAoxWHvx3Ep</guid> <pubDate>Sat, 15 Nov 2025 11:38:50 GMT</pubDate> <description><![CDATA[curbine project https://curbine.wixsite.com/home-page]]></description> <content:encoded><![CDATA[<p>curbine project<br /> <a href="https://curbine.wixsite.com/home-page" target="_blank" rel="noopener noreferrer">https://curbine.wixsite.com/home-page</a></p> ]]></content:encoded> <dc:creator>YTPMV Channel-mm</dc:creator> <category>Entertainment</category> <enclosure length="20503699" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/6d5a4c0f-5ebc-4582-be70-99eb9d9fe043?videoFileIds=5523196"/> <media:community> <media:statistics views="2"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/evceL6MxwuyQAoxWHvx3Ep"/> <media:player url="https://peertube2.cpy.re/w/evceL6MxwuyQAoxWHvx3Ep"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/6362cf5d-0ec5-4ed6-8184-08959fa4d92c-720.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/bc318c73-6fbf-4647-8fb5-94dca832bcc8-480.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/2bf83af0-f5ac-43bf-a0d1-7320a9e7f04f-240.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/547f1da7-6998-4009-88dc-1cd6e991eae0-0.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/e277b575-5fb7-46d1-b669-8410b3d3ed0d-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/378a1e23-905d-4e24-8d20-a58433d0eff1-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/0a0fb354-a1ea-4eb3-becf-1d00cf2725f2-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/1bedbb68-760f-44d3-bec3-dd2186ac1e0f-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="20503699" url="https://peertube.cipherbliss.com/static/webseed/d96296d8-dd79-4544-a665-2c29dd5fb29c-720.mp4" framerate="60" duration="81" isDefault="true"/> <media:content type="video/mp4" medium="video" height="480" fileSize="10687594" url="https://peertube.cipherbliss.com/static/webseed/807906a7-f560-4313-aa6a-2f6730b45a8a-480.mp4" framerate="30" duration="81" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="4859410" url="https://peertube.cipherbliss.com/static/webseed/aaefb7ab-7c5f-4706-88be-425db13ac11a-240.mp4" framerate="30" duration="81" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="1316855" url="https://peertube.cipherbliss.com/static/webseed/58481736-406b-4be3-b146-37504e6241ea-0.mp4" framerate="0" duration="81" isDefault="false"/> <media:content type="video/mp4" medium="video" height="720" fileSize="20471349" url="https://peertube.cipherbliss.com/static/streaming-playlists/hls/6d5a4c0f-5ebc-4582-be70-99eb9d9fe043/41c5aa28-5623-4e98-916f-50e4b5cb6ee9-720-fragmented.mp4" framerate="60" duration="81" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="10665584" url="https://peertube.cipherbliss.com/static/streaming-playlists/hls/6d5a4c0f-5ebc-4582-be70-99eb9d9fe043/c9aae71c-4408-49fb-a304-01ea80ddbd68-480-fragmented.mp4" framerate="30" duration="81" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="4836316" url="https://peertube.cipherbliss.com/static/streaming-playlists/hls/6d5a4c0f-5ebc-4582-be70-99eb9d9fe043/ed68fd06-61bb-4008-aebd-5c795ed11cbd-240-fragmented.mp4" framerate="30" duration="81" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="1329569" url="https://peertube.cipherbliss.com/static/streaming-playlists/hls/6d5a4c0f-5ebc-4582-be70-99eb9d9fe043/d4b244dd-c027-4e95-8a01-ce75b9e3447b-0-fragmented.mp4" framerate="0" duration="81" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/5311dc72-1cf8-451b-ad96-7d261fd9f2f1.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/59125cc7-43bc-406a-af79-91d33060da22.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">バカ吉川</media:title> <media:description type="plain">curbine project https://curbine.wixsite.com/home-page</media:description> </item> <item> <title><![CDATA[Comment les armes soniques vont aider les policiers à mater les foules]]></title> <link>https://peertube2.cpy.re/w/41i5mX3dViRtbBXhuRXPWH</link> <guid>https://peertube2.cpy.re/w/41i5mX3dViRtbBXhuRXPWH</guid> <pubDate>Sat, 15 Nov 2025 11:00:45 GMT</pubDate> <description><![CDATA[Soutenez Blast, nouveau média indépendant : https://www.blast-info.fr/soutenir Le 15 mars 2025, lors d’une importante manifestation à Belgrade, un son étrange a provoqué un mouvement de panique parmi la foule. Sur plusieurs avenues de la capita...]]></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 15 mars 2025, lors d’une importante manifestation à Belgrade, un son étrange a provoqué un mouvement de panique parmi la foule. Sur plusieurs avenues de la capitale, des vidéos montrent une foule compacte se fendre en deux. Par la suite, les manifestants évoquent des nausées, des acouphènes et des douleurs thoraciques. Le gouvernement serbe aurait-il employé un canon à son contre les manifestants ? Une telle technique de maintien de l’ordre est-elle aussi utilisée en France ?</p> <p>Dans ce focus, Élodie Emery raconte les coulisses de son enquête en Serbie, disponible sur notre site.</p> <p>Journaliste : Elsa Galland<br /> Montage : Émilie Fortun<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>#Armes<br /> #police<br /> #serbie</p> ]]></content:encoded> <dc:creator>blast, le souffle de l’info</dc:creator> <enclosure length="288340392" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/1855f05e-7816-436f-81b8-02e3cecf22a9?videoFileIds=5523190&videoFileIds=5523194"/> <media:community> <media:statistics views="115"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/41i5mX3dViRtbBXhuRXPWH"/> <media:player url="https://peertube2.cpy.re/w/41i5mX3dViRtbBXhuRXPWH"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/8df62127-c21e-4c85-9ae6-638fedcf4bc9-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/9911e2f5-873d-4383-bee9-22ff0cf9c5d8-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/5a23e431-064e-4883-9be9-7ccf507fe57c-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/578d3b25-132c-49cc-97a9-d39c966c7f86-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/f08b0fe5-959d-4bd4-a8dc-8e4482513627-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="269524587" url="https://cdn.octos3.fr/peertube-blast/streaming-playlists/hls/1855f05e-7816-436f-81b8-02e3cecf22a9/c54c666e-7263-48bd-92a4-1f20a1099831-1080-fragmented.mp4" framerate="25" duration="1158" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="137312795" url="https://cdn.octos3.fr/peertube-blast/streaming-playlists/hls/1855f05e-7816-436f-81b8-02e3cecf22a9/17f7046f-68b9-4b37-bed3-0ff4eb632056-720-fragmented.mp4" framerate="25" duration="1158" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="74501226" url="https://cdn.octos3.fr/peertube-blast/streaming-playlists/hls/1855f05e-7816-436f-81b8-02e3cecf22a9/bbc6fa0b-0c93-4651-8ca1-ce6a3a2d66c3-480-fragmented.mp4" framerate="25" duration="1158" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="25539334" url="https://cdn.octos3.fr/peertube-blast/streaming-playlists/hls/1855f05e-7816-436f-81b8-02e3cecf22a9/3efb638b-a726-4ec8-a52c-3ff15413fec8-240-fragmented.mp4" framerate="25" duration="1158" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="18815805" url="https://cdn.octos3.fr/peertube-blast/streaming-playlists/hls/1855f05e-7816-436f-81b8-02e3cecf22a9/8c575209-5e32-4738-8bbf-4885ec4a8bad-0-fragmented.mp4" framerate="0" duration="1158" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/e278551f-02f5-4ea5-aa99-950e00e38010.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/01c72090-a61b-4f61-9d5c-42d9748b37f5.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Comment les armes soniques vont aider les policiers à mater les foules</media:title> <media:description type="plain">Soutenez Blast, nouveau média indépendant : https://www.blast-info.fr/soutenir Le 15 mars 2025, lors d’une importante manifestation à Belgrade, un son étrange a provoqué un mouvement de panique parmi la foule. Sur plusieurs avenues de la capita...</media:description> </item> <item> <title><![CDATA[Mitqal explain us how he lives, and ask for help]]></title> <link>https://peertube2.cpy.re/w/sr9Aw4fZQCf5YP4WSxsJxX</link> <guid>https://peertube2.cpy.re/w/sr9Aw4fZQCf5YP4WSxsJxX</guid> <pubDate>Sat, 15 Nov 2025 10:52:20 GMT</pubDate> <description><![CDATA[In this video, Mitqal shows us his tent, where it's too hot during summer, too cold during winter, made with cloth as only protection. Then, his kichen, and all the other stuff. He asks us for our help. Here his fundraiser: https://www.gofundm...]]></description> <content:encoded><![CDATA[<p>In this video, Mitqal shows us his tent, where it's too hot during summer, too cold during winter, made with cloth as only protection. Then, his kichen, and all the other stuff. He asks us for our help.</p> <p>Here his fundraiser:<br /> <a href="https://www.gofundme.com/f/help-mitqals-family-through-winter" target="_blank" rel="noopener noreferrer">https://www.gofundme.com/f/help-mitqals-family-through-winter</a></p> <p>And his page on gaza-verified's archive, with a lot of informations, like his important mastodon account:<br /> <a href="https://archive.gaza.onl/campaigns/accounts/@mittall@toot.community" target="_blank" rel="noopener noreferrer">https://archive.gaza.onl/campaigns/accounts/@mittall@toot.community</a></p> <p>The tents in Gaza were flooded with rain, prices explodes, there is emergency, our help is vital.</p> ]]></content:encoded> <dc:creator>Gaza</dc:creator> <category>Activism</category> <enclosure length="27718665" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/d6107f11-0c9a-42f4-8f74-8e26b8429565?videoFileIds=5523188"/> <media:community> <media:statistics views="1"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/sr9Aw4fZQCf5YP4WSxsJxX"/> <media:player url="https://peertube2.cpy.re/w/sr9Aw4fZQCf5YP4WSxsJxX"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/33bc4e0b-ea2d-42ef-bc50-8a51c02ca59f-640.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/49abd8c1-3edd-4212-a066-408d2a296ab3-640-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="640" fileSize="27718665" url="https://tube.thechangebook.org/static/web-videos/dbbbf9bc-826c-4c09-a122-3fcc009dafe0-360.mp4" framerate="30" duration="167" isDefault="true"/> <media:content type="video/mp4" medium="video" height="640" fileSize="19416252" url="https://tube.thechangebook.org/static/streaming-playlists/hls/d6107f11-0c9a-42f4-8f74-8e26b8429565/4c868b13-e182-4cd7-8729-5b9f249378f7-360-fragmented.mp4" framerate="30" duration="167" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/23d52170-4843-4e20-ab07-ddac3d812482.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/f89c2596-f888-4ee9-917e-7d07998077a4.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Mitqal explain us how he lives, and ask for help</media:title> <media:description type="plain">In this video, Mitqal shows us his tent, where it's too hot during summer, too cold during winter, made with cloth as only protection. Then, his kichen, and all the other stuff. He asks us for our help. Here his fundraiser: https://www.gofundm...</media:description> </item> <item> <title><![CDATA[Tzii & Hilal Can - Şimdi Uzaklardasın (feat Ruben Tenenbaum) [TMR054] - Nov 14th, 2025]]></title> <link>https://peertube2.cpy.re/w/3FvmgYJTy4TZiBLTmMuLFj</link> <guid>https://peertube2.cpy.re/w/3FvmgYJTy4TZiBLTmMuLFj</guid> <pubDate>Fri, 14 Nov 2025 23:51:58 GMT</pubDate> <description><![CDATA[First extract from the next to come album on Teenage Menopause Records, by belgian soundcrafting experimentator Tzii and Istanbul pluridisciplinary artist/singer Hilal Can. Fragments of ghosts, shattered memories, impossible romance—"Hayalet Kı...]]></description> <content:encoded><![CDATA[<p>First extract from the next to come album on Teenage Menopause Records, by belgian soundcrafting experimentator Tzii and Istanbul pluridisciplinary artist/singer Hilal Can.</p> <p>Fragments of ghosts, shattered memories, impossible romance—"Hayalet Kırıkları" drifts between dream and dissociation.<br /> Born in Istanbul, where voices and street sounds collide with spectral echoes, the album reshapes fragments of Turkish songs into a haunted, timeless collection.<br /> Hilal Can’s incandescent voice rises from within these fogged recollections, a vessel of intimacy and rupture, while Tzii sculpts vast soundscapes that feel both tender and unrelenting. Together, they create a music that lives in-between—between memory and invention, love and absence, presence and disappearance.<br /> On two tracks, violinist Ruben Tenenbaum deepens the trance, weaving modal improvisations into the cracks of this fragile world.<br /> The result is an album that feels like a diary written in smoke—half-remembered, half-invented, always shimmering on the edge of reality.</p> <p>Hilal Can : vocals<br /> Ruben Tenenbaum : Violin on « Şimdi Uzaklardasın » and « Kırıldı Aynam »<br /> Tzii : Composition, electronics, treatments, field recordings, mix</p> <p>Lyrics by Osman Nihat Akın (A1), Zeki Müren (A2), Nadir Göktürk (A3), Hüsnü Arıkan (B1), Suat Sayın (B3), Zeki Duygulu (B4)<br /> Composed, recorded and mixed throughout the year 2022 in Istanbul (TK), Anderlecht (BE) and Nancy (FR)<br /> Mastered by Tioma Tchoulanov in Montreuil (FR)<br /> Painting "Journey into the bitten apple -3-" by Hilal Can<br /> Photography by Eric Desjeux<br /> Layout by Adèle Hurbault</p> ]]></content:encoded> <dc:creator>zik de Sacha</dc:creator> <category>Music</category> <enclosure length="48117985" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/15b65f25-be7b-41d7-9f4e-df3999cab988?videoFileIds=5523132"/> <media:community> <media:statistics views="1"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/3FvmgYJTy4TZiBLTmMuLFj"/> <media:player url="https://peertube2.cpy.re/w/3FvmgYJTy4TZiBLTmMuLFj"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/65588b21-5f7e-484f-96e0-10724860bfb1-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/bfd8ae56-fb53-4311-aca4-69ceb2a06453-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/ced5a3a8-272a-447a-8295-b7e07ad9aa58-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/a7f07550-17e6-489c-a5bf-7e77e5c3bcde-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/de7251fa-2f8b-46a9-9704-4e8b107e56dd-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="48117985" url="https://static.indymotion.fr/streaming-playlists/hls/15b65f25-be7b-41d7-9f4e-df3999cab988/e518384f-34cb-4aa6-90c3-9ef75abeb826-1080-fragmented.mp4" framerate="30" duration="489" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="37615776" url="https://static.indymotion.fr/streaming-playlists/hls/15b65f25-be7b-41d7-9f4e-df3999cab988/ad3996ad-d799-430f-9e47-24f32a53c6ee-720-fragmented.mp4" framerate="30" duration="489" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="21632409" url="https://static.indymotion.fr/streaming-playlists/hls/15b65f25-be7b-41d7-9f4e-df3999cab988/fee47969-0374-499d-8dd1-e2f7a3feea67-480-fragmented.mp4" framerate="30" duration="489" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="12259328" url="https://static.indymotion.fr/streaming-playlists/hls/15b65f25-be7b-41d7-9f4e-df3999cab988/31db922d-9ac7-4055-86e6-801c4d0c23af-240-fragmented.mp4" framerate="30" duration="489" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="7969400" url="https://static.indymotion.fr/streaming-playlists/hls/15b65f25-be7b-41d7-9f4e-df3999cab988/92c25e17-404e-48ae-8370-80347cdf86c6-0-fragmented.mp4" framerate="0" duration="489" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/69b9468d-6677-4085-94ba-1988764823fd.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/5a935ef7-32a6-4c9d-a00f-46789111e8bc.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Tzii & Hilal Can - Şimdi Uzaklardasın (feat Ruben Tenenbaum) [TMR054] - Nov 14th, 2025</media:title> <media:description type="plain">First extract from the next to come album on Teenage Menopause Records, by belgian soundcrafting experimentator Tzii and Istanbul pluridisciplinary artist/singer Hilal Can. Fragments of ghosts, shattered memories, impossible romance—"Hayalet Kı...</media:description> </item> <item> <title><![CDATA[Tzii & Hilal Can - Şimdi Uzaklardasın (feat Ruben Tenenbaum) [TMR054] - Nov 14th, 2025]]></title> <link>https://peertube2.cpy.re/w/r9yTgD4irWrA617V2Boe9f</link> <guid>https://peertube2.cpy.re/w/r9yTgD4irWrA617V2Boe9f</guid> <pubDate>Fri, 14 Nov 2025 23:34:02 GMT</pubDate> <description><![CDATA[First extract from the next to come album on Teenage Menopause Records, by belgian soundcrafting experimentator Tzii and Istanbul pluridisciplinary artist/singer Hilal Can. Fragments of ghosts, shattered memories, impossible romance—"Hayalet Kı...]]></description> <content:encoded><![CDATA[<p>First extract from the next to come album on Teenage Menopause Records, by belgian soundcrafting experimentator Tzii and Istanbul pluridisciplinary artist/singer Hilal Can.</p> <p>Fragments of ghosts, shattered memories, impossible romance—"Hayalet Kırıkları" drifts between dream and dissociation.<br /> Born in Istanbul, where voices and street sounds collide with spectral echoes, the album reshapes fragments of Turkish songs into a haunted, timeless collection.<br /> Hilal Can’s incandescent voice rises from within these fogged recollections, a vessel of intimacy and rupture, while Tzii sculpts vast soundscapes that feel both tender and unrelenting. Together, they create a music that lives in-between—between memory and invention, love and absence, presence and disappearance.<br /> On two tracks, violinist Ruben Tenenbaum deepens the trance, weaving modal improvisations into the cracks of this fragile world.<br /> The result is an album that feels like a diary written in smoke—half-remembered, half-invented, always shimmering on the edge of reality.</p> <p>Hilal Can : vocals<br /> Ruben Tenenbaum : Violin on « Şimdi Uzaklardasın » and « Kırıldı Aynam »<br /> Tzii : Composition, electronics, treatments, field recordings, mix</p> <p>Lyrics by Osman Nihat Akın (A1), Zeki Müren (A2), Nadir Göktürk (A3), Hüsnü Arıkan (B1), Suat Sayın (B3), Zeki Duygulu (B4)<br /> Composed, recorded and mixed throughout the year 2022 in Istanbul (TK), Anderlecht (BE) and Nancy (FR)<br /> Mastered by Tioma Tchoulanov in Montreuil (FR)<br /> Painting "Journey into the bitten apple -3-" by Hilal Can<br /> Photography by Eric Desjeux<br /> Layout by Adèle Hurbault</p> ]]></content:encoded> <dc:creator>zik de sacha</dc:creator> <category>Music</category> <enclosure length="48305138" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/cba6ae9f-64e4-4b88-8e92-caecfbcec732?videoFileIds=5523126"/> <media:community> <media:statistics views="3"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/r9yTgD4irWrA617V2Boe9f"/> <media:player url="https://peertube2.cpy.re/w/r9yTgD4irWrA617V2Boe9f"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/634a29e8-0267-4e50-bef2-7c2d734e1587-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/855fe5e7-575a-4858-81c1-33e5513624ab-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/60ddc947-312a-4c83-b29d-817e126332e7-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/7290bd1a-84f0-4e71-8ebf-8a7090cf62b9-144-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/957f158e-2519-4181-a616-8d4a72680058-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="48305138" url="https://tube.aquilenet.fr/static/streaming-playlists/hls/cba6ae9f-64e4-4b88-8e92-caecfbcec732/d363e5d1-ef8b-4660-a708-dcbdb673f3c6-1080-fragmented.mp4" framerate="30" duration="489" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="40983591" url="https://tube.aquilenet.fr/static/streaming-playlists/hls/cba6ae9f-64e4-4b88-8e92-caecfbcec732/fbd8175f-e8cf-4bc3-926d-100816e8171e-720-fragmented.mp4" framerate="30" duration="489" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="12397084" url="https://tube.aquilenet.fr/static/streaming-playlists/hls/cba6ae9f-64e4-4b88-8e92-caecfbcec732/f70b859f-72c8-481c-8c02-81654801ccb2-240-fragmented.mp4" framerate="30" duration="489" isDefault="false"/> <media:content type="video/mp4" medium="video" height="144" fileSize="10037860" url="https://tube.aquilenet.fr/static/streaming-playlists/hls/cba6ae9f-64e4-4b88-8e92-caecfbcec732/971f7d2c-e7fa-4501-87b7-e88679a4e6e3-144-fragmented.mp4" framerate="30" duration="489" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="7969400" url="https://tube.aquilenet.fr/static/streaming-playlists/hls/cba6ae9f-64e4-4b88-8e92-caecfbcec732/622732cf-a698-4b8c-97cb-dac4ec379c2c-0-fragmented.mp4" framerate="0" duration="489" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/d9f3bce5-7d28-43d0-95b5-d933a602c2c5.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/51973542-9b4d-412a-b7e4-ce17cf369138.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Tzii & Hilal Can - Şimdi Uzaklardasın (feat Ruben Tenenbaum) [TMR054] - Nov 14th, 2025</media:title> <media:description type="plain">First extract from the next to come album on Teenage Menopause Records, by belgian soundcrafting experimentator Tzii and Istanbul pluridisciplinary artist/singer Hilal Can. Fragments of ghosts, shattered memories, impossible romance—"Hayalet Kı...</media:description> </item> <item> <title><![CDATA[Entropie : la transition condamnée ? ⚰️ (2/2) (ft. @lereveilleur)]]></title> <link>https://peertube2.cpy.re/w/fqinVrsqYLhyrvm8gtu2Gs</link> <guid>https://peertube2.cpy.re/w/fqinVrsqYLhyrvm8gtu2Gs</guid> <pubDate>Fri, 14 Nov 2025 22:30:36 GMT</pubDate> <description><![CDATA[Dans cette seconde partie, on essaie de comprendre ce que la thermodynamique peut dire ou ne pas dire de la transition énergétique. Cette vidéo (et la précédente qu'on vous recommande fortement de regarder avant si ce n'est pas déjà fait : https:/...]]></description> <content:encoded><![CDATA[<p>Dans cette seconde partie, on essaie de comprendre ce que la thermodynamique peut dire ou ne pas dire de la transition énergétique. Cette vidéo (et la précédente qu'on vous recommande fortement de regarder avant si ce n'est pas déjà fait : <a href="https://www.youtube.com/watch?v=fNYStsO28TU" target="_blank" rel="noopener noreferrer">https://www.youtube.com/watch?v=fNYStsO28TU</a>) est un travail collaboratif avec Rodolphe Meyer de la chaîne @lereveilleur</p> <p>Erreur : [Espagne + Portugal] n'occupe pas 1% de la surface continentale mais 0,4%. La surface de photovoltaïque nécessaire pour remplacer notre utilisation de ressources fossiles est plus proche de la surface [Espagne + Portugal] (et donc de 0,4%) que de 1% de la surface continentale (mais ça dépend des hypothèses...). Le propos était que cette surface est faible devant la place prise par l'agriculture, ce propos reste correct.</p> <p>On a débriefé de la sortie des deux vidéos en live sur la chaîne secondaire de Rodolphe "Le Climat Part en Live". Dans cette vidéo, on répond aux commentaires et aux critiques : <a href="https://youtu.be/FGTzP0GXe4M?si=uMWf-s_cpKs_7u5M" target="_blank" rel="noopener noreferrer">https://youtu.be/FGTzP0GXe4M?si=uMWf-s_cpKs_7u5M</a></p> <p>La vidéo sur la nature profonde de l'entropie de @le_science4all : <a href="https://www.youtube.com/watch?v=H71WR50stm4" target="_blank" rel="noopener noreferrer">https://www.youtube.com/watch?v=H71WR50stm4</a></p> <p>0:00 • Intro<br /> 1:02 • Exergie<br /> 4:25 • Structures dissipatives<br /> 08:01 • Assez d’énergie pour remplacer les fossiles ?<br /> 10:02 • Création d’entropie sans travail, la thermalisation<br /> 12:33 • Exergie sur Terre<br /> 18:23 • Un système alimentaire thermodynamiquement efficace<br /> 28:23 • Transition énergétique<br /> 33:01 • Une entropie de la matière<br /> 42:07 • Produire de l’entropie ne veut pas dire polluer<br /> 46:48 • Sortir du fatalisme thermodynamique<br /> 49:50 • Comment on pense la transition ?<br /> 54:39 • Métabolisme économique<br /> 1:02:06 • Conclusion<br /> 1:03:48 • Outro</p> <p>Le texte avec annotations et sources est disponible ici :<br /> <a href="https://docs.google.com/document/d/1dXihQgyFDY47KvyyVG_IAbxFld4naZCFZ7IQvD0veY4/edit" target="_blank" rel="noopener noreferrer">https://docs.google.com/document/d/1dXihQgyFDY47KvyyVG_IAbxFld4naZCFZ7IQvD0veY4/edit</a></p> <p>Sources détaillées et informations complémentaires ici : <a href="https://lereveilleur.com/entropie-la-transition-condamn%C3%A9e/" target="_blank" rel="noopener noreferrer">https://lereveilleur.com/entropie-la-transition-condamnée/</a></p> <p>Nous avons abondamment utilisé une figure tirée de Hermann (2006) <a href="https://www.sciencedirect.com/science/article/abs/pii/S0360544205001805" target="_blank" rel="noopener noreferrer">https://www.sciencedirect.com/science/article/abs/pii/S0360544205001805</a><br /> Concernant le "rayonnement extra solaire" : du point de vue de la Terre, le fait que l’univers soit plus froid permet d’exercer un travail ( <a href="https://pure.tudelft.nl/ws/files/47767140/Jansen_2010_IJEx_7_6_Paper_5.pdf" target="_blank" rel="noopener noreferrer">https://pure.tudelft.nl/ws/files/47767140/Jansen_2010_IJEx_7_6_Paper_5.pdf</a> ) et nous pensons que c’est par ce flux que ça se manifeste. Nous ne sommes pas certains de comprendre ce point mais ça n'a pas d'influence sur le reste de la vidéo.</p> <p>Nous avons converti les stocks de ZJ vers <a href="http://TW.an" target="_blank" rel="noopener noreferrer">TW.an</a> et nous avons actualisé les consommations humaines, détails dans la feuille de calcul <a href="https://docs.google.com/spreadsheets/d/18nFKAuodW9RGgTVLqYHx_A1xvadHgM4ZxRcjh3rW-kc/edit?usp=drive_link" target="_blank" rel="noopener noreferrer">https://docs.google.com/spreadsheets/d/18nFKAuodW9RGgTVLqYHx_A1xvadHgM4ZxRcjh3rW-kc/edit?usp=drive_link</a> et slides successives avec nos modifications <a href="https://docs.google.com/presentation/d/1jP1yHghzsmwjTRXQUXkZpB_vpXfxHPE1I0XCmxYPrzY/edit?usp=drive_link" target="_blank" rel="noopener noreferrer">https://docs.google.com/presentation/d/1jP1yHghzsmwjTRXQUXkZpB_vpXfxHPE1I0XCmxYPrzY/edit?usp=drive_link</a></p> <p>Pour nous soutenir :</p> <ol> <li> <p>Faire intervenir Jean-Lou ! C’est pareil qu’une vidéo sauf qu'on construira la conférence ensemble pour qu'elle corresponde au mieux au public visé. Et puis c’est bien plus chouette et interactif d’échanger dans cet espace tri-dimensionnel haute définition qu’on appelle … réalité 👉 <a href="https://homoconscientus.fr/" target="_blank" rel="noopener noreferrer">https://homoconscientus.fr/</a></p> </li> <li> <p>Soutenir nos chaînes<br /> Apreslabiere 👉 <a href="https://fr.tipeee.com/apreslabiere" target="_blank" rel="noopener noreferrer">https://fr.tipeee.com/apreslabiere</a><br /> Le Réveilleur 👉 <a href="https://tinyurl.com/ychnp6hc" target="_blank" rel="noopener noreferrer">https://tinyurl.com/ychnp6hc</a> (de préférence) ou <a href="https://en.tipeee.com/le-reveilleur" target="_blank" rel="noopener noreferrer">https://en.tipeee.com/le-reveilleur</a></p> </li> </ol> <p>Pour participer à la plateforme Tournesol et ainsi tenter d'améliorer les biais cognitifs de l'humanité : <a href="https://tournesol.app/" target="_blank" rel="noopener noreferrer">https://tournesol.app/</a></p> <p>Merci à nos nombreux relecteurs :<br /> Loïc Giaccone <a href="https://climatanthropocene.com/" target="_blank" rel="noopener noreferrer">https://climatanthropocene.com/</a><br /> Avel Guénin-Carlut (PhD student à l’Université de Brighton & membre fondateur de Kairos Research ; <a href="https://avelguenin.github.io/" target="_blank" rel="noopener noreferrer">https://avelguenin.github.io/</a>)<br /> Thomas Cabaret (Passe-science) qui a fait des vidéos sur la thermodynamique dont <a href="https://www.youtube.com/watch?v=VJ61CF9sxm4" target="_blank" rel="noopener noreferrer">https://www.youtube.com/watch?v=VJ61CF9sxm4</a><br /> Lê Nguyên Hoang @le_science4all<br /> Olivier Cleynen <a href="https://thermodynamique.fr/" target="_blank" rel="noopener noreferrer">https://thermodynamique.fr/</a><br /> Paul Valcke <a href="https://www.linkedin.com/in/paul-valcke/" target="_blank" rel="noopener noreferrer">https://www.linkedin.com/in/paul-valcke/</a><br /> François Moriamez <a href="https://www.linkedin.com/in/fran%C3%A7ois-moriamez-72152a19/" target="_blank" rel="noopener noreferrer">https://www.linkedin.com/in/françois-moriamez-72152a19/</a><br /> Gaëtan Severac</p> <p>Merci à Adrien Vande Casteele pour les animations: <a href="https://www.instagram.com/a.vanca/" target="_blank" rel="noopener noreferrer">https://www.instagram.com/a.vanca/</a></p> <p>Merci Antoine Transon pour la miniature<br /> Merci à Marina Quenan et Valentin Levetti qui nous ont aidé sur la technique.<br /> Merci à la mère de Rodolphe qui s'occupe de corriger le texte et le retranscrire proprement pour les sous-titres.</p> <p>Médias sociaux:<br /> Pour ne rien rater sur la chaîne, pensez à vous abonner et à activer les notifications (petite cloche). Pour suivre mon actualité, privilégiez l'abonnement à la gazette d'ApresLaBiere (une fois par trimestre en gros) : <a href="https://eepurl.com/dnS6WD" target="_blank" rel="noopener noreferrer">https://eepurl.com/dnS6WD</a></p> <p>Et si vous tenez vraiment à donner plus de pouvoir aux big techs et à leurs algorithmes de recommandation non démocratiques :<br /> <a href="https://fr.linkedin.com/in/jean-lou-fourquet" target="_blank" rel="noopener noreferrer">https://fr.linkedin.com/in/jean-lou-fourquet</a></p> <p>Musique: "Time is running" par Marc Corominas Pujadó (license jamendo)</p> ]]></content:encoded> <dc:creator>ApresLabiere</dc:creator> <category>Science & Technology</category> <enclosure length="691390902" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/74c48052-e40e-425c-98ae-05fbef651c7e?videoFileIds=5523120"/> <media:community> <media:statistics views="8"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/fqinVrsqYLhyrvm8gtu2Gs"/> <media:player url="https://peertube2.cpy.re/w/fqinVrsqYLhyrvm8gtu2Gs"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/0a7d7ad0-c3a2-4aad-8f59-919b633f464d-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/91ffb61b-3435-492f-a31e-3b3416103817-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/3b602583-d120-4b1a-b809-073bc11b10fa-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/9df7a709-b0c6-4e18-880c-98eb12f0b2d2-360-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/60c88d5e-4d40-472a-9190-8703e1cb0468-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/bcc0dae9-4333-423b-b632-c1385d5e2a98-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="691390902" url="https://skeptikon.fr/static/streaming-playlists/hls/74c48052-e40e-425c-98ae-05fbef651c7e/f2b3cc07-cc5b-4859-8a23-48644285e43a-1080-fragmented.mp4" framerate="25" duration="3902" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="454873987" url="https://skeptikon.fr/static/streaming-playlists/hls/74c48052-e40e-425c-98ae-05fbef651c7e/1a5b350d-9c0f-49d5-b33f-f4c549a45f90-720-fragmented.mp4" framerate="25" duration="3902" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="285039468" url="https://skeptikon.fr/static/streaming-playlists/hls/74c48052-e40e-425c-98ae-05fbef651c7e/a3d3cde3-2872-47c9-b422-e6ec08679fc1-480-fragmented.mp4" framerate="25" duration="3902" isDefault="false"/> <media:content type="video/mp4" medium="video" height="360" fileSize="213424854" url="https://skeptikon.fr/static/streaming-playlists/hls/74c48052-e40e-425c-98ae-05fbef651c7e/c6cc0061-d45c-4b35-9628-46b55a3b2cae-360-fragmented.mp4" framerate="25" duration="3902" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="146961357" url="https://skeptikon.fr/static/streaming-playlists/hls/74c48052-e40e-425c-98ae-05fbef651c7e/3b55d0f7-604d-4c01-be98-c8556337adae-240-fragmented.mp4" framerate="25" duration="3902" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="63804572" url="https://skeptikon.fr/static/streaming-playlists/hls/74c48052-e40e-425c-98ae-05fbef651c7e/f0722eb9-63a7-49dd-bc52-e1508a87e468-0-fragmented.mp4" framerate="0" duration="3902" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/2554929d-5305-4517-a96b-1efa831ba8de.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/e8bcce24-a700-496d-8398-cfb49f2ca7eb.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Entropie : la transition condamnée ? ⚰️ (2/2) (ft. @lereveilleur)</media:title> <media:description type="plain">Dans cette seconde partie, on essaie de comprendre ce que la thermodynamique peut dire ou ne pas dire de la transition énergétique. Cette vidéo (et la précédente qu'on vous recommande fortement de regarder avant si ce n'est pas déjà fait : https:/...</media:description> </item> <item> <title><![CDATA[[BRUT] Essai avant remontage boombox Sharp MD-ZV30H (restauration)]]></title> <link>https://peertube2.cpy.re/w/mqgVAyQwgoBLYyPfEJ2qvS</link> <guid>https://peertube2.cpy.re/w/mqgVAyQwgoBLYyPfEJ2qvS</guid> <pubDate>Fri, 14 Nov 2025 21:30:15 GMT</pubDate> <description><![CDATA[Vidéo d'illustration. Article complet : https://www.jonathandupre.fr/articles/19-mini-chaines-hi-fi/390-restauration-sharp-md-zv30-md-zv30h/1 Musique kitch des années 90 : Pacifique – Anges Ou Démons]]></description> <content:encoded><![CDATA[<p>Vidéo d'illustration. Article complet : <a href="https://www.jonathandupre.fr/articles/19-mini-chaines-hi-fi/390-restauration-sharp-md-zv30-md-zv30h/1" target="_blank" rel="noopener noreferrer">https://www.jonathandupre.fr/articles/19-mini-chaines-hi-fi/390-restauration-sharp-md-zv30-md-zv30h/1</a><br /> Musique kitch des années 90 : Pacifique – Anges Ou Démons</p> ]]></content:encoded> <dc:creator>Réparations divers Hi-FI</dc:creator> <category>Science & Technology</category> <enclosure length="87180850" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/a55a6fee-ac7c-4c7d-9676-3e68d678b3ac?videoFileIds=5523113"/> <media:community> <media:statistics views="59"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/mqgVAyQwgoBLYyPfEJ2qvS"/> <media:player url="https://peertube2.cpy.re/w/mqgVAyQwgoBLYyPfEJ2qvS"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/69d1c96a-8833-4cb5-9aa2-983bc52e906c-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/cb7f2dca-3b33-43da-9777-deeb1e6e53f9-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/610a087c-10c8-4345-ba92-325b3ff0baaa-480-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="87180850" url="https://video.latavernedejohnjohn.fr/static/streaming-playlists/hls/a55a6fee-ac7c-4c7d-9676-3e68d678b3ac/c37a3789-4c26-4b55-b8a1-8720e4fe2a26-1080-fragmented.mp4" framerate="25" duration="150" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="37609567" url="https://video.latavernedejohnjohn.fr/static/streaming-playlists/hls/a55a6fee-ac7c-4c7d-9676-3e68d678b3ac/e59f8d70-c3b3-4138-a2da-2b5774d850d2-720-fragmented.mp4" framerate="25" duration="150" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="20245135" url="https://video.latavernedejohnjohn.fr/static/streaming-playlists/hls/a55a6fee-ac7c-4c7d-9676-3e68d678b3ac/60b3cf2e-ce90-40c7-b34c-8f1c48c541ba-480-fragmented.mp4" framerate="25" duration="150" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/d44d6402-68f1-48c6-93ab-89304ce40866.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/86b964a0-7fa0-4cfd-9f56-99ea3e29276c.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">[BRUT] Essai avant remontage boombox Sharp MD-ZV30H (restauration)</media:title> <media:description type="plain">Vidéo d'illustration. Article complet : https://www.jonathandupre.fr/articles/19-mini-chaines-hi-fi/390-restauration-sharp-md-zv30-md-zv30h/1 Musique kitch des années 90 : Pacifique – Anges Ou Démons</media:description> </item> <item> <title><![CDATA[Tout savoir sur le Paulownia ! Plante magique ou envahisseur à abattre ? Je vous dit tout !]]></title> <link>https://peertube2.cpy.re/w/vHyZo2GxSe6zQ24EC55QdQ</link> <guid>https://peertube2.cpy.re/w/vHyZo2GxSe6zQ24EC55QdQ</guid> <pubDate>Fri, 14 Nov 2025 21:15:48 GMT</pubDate> <description><![CDATA[cet arbre commence à se faire sa réputation de star, autant chez les permaculteurs, les adeptes d’agriculture syntropique, que dans le monde agricole lui-même. Croissance fulgurante, floraison spectaculaire, bois léger, biomasse, agroforesterie, f...]]></description> <content:encoded><![CDATA[<p>cet arbre commence à se faire sa réputation de star, autant chez les permaculteurs, les adeptes d’agriculture syntropique, que dans le monde agricole lui-même. Croissance fulgurante, floraison spectaculaire, bois léger, biomasse, agroforesterie, feuilles riches… on lui prête presque tous les super-pouvoirs.</p> <p>Mais qu’en est-il vraiment ?<br /> Dans cette vidéo, je vous propose une mise au point complète, honnête et documentée, pour vous aider à vous faire un avis clair sur le Paulownia.</p> <ul> <li>Adhérez à cette chaîne pour obtenir des avantages :<br /> <a href="https://www.youtube.com/channel/UC9Q8WeyCb3yxySC3P3mGpBw/join" target="_blank" rel="noopener noreferrer">https://www.youtube.com/channel/UC9Q8WeyCb3yxySC3P3mGpBw/join</a></li> </ul> <p>Site internet du jardin d'émerveille :<br /> <a href="https://www.lejardindemerveille.net/" target="_blank" rel="noopener noreferrer">https://www.lejardindemerveille.net/</a></p> <p>Venez nous renconter directement à la pépinière :<br /> 19 chemin de Guille à Marssac sur Tarn<br /> On est ouvert les samedis après midi de 15h à 18h.</p> <p>Vous pouvez aussi acheter nos plantes et graines en ligne :<br /> <a href="https://jardinforet.etsy.com" target="_blank" rel="noopener noreferrer">https://jardinforet.etsy.com</a></p> <p>Acheter mes livre :<br /> Le guide du Jardin Forêt : <a href="https://c3po.link/Qt3TUSrfh6" target="_blank" rel="noopener noreferrer">https://c3po.link/Qt3TUSrfh6</a><br /> Le jardin forêt en pratique : <a href="https://c3po.link/Qh4VY7tnxY" target="_blank" rel="noopener noreferrer">https://c3po.link/Qh4VY7tnxY</a></p> <p>Nous rejoindre sur Discord :<br /> <a href="https://discord.gg/Sjjq8axam9" target="_blank" rel="noopener noreferrer">https://discord.gg/Sjjq8axam9</a></p> <ul> <li>Pour suivre mes formations :<br /> <a href="https://www.grainesdemelisse.com/les-formations" target="_blank" rel="noopener noreferrer">https://www.grainesdemelisse.com/les-formations</a><br /> <a href="https://cours.universite-alveoles.fr/jardin-foret/" target="_blank" rel="noopener noreferrer">https://cours.universite-alveoles.fr/jardin-foret/</a></li> </ul> <p>Pour me suivre sur mes autres réseaux :<br /> Instagram : <a href="https://www.instagram.com/le_jardin_demerveille/" target="_blank" rel="noopener noreferrer">https://www.instagram.com/le_jardin_demerveille/</a><br /> Facebook : <a href="https://www.facebook.com/remi.champy/" target="_blank" rel="noopener noreferrer">https://www.facebook.com/remi.champy/</a></p> <p>Sommaire :<br /> 0:00 – Arbre magique… ou ennemi à abattre<br /> 0:54 – Différentes espèces<br /> 1:25 – Description des Paulownias<br /> 2:29 – Pourquoi le tomentosa est le plus cultivé ?<br /> 3:09 – Paulownia ou Catalpa ?<br /> 4:33- Usage ornemental<br /> 5:10 – Arbre d’ombrage<br /> 5:30 – Un arbre mellifère!<br /> 6:16 – Le Paulownia, un fixateur d’azote ?<br /> 7:04 – Utilisation du bois<br /> 7:16 – Le Paulownia dans l’agriculture<br /> 7:40 – Usages du bois de Paulownia<br /> 8:28 – Le Paulownia comme bois énergie<br /> 8:55 – Le Paulownia comme arbre fourrager<br /> 9:08 – Fausse croyance : il est imputrescible<br /> 10:32 – Fausse croyance : il est très résistant<br /> 11:19 – Fausse croyance : il stocke 10 fois plus de CO2...<br /> 12:28 – Le Paulownia est invasif ?</p> ]]></content:encoded> <dc:creator>le_jardin_d_emerveille</dc:creator> <enclosure length="327320514" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/f0a6d899-85d0-43a5-9219-94dd219d8b08?videoFileIds=5523099"/> <media:community> <media:statistics views="2"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/vHyZo2GxSe6zQ24EC55QdQ"/> <media:player url="https://peertube2.cpy.re/w/vHyZo2GxSe6zQ24EC55QdQ"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/58793c18-556b-4a88-a32a-d215efb4280a-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/9b0143d1-7883-4f38-b5b7-c4d2acf5f5b6-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/9b4c4b61-b310-420e-9ade-5e39fa93ca00-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/da386604-6408-4512-80ad-7c2670243eb7-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/85410790-f568-4eaf-9b8d-3d87dcf6eb99-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="327320514" url="https://static.indymotion.fr/streaming-playlists/hls/f0a6d899-85d0-43a5-9219-94dd219d8b08/44cc37a7-c4da-4a9a-9eb7-3401e1fd187a-1080-fragmented.mp4" framerate="25" duration="1052" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="231085441" url="https://static.indymotion.fr/streaming-playlists/hls/f0a6d899-85d0-43a5-9219-94dd219d8b08/53837d67-0842-4097-9dd4-e511d240b582-720-fragmented.mp4" framerate="25" duration="1052" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="141681776" url="https://static.indymotion.fr/streaming-playlists/hls/f0a6d899-85d0-43a5-9219-94dd219d8b08/208ce03b-a8ea-47c8-bc63-52858b0b2b06-480-fragmented.mp4" framerate="25" duration="1052" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="63686519" url="https://static.indymotion.fr/streaming-playlists/hls/f0a6d899-85d0-43a5-9219-94dd219d8b08/cbba33b9-cfac-430a-8087-137bb66a4f2a-240-fragmented.mp4" framerate="25" duration="1052" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="17612829" url="https://static.indymotion.fr/streaming-playlists/hls/f0a6d899-85d0-43a5-9219-94dd219d8b08/3688fa7b-a328-4a41-befc-1e69751f7596-0-fragmented.mp4" framerate="0" duration="1052" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/f3b51409-375c-47c2-a2dd-3fd7bf404346.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/aed98430-ee46-4e99-95fb-8479e4e52452.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Tout savoir sur le Paulownia ! Plante magique ou envahisseur à abattre ? Je vous dit tout !</media:title> <media:description type="plain">cet arbre commence à se faire sa réputation de star, autant chez les permaculteurs, les adeptes d’agriculture syntropique, que dans le monde agricole lui-même. Croissance fulgurante, floraison spectaculaire, bois léger, biomasse, agroforesterie, f...</media:description> </item> <item> <title><![CDATA[Olivier Hamant présente le concept capital de l'anthropocène]]></title> <link>https://peertube2.cpy.re/w/3Z5sQ4uZgmTdaAMwdSWYir</link> <guid>https://peertube2.cpy.re/w/3Z5sQ4uZgmTdaAMwdSWYir</guid> <pubDate>Fri, 14 Nov 2025 20:59:06 GMT</pubDate> <description><![CDATA[Réduire la qualité de la vidéo. S'abonner à la chaîne https://www.youtube.com/@greenletterclub4184 Pour changer le système : Réclamer le RIC constituant : https://petitions.assemblee-nationale.fr/initiatives/i-2491 https://www.mouvement-constitu...]]></description> <content:encoded><![CDATA[<p>Réduire la qualité de la vidéo.</p> <p>S'abonner à la chaîne <a href="https://www.youtube.com/@greenletterclub4184" target="_blank" rel="noopener noreferrer">https://www.youtube.com/@greenletterclub4184</a></p> <p>Pour changer le système :<br /> Réclamer le RIC constituant : <a href="https://petitions.assemblee-nationale.fr/initiatives/i-2491" target="_blank" rel="noopener noreferrer">https://petitions.assemblee-nationale.fr/initiatives/i-2491</a> <a href="https://www.mouvement-constituant-populaire.fr/" target="_blank" rel="noopener noreferrer">https://www.mouvement-constituant-populaire.fr/</a><br /> Changer de banque: <a href="https://www.lanef.com/" target="_blank" rel="noopener noreferrer">https://www.lanef.com/</a> <a href="https://change-de-banque.org/particulier/" target="_blank" rel="noopener noreferrer">https://change-de-banque.org/particulier/</a><br /> Passer à l'action militante: <a href="https://extinctionrebellion.fr/" target="_blank" rel="noopener noreferrer">https://extinctionrebellion.fr/</a> <a href="https://ripostealimentaire.fr/" target="_blank" rel="noopener noreferrer">https://ripostealimentaire.fr/</a><br /> Changer de travail : <a href="https://jobs.makesense.org/fr" target="_blank" rel="noopener noreferrer">https://jobs.makesense.org/fr</a></p> <p>Sources<br /> Hamant <a href="https://www.youtube.com/watch?v=6o7hHRKQa10" target="_blank" rel="noopener noreferrer">https://www.youtube.com/watch?v=6o7hHRKQa10</a><br /> Musique <a href="https://www.youtube.com/watch?v=39PVEaSytpo" target="_blank" rel="noopener noreferrer">https://www.youtube.com/watch?v=39PVEaSytpo</a></p> <p>Réponses au quiz de fin :</p> <p>/!\ Description à ne pas lire avant d'avoir vu la vidéo entièrement<br /> /!\</p> <p>/!\</p> <p>/!\ <br /> /!\</p> <p>Quelle proportion des surfaces agricoles américaines est inexploitables à cause des pfas ?<br /> 1/5.</p> <p>Quelle a été l’évolution de la population irlandaise après la famine de 1848 ?<br /> 8 à 4 millions.</p> <p>Quelle proportion des français ont des pfas dans leurs corps ?<br /> 100%.</p> <p>#hamant #écologie #risque #extrait #ethiqueettac</p> ]]></content:encoded> <dc:creator>ethique_et_tac</dc:creator> <enclosure length="42035622" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/182a6c1f-e7d1-459e-a8d9-43db2daba0e3?videoFileIds=5523086"/> <media:community> <media:statistics views="8"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/3Z5sQ4uZgmTdaAMwdSWYir"/> <media:player url="https://peertube2.cpy.re/w/3Z5sQ4uZgmTdaAMwdSWYir"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/d32585b5-7ed9-4261-b45a-f760fd74bef7-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/7f359ccc-2f3a-420c-99f2-56bfece6a6a8-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/1c6e90d0-906d-4953-a65f-50731d9603b1-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/3d73d3e9-7b16-4140-b5ad-e2dfa9ef14a4-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/b1a24159-c514-4eaa-8a97-7cc04130fb19-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="42035622" url="https://static.indymotion.fr/streaming-playlists/hls/182a6c1f-e7d1-459e-a8d9-43db2daba0e3/151f22e3-4391-43fc-8aab-544a44f68796-1080-fragmented.mp4" framerate="25" duration="300" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="28242142" url="https://static.indymotion.fr/streaming-playlists/hls/182a6c1f-e7d1-459e-a8d9-43db2daba0e3/ed36d110-4a92-4be4-8d6c-5bae3350561d-720-fragmented.mp4" framerate="25" duration="300" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="18433555" url="https://static.indymotion.fr/streaming-playlists/hls/182a6c1f-e7d1-459e-a8d9-43db2daba0e3/003812fa-6596-43ef-931f-9650e73e0712-480-fragmented.mp4" framerate="25" duration="300" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="10093103" url="https://static.indymotion.fr/streaming-playlists/hls/182a6c1f-e7d1-459e-a8d9-43db2daba0e3/8148effd-1047-47bf-89b5-505399f48a7a-240-fragmented.mp4" framerate="25" duration="300" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="4877066" url="https://static.indymotion.fr/streaming-playlists/hls/182a6c1f-e7d1-459e-a8d9-43db2daba0e3/8098b738-016b-47cf-b633-f61962c4d1e2-0-fragmented.mp4" framerate="0" duration="300" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/14a46f90-d4cf-4bcd-8c18-bd982e53306d.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/6c9891c4-f9cd-4722-8988-b7b17606bdad.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Olivier Hamant présente le concept capital de l'anthropocène</media:title> <media:description type="plain">Réduire la qualité de la vidéo. S'abonner à la chaîne https://www.youtube.com/@greenletterclub4184 Pour changer le système : Réclamer le RIC constituant : https://petitions.assemblee-nationale.fr/initiatives/i-2491 https://www.mouvement-constitu...</media:description> </item> <item> <title><![CDATA[Santé mentale : fausses promesses et solutions — STREAM #21]]></title> <link>https://peertube2.cpy.re/w/6SUP3pQUCtnw53saqax2qQ</link> <guid>https://peertube2.cpy.re/w/6SUP3pQUCtnw53saqax2qQ</guid> <pubDate>Fri, 14 Nov 2025 20:31:06 GMT</pubDate> <description><![CDATA[Santé mentale par-ci, santé mentale par-là. Où qu’on tourne la tête, les solutions miracles pour sortir d’une dépression, d’un burn-out, d’une addiction, d’un stress post-traumatique ou d’un simple coup de mou saisonnier ne manquent pas : jus de l...]]></description> <content:encoded><![CDATA[<p>Santé mentale par-ci, santé mentale par-là. Où qu’on tourne la tête, les solutions miracles pour sortir d’une dépression, d’un burn-out, d’une addiction, d’un stress post-traumatique ou d’un simple coup de mou saisonnier ne manquent pas : jus de légumes, breathwork, constellations familiales, microdosing, sylvothérapie, coaching motivationnel, Human design, et j’en passe ! De quoi oublier qu'adhérer à ce type de propositions sauvages, c’est décider de sa santé mentale sur un coup de dés et passer à côté d’une réelle prise en charge.</p> <p>Mais en face, le système de santé officiel est-il vraiment à la hauteur ? Clairement pas : entre manque de moyens et pénurie de professionnel•les, les personnes en souffrance psychique se retrouvent souvent en errance, sur liste d’attente.</p> <p>L’émission d’aujourd’hui est la rediffusion d’une table-ronde filmée, qui a eu lieu en septembre 2025 au ministère de la Santé, à l’occasion de la journée “Foule santé mentale : de l’intime au collectif“, proposée par Psycom, organisme public français de lutte contre les discriminations sur les questions de santé mentale.</p> <p>Au cours de cet échange, une jeune psychiatre, une élue locale, un responsable de la Miviludes, une chargée de l’innovation pédagogique et moi-même faisons un état des lieux des problématiques de santé mentale et proposons des pistes pour une approche moins individualiste et plus collective, qui prenne en compte l’énorme impact des déterminants sociaux, économiques et environnementaux sur notre santé mentale. Un mode d’emploi polyphonique pour sortir de la stigmatisation et de l’injonction à “prendre soin de soi“.</p> <p>Deux interventions m’ont particulièrement intéressée. Celle de Maeva Musso, présidente de l’Association des jeunes psychiatres et jeunes addictologues, sur les effets des inégalités sociales et sur l’intérêt de l'“open dialogue“, nouvelle approche de prise en charge psychiatrique. Et celle de Marie-Christine Staniec-Wavrant, élue de la Ville de Lille, au sujet des moyens mis en œuvre par certaines collectivités pour offrir un cadre de vie favorable à l’épanouissement des habitants.</p> <p>Bonne écoute, bonne réflexion !</p> <p>S O U T E N I R<br /> Pour que Méta de Choc vive, vous pouvez faire un don sur :</p> <ul> <li>Tipeee : <a href="http://bit.ly/3e5abBb" target="_blank" rel="noopener noreferrer">http://bit.ly/3e5abBb</a></li> <li>PayPal : <a href="https://bit.ly/3rnObFH" target="_blank" rel="noopener noreferrer">https://bit.ly/3rnObFH</a> (à partir de 10€ pour éviter la commission exorbitante de PayPal)</li> <li>LiberaPay : <a href="https://bit.ly/2WH4Lpt" target="_blank" rel="noopener noreferrer">https://bit.ly/2WH4Lpt</a></li> </ul> <p>R E S S O U R C E S<br /> Retrouvez de nombreuses références sur le site Méta de Choc :<br /> <a href="https://metadechoc.fr/podcast/sante-mentale-fausses-promesses-et-solutions/" target="_blank" rel="noopener noreferrer">https://metadechoc.fr/podcast/sante-mentale-fausses-promesses-et-solutions/</a>.</p> <p>S U I V R E<br /> Facebook : <a href="https://bit.ly/2yWeVXl" target="_blank" rel="noopener noreferrer">https://bit.ly/2yWeVXl</a><br /> Twitter : <a href="https://bit.ly/2xpJ5BH" target="_blank" rel="noopener noreferrer">https://bit.ly/2xpJ5BH</a><br /> Instagram : <a href="https://bit.ly/2KPLclt" target="_blank" rel="noopener noreferrer">https://bit.ly/2KPLclt</a><br /> LinkedIn : <a href="https://bit.ly/3t1kQ4b" target="_blank" rel="noopener noreferrer">https://bit.ly/3t1kQ4b</a><br /> TikTok : <a href="https://bit.ly/49rHKXJ" target="_blank" rel="noopener noreferrer">https://bit.ly/49rHKXJ</a><br /> Bluesky : <a href="https://bit.ly/3T5y9Ad" target="_blank" rel="noopener noreferrer">https://bit.ly/3T5y9Ad</a><br /> Mastodon : <a href="https://bit.ly/49h8iuR" target="_blank" rel="noopener noreferrer">https://bit.ly/49h8iuR</a><br /> Threads : <a href="https://bit.ly/3wv66By" target="_blank" rel="noopener noreferrer">https://bit.ly/3wv66By</a></p> <p>PeerTube : <a href="https://bit.ly/3f5qX1b" target="_blank" rel="noopener noreferrer">https://bit.ly/3f5qX1b</a><br /> YouTube : <a href="https://bit.ly/35jqGmF" target="_blank" rel="noopener noreferrer">https://bit.ly/35jqGmF</a></p> <p>T I M E C O D E S<br /> 01:32 : Présentation des intervenant•es : Aude Caria, directrice de Psycom - Santé mentale Info, Sophie Arfeuillère, chargée d’innovation pédagogique de Psycom, Élisabeth Feytit, documentariste et créatrice du podcast Méta de Choc, Samir Khalfaoui, conseiller santé de la Miviludes, Maeva Musso, psychiatre et pédopsychiatre, présidente de l’Association des jeunes psychiatres et jeunes addictologues (AJPJA), Marie-Christine Staniec-Wavrant, adjointe santé et lutte contre les exclusions Mairie de Lille, vice-présidente du Réseau français Villes-Santé.<br /> 04:21 : État des lieux des problématiques de santé mentale : soigner et prendre soin, les experts autoproclamés, effet Barnum, différence entre croyance et connaissance, emprise mentale et dérives sectaires, gourous de la santé, dérapeutes, perte de chance, suicide, impact des déterminants sociaux, discriminations vis-à-vis des femmes et des personnes racisées, politique des élus locaux, action locale pour la santé mentale, lien social, urbanisation, emploi.<br /> 31:53 : Les solutions pour améliorer la santé mentale : offres non validées scientifiquement, simplification, sensibiliser à la santé mentale, escalade de l’engagement, individualisation de la responsabilité, retard de diagnostic, effets indésirables de la pensée positive, manifesting, anxiété, les motivations des organisations sectaires, l’importance de la prévention, professionnels de santé déviants, Open dialogue, pair-aidance, déstigmatisation de la psychiatrie et des troubles, Réseau Villes-santé, permanence d’écoute.<br /> 58:58 : Les pistes collectives pour une meilleure santé mentale : culture commune du prendre soin, iceberg des discriminations, écoute des singularités, montrer la complexité, intelligence collective, métacognition et pensée critique, locus de contrôle interne ou externe, témoignages personnels, manque de réglementation des psychothérapeutes, partir des besoins des usagers, responsabilité collective dans l’augmentation des troubles, déserts médicaux, pénurie de psychiatres.</p> <p>#santémentale<br /> #mieuxêtre<br /> #politique</p> ]]></content:encoded> <dc:creator>STREAM !</dc:creator> <category>Education</category> <enclosure length="617942376" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/2f996d82-8814-4fbe-9c77-59fb8af3fd6c?videoFileIds=5523056"/> <media:community> <media:statistics views="15"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/6SUP3pQUCtnw53saqax2qQ"/> <media:player url="https://peertube2.cpy.re/w/6SUP3pQUCtnw53saqax2qQ"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/a010edde-468a-4240-9497-0caa574daeeb-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/d9b14fb9-8d6c-44ee-96f6-53253dd8730f-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/a89ec6d0-724f-406d-813f-b240f2b7d0e0-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/87e5a133-6c20-44d0-b9c0-727ffd9b1df2-360-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/dd0944bb-1cb4-4322-b17f-b2ecaaf7a680-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/ab3ec327-c496-4251-8e56-6150ae46ef8f-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="617942376" url="https://skeptikon.fr/static/streaming-playlists/hls/2f996d82-8814-4fbe-9c77-59fb8af3fd6c/1ba6f9d8-5dde-45d2-8a6c-18ce69a59f1a-1080-fragmented.mp4" framerate="25" duration="4673" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="418094521" url="https://skeptikon.fr/static/streaming-playlists/hls/2f996d82-8814-4fbe-9c77-59fb8af3fd6c/4feb1bc4-bb02-4adf-8b07-b0b0a2fe65dd-720-fragmented.mp4" framerate="25" duration="4673" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="271214183" url="https://skeptikon.fr/static/streaming-playlists/hls/2f996d82-8814-4fbe-9c77-59fb8af3fd6c/c0711710-62c7-45bc-8adf-466b35474acc-480-fragmented.mp4" framerate="25" duration="4673" isDefault="false"/> <media:content type="video/mp4" medium="video" height="360" fileSize="208343028" url="https://skeptikon.fr/static/streaming-playlists/hls/2f996d82-8814-4fbe-9c77-59fb8af3fd6c/9482d3ea-b7ff-4267-af40-3506667f14e2-360-fragmented.mp4" framerate="25" duration="4673" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="153406524" url="https://skeptikon.fr/static/streaming-playlists/hls/2f996d82-8814-4fbe-9c77-59fb8af3fd6c/ab5121b6-3c52-407a-a7dc-f70db334d168-240-fragmented.mp4" framerate="25" duration="4673" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="77242226" url="https://skeptikon.fr/static/streaming-playlists/hls/2f996d82-8814-4fbe-9c77-59fb8af3fd6c/9b615eb0-be05-4c2d-9f0e-7ac2511ba1fb-0-fragmented.mp4" framerate="0" duration="4673" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/b692d0d9-bc3e-430c-b0ea-f0fbee3fb32b.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/50af7c65-2c06-415d-9832-d40eea7b96d0.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">Santé mentale : fausses promesses et solutions — STREAM #21</media:title> <media:description type="plain">Santé mentale par-ci, santé mentale par-là. Où qu’on tourne la tête, les solutions miracles pour sortir d’une dépression, d’un burn-out, d’une addiction, d’un stress post-traumatique ou d’un simple coup de mou saisonnier ne manquent pas : jus de l...</media:description> </item> <item> <title><![CDATA[The Flug (release party) + Sagittarius A - Atomic Cat - 13.11.2025]]></title> <link>https://peertube2.cpy.re/w/1Mz2RRpJZYTNC6uwmNGYrh</link> <guid>https://peertube2.cpy.re/w/1Mz2RRpJZYTNC6uwmNGYrh</guid> <pubDate>Fri, 14 Nov 2025 19:33:17 GMT</pubDate> <description><![CDATA[The Flug: https://theflug.bandcamp.com/album/greatest-tits Sagittarius A: https://sagittariusa1.bandcamp.com/]]></description> <content:encoded><![CDATA[<p>The Flug: <a href="https://theflug.bandcamp.com/album/greatest-tits" target="_blank" rel="noopener noreferrer">https://theflug.bandcamp.com/album/greatest-tits</a></p> <p>Sagittarius A: <a href="https://sagittariusa1.bandcamp.com/" target="_blank" rel="noopener noreferrer">https://sagittariusa1.bandcamp.com/</a></p> ]]></content:encoded> <dc:creator>VisionRobert</dc:creator> <enclosure length="127792208" type="video/mp4" url="https://peertube2.cpy.re/download/videos/generate/065cd38d-ae51-43c1-b96f-fe27843643ba?videoFileIds=5522963"/> <media:community> <media:statistics views="6"/> </media:community> <media:embed url="https://peertube2.cpy.re/videos/embed/1Mz2RRpJZYTNC6uwmNGYrh"/> <media:player url="https://peertube2.cpy.re/w/1Mz2RRpJZYTNC6uwmNGYrh"/> <media:group> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/3af45c73-95dc-4ffb-9188-fb2b2aa2d8c6-1080-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/b9d1b4de-af3b-498e-b5b9-6eaacc3e5336-720-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/18e60ab2-0bcb-4fdb-93db-359114259709-480-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/acd4307f-b0e1-4ca3-ae74-27c602b597f8-240-hls.torrent" isDefault="false"/> <media:peerLink type="application/x-bittorrent" href="https://peertube2.cpy.re/lazy-static/torrents/d3d57ed7-7794-4586-9007-e4733435934f-0-hls.torrent" isDefault="false"/> <media:content type="video/mp4" medium="video" height="1080" fileSize="127792208" url="https://www.yiny.org/static/streaming-playlists/hls/065cd38d-ae51-43c1-b96f-fe27843643ba/943cad76-06e8-4a26-9a65-4d0474ba7351-1080-fragmented.mp4" framerate="25" duration="211" isDefault="true"/> <media:content type="video/mp4" medium="video" height="720" fileSize="60376753" url="https://www.yiny.org/static/streaming-playlists/hls/065cd38d-ae51-43c1-b96f-fe27843643ba/8c2b36af-ee77-42ea-91bb-61f221458724-720-fragmented.mp4" framerate="25" duration="211" isDefault="false"/> <media:content type="video/mp4" medium="video" height="480" fileSize="31867037" url="https://www.yiny.org/static/streaming-playlists/hls/065cd38d-ae51-43c1-b96f-fe27843643ba/7dd0a9fa-d0d6-4357-9a8a-2e05fc3926de-480-fragmented.mp4" framerate="25" duration="211" isDefault="false"/> <media:content type="video/mp4" medium="video" height="240" fileSize="13424538" url="https://www.yiny.org/static/streaming-playlists/hls/065cd38d-ae51-43c1-b96f-fe27843643ba/9d8ee221-c067-418a-bd14-fd21e5304047-240-fragmented.mp4" framerate="25" duration="211" isDefault="false"/> <media:content type="audio/mp4" medium="video" height="0" fileSize="3429025" url="https://www.yiny.org/static/streaming-playlists/hls/065cd38d-ae51-43c1-b96f-fe27843643ba/e0330da7-2e04-418f-86e9-9db07cf2afb9-0-fragmented.mp4" framerate="0" duration="211" isDefault="false"/> </media:group> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/previews/5be7fefb-feab-4aaa-a641-d6345d882517.jpg"/> <media:thumbnail url="https://peertube2.cpy.re/lazy-static/thumbnails/a1d4cabe-1264-47fc-9400-70bc696c1c5e.jpg"/> <media:rating>nonadult</media:rating> <media:title type="plain">The Flug (release party) + Sagittarius A - Atomic Cat - 13.11.2025</media:title> <media:description type="plain">The Flug: https://theflug.bandcamp.com/album/greatest-tits Sagittarius A: https://sagittariusa1.bandcamp.com/</media:description> </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 |
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 .. 255 ] 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 |
{- "username": "chocobozzz",
- "password": "pa$$word",
- "email": "user@example.com",
- "displayName": "string",
- "channel": {
- "name": "framasoft_videos",
- "displayName": "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 .. 255 ] 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 |
{- "username": "chocobozzz",
- "password": "pa$$word",
- "email": "user@example.com",
- "displayName": "string",
- "channel": {
- "name": "framasoft_videos",
- "displayName": "string"
}, - "registrationReason": "string"
}{- "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
}
}| 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 |
{- "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 .. 255 ] 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",
- "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 >= 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 |
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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 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 |
| 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",
- "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",
- "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",
- "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",
- "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",
- "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",
- "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 |
| withStats | boolean include daily view statistics for the last 30 days and total views (only if authenticated as the account user) |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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 |
| 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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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 |
| 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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}
}, - "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 .. 255 ] 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 |
| 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
}{- "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 |
| 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,
- "emailPublic": true,
- "nsfwPolicy": "display",
- "nsfwFlagsDisplayed": 0,
- "nsfwFlagsHidden": 0,
- "nsfwFlagsWarned": 0,
- "nsfwFlagsBlurred": 0,
- "adminFlags": 1,
- "autoPlayNextVideo": true,
- "autoPlayNextVideoPlaylist": true,
- "autoPlayVideo": true,
- "p2pEnabled": true,
- "videosHistoryEnabled": true,
- "videoLanguages": [
- "string"
], - "language": "string",
- "videoQuota": -1,
- "videoQuotaDaily": -1,
- "role": {
- "id": 2,
- "label": "User"
}, - "theme": "string",
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}
], - "blocked": true,
- "blockedReason": "string",
- "noInstanceConfigWarningModal": true,
- "noAccountSetupWarningModal": true,
- "noWelcomeModal": true,
- "createdAt": "string",
- "pluginAuth": "string",
- "lastLoginDate": "2019-08-24T14:15:22Z",
- "twoFactorEnabled": true
}
]| 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,
- "emailPublic": true,
- "nsfwPolicy": "display",
- "nsfwFlagsDisplayed": 0,
- "nsfwFlagsHidden": 0,
- "nsfwFlagsWarned": 0,
- "nsfwFlagsBlurred": 0,
- "adminFlags": 1,
- "autoPlayNextVideo": true,
- "autoPlayNextVideoPlaylist": true,
- "autoPlayVideo": true,
- "p2pEnabled": true,
- "videosHistoryEnabled": true,
- "videoLanguages": [
- "string"
], - "language": "string",
- "videoQuota": -1,
- "videoQuotaDaily": -1,
- "role": {
- "id": 2,
- "label": "User"
}, - "theme": "string",
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}
], - "blocked": true,
- "blockedReason": "string",
- "noInstanceConfigWarningModal": true,
- "noAccountSetupWarningModal": true,
- "noWelcomeModal": true,
- "createdAt": "string",
- "pluginAuth": "string",
- "lastLoginDate": "2019-08-24T14:15:22Z",
- "twoFactorEnabled": true
}| id required | integer (id) >= 1 Example: 42 Entity id |
| adminFlags | integer (UserAdminFlags) Enum: 0 1 Admin flags for the user (None = |
string <email> The updated email of the user | |
| emailVerified | boolean Set the email as verified |
| password | string <password> (password) [ 6 .. 255 ] 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"
}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 |
{- "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 |
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,
- "emailPublic": true,
- "nsfwPolicy": "display",
- "nsfwFlagsDisplayed": 0,
- "nsfwFlagsHidden": 0,
- "nsfwFlagsWarned": 0,
- "nsfwFlagsBlurred": 0,
- "adminFlags": 1,
- "autoPlayNextVideo": true,
- "autoPlayNextVideoPlaylist": true,
- "autoPlayVideo": true,
- "p2pEnabled": true,
- "videosHistoryEnabled": true,
- "videoLanguages": [
- "string"
], - "language": "string",
- "videoQuota": -1,
- "videoQuotaDaily": -1,
- "role": {
- "id": 2,
- "label": "User"
}, - "theme": "string",
- "account": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}
], - "blocked": true,
- "blockedReason": "string",
- "noInstanceConfigWarningModal": true,
- "noAccountSetupWarningModal": true,
- "noWelcomeModal": true,
- "createdAt": "string",
- "pluginAuth": "string",
- "lastLoginDate": "2019-08-24T14:15:22Z",
- "twoFactorEnabled": true
}
]| 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 .. 255 ] 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 .. 255 ] characters |
| theme | string |
| videoLanguages | Array of strings list of languages to filter videos down to |
| 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,
- "p2pEnabled": true,
- "autoPlayVideo": true,
- "autoPlayNextVideo": true,
- "autoPlayNextVideoPlaylist": true,
- "videosHistoryEnabled": true,
- "videoLanguages": [
- "string"
], - "language": "string",
- "theme": "string",
- "noInstanceConfigWarningModal": true,
- "noAccountSetupWarningModal": true,
- "noWelcomeModal": true
}| id required | integer (id) >= 1 Example: 42 Entity id |
| 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 |
| 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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}
}
}
]
}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 |
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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}
}
]
}| avatarfile | string <binary> The file to upload |
{- "avatars": [
- {
- "path": "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",
- "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",
- "channel": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}
}, - "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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}
]
}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 |
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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}
}
]
}| subscriptionHandle required | string Example: my_username | my_username@example.com The subscription handle |
{- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}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 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",
- "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",
- "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",
- "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",
- "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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}
}
]
}| name required | string Example: chocobozzz | chocobozzz@example.org The username or handle of the account |
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 |
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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}
}
]
}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)
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| name | string Value: "cut" |
object |
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 |
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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}
}
]
}{- "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": "Copyrighted - All Rights Reserved"
}{- "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 (Brazilian)",
- "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-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 |
| 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. |
| commentsEnabled | boolean Deprecated Deprecated in 6.2, use commentsPolicy instead |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| 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> Video preview file |
| privacy | |
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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}, - "userHistory": {
- "currentTime": 0
}, - "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"
], - "commentsEnabled": true,
- "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"
}
]
}
]
}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 |
"**[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"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"
}This endpoint has been deprecated. Use /videos/{id}/views instead
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 |
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsEnabled | boolean Deprecated Deprecated in 6.2, use commentsPolicy instead |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| 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> Video preview file |
| privacy | |
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 |
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsEnabled | boolean Deprecated Deprecated in 6.2, use commentsPolicy instead |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| 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> Video preview file |
| privacy | |
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"
], - "commentsEnabled": true,
- "commentsPolicy": 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 |
{- "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 |
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsEnabled | boolean Deprecated Deprecated in 6.2, use commentsPolicy instead |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| 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> Live video/replay preview file |
| privacy | |
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 |
{- "filename": "string",
- "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 |
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",
- "totalHeight": 0,
- "totalWidth": 0,
- "spriteHeight": 0,
- "spriteWidth": 0,
- "spriteDuration": 0
}
]
}| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
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 |
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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}
}
]
}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 |
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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}
}
]
}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 |
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsEnabled | boolean Deprecated Deprecated in 6.2, use commentsPolicy instead |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| 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> Video preview file |
| privacy | |
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 |
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsEnabled | boolean Deprecated Deprecated in 6.2, use commentsPolicy instead |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| 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> Video preview file |
| privacy | |
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"
], - "commentsEnabled": true,
- "commentsPolicy": 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 |
{- "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 |
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsEnabled | boolean Deprecated Deprecated in 6.2, use commentsPolicy instead |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| 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> Video preview file |
| privacy | |
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 |
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 |
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsEnabled | boolean Deprecated Deprecated in 6.2, use commentsPolicy instead |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| 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> Video preview file |
| privacy | |
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"
}, - "captionPath": "string"
}
]
}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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}
]
}| 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 |
| support | any How to support/fund the channel |
{- "displayName": null,
- "description": null,
- "support": null,
- "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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}| 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 |
| support | any How to support/fund the channel |
{- "displayName": null,
- "description": null,
- "support": null,
- "bulkVideosSupportUpdate": true
}| channelHandle required | string Example: my_username | my_username@example.com The video channel handle |
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 |
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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}
}
]
}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",
- "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",
- "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",
- "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",
- "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",
- "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",
- "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",
- "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 |
| withStats | boolean include daily view statistics for the last 30 days and total views (only if authenticated as the account user) |
{- "total": 1,
- "data": [
- {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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 |
| 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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}
}
]
}| 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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}
]
}| 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",
- "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",
- "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",
- "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",
- "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",
- "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 |
| threadId required | integer The thread id (root comment id) |
| 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",
- "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": [
- { }
]
}string or Array of strings PeerTube >= 6.2 filter on comments that contain one of these automatic tags | |
| 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",
- "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",
- "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",
- "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",
- "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",
- "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",
- "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",
- "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",
- "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",
- "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",
- "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",
- "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": 42,
- "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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 0
}
}
}
]
}| 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",
- "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",
- "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",
- "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",
- "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",
- "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",
- "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
}
]
}required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| 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)
required | id (integer) or UUIDv4 (string) or shortUUID (string) The object id, uuid or short uuid |
| name | string Value: "cut" |
object |
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 |
| category | integer (VideoCategorySet) category id of the video (see /videos/categories) |
| commentsEnabled | boolean Deprecated Deprecated in 6.2, use commentsPolicy instead |
| commentsPolicy | integer (VideoCommentsPolicySet) Enum: 1 2 3 Comments policy of the video (Enabled = |
| 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> Live video/replay preview file |
| privacy | |
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 |
{- "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 |
{- "videoChannelId": 42
}{- "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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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 |
| 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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}
}
]
}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"
}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 not could be not federated by the instance.
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 |
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": "/lazy-static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "previewPath": "/lazy-static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg",
- "embedPath": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee",
- "views": 1337,
- "likes": 42,
- "dislikes": 7,
- "comments": 0,
- "nsfw": true,
- "nsfwFlags": 0,
- "nsfwSummary": "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",
- "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",
- "width": 0,
- "height": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "userHistory": {
- "currentTime": 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",
- "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}
]
}| 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",
- "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",
- "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",
- "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",
- "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",
- "channel": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}
}, - "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",
- "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",
- "channel": {
- "id": 42,
- "url": "string",
- "name": "chocobozzz",
- "avatars": [
- {
- "path": "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",
- "isLocal": true,
- "banners": [
- {
- "path": "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",
- "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"
}
}
}, - "createdAt": "2019-08-24T14:15:22Z"
}
]
}| 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",
- "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).
| 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,
- "videoId": 42,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "name": "string",
- "uuid": "9c9de5e8-0a1e-484a-b099-e80766180a6d",
- "description": "string",
- "duration": 0,
- "views": 0,
- "likes": 0,
- "dislikes": 0,
- "nsfw": true
}
]
}| 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,
- "blockedByUser": true
}, - "account2": {
- "blockedByServer": true,
- "blockedByUser": true
}
}, - "hosts": {
- "host1": {
- "blockedByServer": true,
- "blockedByUser": true
}, - "host2": {
- "blockedByServer": true,
- "blockedByUser": true
}
}
}| 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,
- "blockedByUser": true
}, - "account2": {
- "blockedByServer": true,
- "blockedByUser": true
}
}, - "hosts": {
- "host1": {
- "blockedByServer": true,
- "blockedByUser": true
}, - "host2": {
- "blockedByServer": true,
- "blockedByUser": true
}
}
}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"
], - "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"
]
}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"
]
}{- "client": {
- "header": {
- "hideInstanceName": false
}, - "videos": {
- "miniature": {
- "preferAuthorDisplayName": true
}, - "resumableUpload": {
- "maxChunkSize": 0
}
}, - "browseVideos": {
- "defaultSort": "-publishedAt",
- "defaultScope": "federated"
}, - "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,
- "commentsEnabled": true,
- "privacy": 4,
- "licence": null
}, - "p2p": {
- "webapp": {
- "enabled": false
}, - "embed": {
- "enabled": false
}
}, - "player": {
- "theme": "galaxy",
- "autoPlay": true
}
}, - "webadmin": {
- "configuration": {
- "edition": {
- "allowed": 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",
- "avatars": [
- {
- "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"
}, - {
- "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": 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": 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"
}
], - "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": 48,
- "width": 48,
- "type": "favicon",
- "isFallback": true
}, - {
- "height": 120,
- "width": 120,
- "type": "favicon",
- "isFallback": true
}, - {
- "height": 600,
- "width": 600,
- "type": "favicon",
- "isFallback": true
}, - {
- "height": 1500,
- "width": 1500,
- "type": "favicon",
- "isFallback": true
}, - {
- "height": 48,
- "width": 48,
- "type": "header-square",
- "isFallback": true
}, - {
- "height": 120,
- "width": 120,
- "type": "header-square",
- "isFallback": true
}, - {
- "height": 600,
- "width": 600,
- "type": "header-square",
- "isFallback": true
}, - {
- "height": 1500,
- "width": 1500,
- "type": "header-square",
- "isFallback": true
}, - {
- "height": 48,
- "width": 48,
- "type": "header-wide",
- "isFallback": true
}, - {
- "height": 120,
- "width": 120,
- "type": "header-wide",
- "isFallback": true
}, - {
- "height": 600,
- "width": 600,
- "type": "header-wide",
- "isFallback": true
}, - {
- "height": 1500,
- "width": 1500,
- "type": "header-wide",
- "isFallback": true
}, - {
- "height": 48,
- "width": 48,
- "type": "opengraph",
- "isFallback": true
}, - {
- "height": 120,
- "width": 120,
- "type": "opengraph",
- "isFallback": true
}, - {
- "height": 600,
- "width": 600,
- "type": "opengraph",
- "isFallback": true
}, - {
- "height": 1500,
- "width": 1500,
- "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.6",
- "description": "Auto mute plugin for PeerTube",
- "clientScripts": { }
}, - {
- "npmName": "peertube-plugin-matomo",
- "name": "matomo",
- "version": "1.0.2",
- "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-auth-ldap",
- "name": "auth-ldap",
- "version": "0.0.14",
- "description": "Add LDAP support to login form in PeerTube.",
- "clientScripts": { }
}, - {
- "npmName": "peertube-plugin-livechat",
- "name": "livechat",
- "version": "14.0.1",
- "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-akismet",
- "name": "akismet",
- "version": "0.1.2",
- "description": "Reject local comments, remote comments and registrations based on Akismet service",
- "clientScripts": {
- "dist/common-client-plugin.js": {
- "script": "dist/common-client-plugin.js",
- "scopes": [
- "common"
]
}
}
}, - {
- "npmName": "peertube-plugin-transcoding-custom-quality",
- "name": "transcoding-custom-quality",
- "version": "0.2.0",
- "description": "Set a custom quality for transcoding",
- "clientScripts": { }
}
], - "registeredExternalAuths": [ ],
- "registeredIdAndPassAuths": [
- {
- "npmName": "peertube-plugin-auth-ldap",
- "name": "auth-ldap",
- "version": "0.0.14",
- "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,
- "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": "7.3.0-nightly-2025-11-14",
- "serverCommit": "",
- "transcoding": {
- "remoteRunners": {
- "enabled": true
}, - "hls": {
- "enabled": true
}, - "web_videos": {
- "enabled": false
}, - "enabledResolutions": [
- 0,
- 240,
- 480
], - "profile": "custom-quality",
- "availableProfiles": [
- "default",
- "custom-quality"
]
}, - "live": {
- "enabled": true,
- "allowReplay": true,
- "latencySetting": {
- "enabled": true
}, - "maxDuration": -1,
- "maxInstanceLives": 20,
- "maxUserLives": 4,
- "transcoding": {
- "enabled": true,
- "remoteRunners": {
- "enabled": true
}, - "enabledResolutions": [
- 360
], - "profile": "default",
- "availableProfiles": [
- "default",
- "custom-quality"
]
}, - "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
}
}, - "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"
]
}
}, - "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",
- ".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": {
}, - "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": false
}, - "homepage": {
- "enabled": true
}, - "openTelemetry": {
- "metrics": {
- "enabled": true,
- "playbackStatsInterval": 15000
}
}, - "views": {
- "videos": {
- "remote": {
- "maxAge": 2592000000
}, - "local": {
- "maxAge": -1
}, - "watchingInterval": {
- "anonymous": 5000,
- "users": 5000
}
}
}, - "storyboards": {
- "enabled": true,
- "remoteRunners": {
- "enabled": false
}
}, - "webrtc": {
- "stunServers": [
- "stun:stunserver2024.stunprotocol.org",
- "stun:stun.framasoft.org"
]
}, - "nsfwFlagsSettings": {
- "enabled": true
}, - "fieldsConstraints": {
- "users": {
- "password": {
- "minLength": 8,
- "maxLength": 50
}
}
}, - "signup": {
- "allowed": false,
- "allowedForCurrentIP": true,
- "minimumAge": 16,
- "requiresApproval": true,
- "requiresEmailVerification": true
}
}{- "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": "",
- "administrator": "",
- "maintenanceLifetime": "",
- "businessModel": "",
- "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": 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"
}, - {
- "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": 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": 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"
}
]
}
}{- "instance": {
- "name": "string",
- "shortDescription": "string",
- "description": "string",
- "terms": "string",
- "codeOfConduct": "string",
- "creationReason": "string",
- "moderationInformation": "string",
- "administrator": "string",
- "maintenanceLifetime": "string",
- "businessModel": "string",
- "hardwareInformation": "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
}
}
}, - "followers": {
- "instance": {
- "enabled": true,
- "manualApproval": true
}
}, - "storyboard": {
- "enabled": true
}, - "defaults": {
- "publish": {
- "downloadEnabled": true,
- "commentsPolicy": 1,
- "privacy": 1,
- "licence": 2
}, - "p2p": {
- "webapp": {
- "enabled": true
}, - "embed": {
- "enabled": true
}
}, - "player": {
- "autoPlay": true
}
}
}Set a cookie so that, the next time the client refreshes the HTML of the web interface, PeerTube will use the next language
| language required | string Language code to set |
{- "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",
- "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",
- "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",
- "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",
- "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 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,
- "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"
}Jobs are long-running tasks enqueued and processed by the instance itself. No additional worker registration is currently available.
| 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 Enum: "activitypub-follow" "activitypub-http-broadcast" "activitypub-http-fetcher" "activitypub-http-unicast" "email" "video-transcoding" "video-file-import" "video-import" "videos-views-stats" "activitypub-refresher" "video-redundancy" "video-live-ending" "video-channel-import" 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-http-unicast",
- "data": { },
- "error": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "finishedOn": "2019-08-24T14:15:22Z",
- "processedOn": "2019-08-24T14:15:22Z"
}
]
}| 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"
}
}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 |
{- "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"
}
]
}