ذکر شده یونایتد: ارائه دهنده Peertube – Community Dev

من اغلب با فیلم ها کار نمی کنم ، به خصوص در رسانه های اجتماعی. اما هر از چند گاهی یکی را با تلفن هوشمند خود ضبط می کنم ، به عنوان مثال در یک کنسرت یا یک مسابقه فوتبال ، و می خواهم بعداً درباره این رویداد وبلاگ کنم. سپس پرونده های MP4 را به عنوان دارایی در علامت گذاری مربوطه جاسازی کردم. با گذشت سالها ، چند مگابایت انباشته شده است و در بعضی از مواقع مجبور شدم در مورد اینکه کجا آنها را قرار دهم فکر کنم تا اندازه وبلاگ زیر 1 گیگابایت باشد. برون سپاری به یوتیوب؟ من می توانم ، اما این جهت اشتباه برای من خواهد بود. چیزی در Fediverse یا وب اجتماعی؟ البته … لوله گلابی!
در نمونه آلمانی کلیپ. مکان با استفاده از Adminforge ، کانال برای فیلم ها به سرعت ایجاد و بارگذاری شد. اساساً من فقط مجبور شدم URL را در video
وت iframe
برچسب ها به موارد جدید.
من انتظار زیادی در مورد فیلم های خود در Clip.place ندارم ، زیرا در حال حاضر بیشتر از آن به عنوان یک مخزن یا هدف سندیکا استفاده می کنم ، اما شما هرگز نمی دانید … و از آنجا که من تاکنون یک افزونه ارائه دهنده ارائه دهنده یونایتد را به تمام سیستم عامل های متصل من که دارای API رایگان هستند اضافه کرده ام ، اکنون یکی نیز در دسترس است لوله گلابیبشر
مثل همیشه ، داده های این افزونه ، یعنی URL های ویدیویی ، در جلوی پست من قرار دارند. در اینجا نمونه ای از پست کنسرت من Wirtz DNA-Tour 2024 ، Leipzig @ 2024-02-17 آورده شده است:
syndication:
- host: Peertube
url: https://clip.place/w/quf3PWpmKJjRwm89axBLY2
در الگوی EJS برای پست های من ، بررسی می شود که آیا حداقل یک سندیکای Peertube برای پست فعلی وجود دارد و اگر چنین است ، افزونه ارائه دهنده Peertube پس از ذکر اصلی اسکریپت یونایتد در کد JS یکپارچه و اولیه می شود. بالاخره ، retrieve
روش موجود در افزونه از طریق General Mintions United خوانده می شود load
و در صورت وجود نظرات در صفحه نمایش داده می شود.
let synPeertube = syndications?.filter(s => s.host.toLowerCase() === "peertube");
<% if (synPeertube?.length > 0) { %>
<%- js('js/mentions-united-provider_peertube.js'); %>
<% } %>
در واقع ، همه چیز مانند همیشه است ، اما API Peertube هنوز یک ویژگی خاص دارد: اگرچه یک API باز و آرام وجود دارد ، اما هیچ نشانه ای از AUT وجود ندارد که بتواند در UI حساب ایجاد شود. درعوض ، شما ابتدا باید نشانه های مشتری را از طریق API بازیابی کنید تا یک نشانه AUTH معتبر به مدت 24 ساعت ، همچنین از طریق نقطه انتهایی استراحت ایجاد کنید. کمی دست و پا گیر است ، اما شما همچنین می توانید نظرات یک فیلم را از طریق فرمت API JSON ویدیویی بدون توکن بازیابی کرده و مقدار داده ها را با یک پارامتر برای شناسه ویدیویی محدود کنید:
/feeds/video-comments.json?videoId={{ID}}
متأسفانه ، این روش دارای یک صید کوچک است: بر خلاف API REST ، فید داده های نویسنده کاملی از نظر را ارائه نمی دهد ، بلکه فقط نام نمایش و URL پروفایل است:
"author": {
"name": "Kristof Zerbe",
"url": "https://clip.place/accounts/kiko"
}
خوشبختانه ، نقطه پایانی استراحت /api/v1/accounts
نیازی به یک نشانه نویس ندارد و بنابراین من همه نویسندگان منحصر به فرد را در افزونه ارائه دهنده Peertube جمع آوری می کنم ، name
از URL نمایه و از آن برای بازیابی داده های کامل به طور جداگانه استفاده کنید. به عنوان مثال:
{
"url": "https://clip.place/accounts/kiko",
"name": "kiko",
"host": "clip.place",
"avatars": [
{
"width": 48,
"path": "/lazy-static/avatars/e0891432-0f45-48c5-86c0-594a395f3d91.png",
"fileUrl": "https://clip.place/lazy-static/avatars/e0891432-0f45-48c5-86c0-594a395f3d91.png",
"createdAt": "2025-04-01T06:16:21.893Z",
"updatedAt": "2025-04-01T06:16:21.893Z"
},
{ "width": 120, ... }
{ "width": 600, ... },
{ "width": 1500, ... }
],
"id": 17957,
"hostRedundancyAllowed": false,
"followingCount": 0,
"followersCount": 0,
"createdAt": "2025-03-31T07:15:05.857Z",
"displayName": "Kristof Zerbe",
"description": "https://kiko.io",
"updatedAt": "2025-04-01T06:10:52.234Z",
"userId": 213
}
من عمدتاً روی URL آواتار متمرکز شده ام ، زیرا یک تصویر کوچک از مفسران استانداردی برای ذکر تعاملات یونایتد است و من نمی خواهم از این امر منحرف شوم.
البته تعداد درخواست های اضافی برای بسیاری از نظرات با این رویکرد به میزان قابل توجهی افزایش می یابد ، اما من قبلاً یک مسئله (شماره 6998) را برای این کار در پروژه GitHub باز کرده ام. بیایید ببینیم چه زمانی می توانم بازیابی حساب را دوباره حذف کنم.
در اینجا مثالی وجود دارد که من برای آزمایش افزونه جدید ارائه دهنده Peertube استفاده کردم: https://kiko.io/post/wirtz-dna-tour-2024-leipzig-2024-17/#interactions
پست اصلی در kiko.io: https://kiko.io/post/mentions-united-peertube-provider/