Відбувся випуск децентралізованої платформи для організації відеохостингу та відеомовлення PeerTube 6.0. PeerTube пропонує незалежну від окремих постачальників альтернативу YouTube, Dailymotion та Vimeo, що використовує мережу розповсюдження контенту на базі P2P-комунікацій та зв'язування між собою браузерів відвідувачів. Напрацювання проекту поширюються за ліцензією AGPLv3.
Основні нововведення:
- Додана можливість розміщення відеозахищених паролем. Пароль можна виставити при завантаженні, імпорті або оновленні, після чого тільки користувачі знають пароль зможуть отримати доступ до контенту. Через REST API можна задавати кілька паролів (наприклад, кожному користувачеві можна видавати окремий пароль) та відкликати видані паролі.
- Забезпечено показ ескізів при переміщенні вказівника миші по повзунку, що відображає позицію відтворення, що дозволяє переміщатися по потоку. Розкадрування з ескізами формується під час завантаження чи імпорту відео, тобто. підтримка ескізів стане доступною лише для нових відео, завантажених після оновлення вузла до PeerTube 6.0. Для створення ескізів до старих відео адміністратору слід виконати команду npm run create-generate-storyboard-job.
- Додана можливість завантаження нової версії відео, яку можна використовувати для оновлення відео, наприклад, після виправлення помилки або додавання інформації, що бракує. Після оновлення старий варіант відео безповоротно втрачається і за старим посиланням стає доступним оновлений варіант (зберігаються також коментарі та статистика). Так як можливість може використовуватися для зловживань, наприклад, для встановлення реклами після перевірки, адміністратор повинен явно включити підтримку завантаження оновлень на своїй платформі.
- Додано можливість прикріплення змісту до відео, що дозволяє переглянути список епізодів та швидко перемикатися між ними. Для визначення епізодів на сторінку з налаштуваннями додано вкладку «chapters», на якій може визначити час початку та опис основних моментів у відео. Епізоди також автоматично переносяться під час імпорту відео з YouTube.
- Продовжено внесення змін та оптимізації, підготовлених на основі стрес-тестування live-мовлення та класичного стримінгу відео з кількома тисячами одночасних учасників. Наприклад, проведено оптимізацію обробки unicast HTTP у робочих потоках, завірення запитів ActivityPub, обробки рекомендацій, SQL-запитів з фільтрацією за тегами, масових запитів /videos/{id}/views. Додано можливість відключення HTTP-логу.
- Видалено підтримку протоколу WebTorrent, а розробку сфокусовано на використанні протоколу HLS (HTTP Live Streaming) з WebRTC для P2P.
- Підвищена ефективність відеопрогравача, в якому забезпечено автоматичний вибір розміру вікна з урахуванням співвідношення сторін відео, реалізовано запам'ятовування налаштувань та прибрано перебудову при зміні відео.
- Поліпшено підтримку можливостей для пошукових оптимізаторів (SEO).
- Розширено кошти для людей із обмеженими можливостями.
Платформа PeerTube спочатку була заснована на застосуванні BitTorrent-клієнта WebTorrent, що запускається у браузері та використовує технологію WebRTC для організації прямого P2P-каналу зв'язку між браузерами. Пізніше замість WebTorrent був задіяний протокол HLS (HTTP Live Streaming) у зв'язці з WebRTC, що дозволяє адаптивно управляти потоком залежно від смуги пропускання. Для об'єднання розрізнених серверів з відео до загальної федеративної мережі, в якій відвідувачі беруть участь у доставці контенту та мають можливість підписки на канали та отримання повідомлень про нові відео, задіяний протокол ActivityPub. Web-інтерфейс, що надається проектом, побудований з використанням фреймворку Angular.
Федеративна мережа PeerTube утворюється як співдружність пов'язаних між собою невеликих серверів хостингу відео, на кожному з яких є свій адміністратор та можуть бути прийняті свої правила. Кожен сервер з відео виконує роль BitTorrent-трекера, на якому розміщено облікові записи користувачів даного сервера та їх відео. Ідентифікатор користувача формуються у формі «@ім'я_користувача@домен_сервера». Передача даних під час перегляду здійснюється безпосередньо з браузерів інших відвідувачів, які переглядають контент.
Якщо відео не переглядається, віддача організується сервером, на який спочатку завантажено відео (використовується протокол WebSeed). Крім розподілу трафіку між користувачами, що переглядають відео, PeerTube також дозволяє вузлам, запущеним авторами для первинного розміщення відео, кешувати відео інших авторів, формуючи розподілену мережу не тільки з клієнтів, але і серверів, а також забезпечуючи відмовостійкість. Є підтримка потокового мовлення (live streaming) з доставкою контенту в режимі P2P (для керування стрімінгом можуть використовуватися типові програми, такі як OBS).
Для початку мовлення через PeerTube користувачеві достатньо завантажити на один із серверів відеоролик, опис та набір тегів. Після цього ролик стане доступним у всій федеративній мережі, а не лише з сервера первинного завантаження. Для роботи з PeerTube та участі у розповсюдженні контенту достатньо звичайного браузера і не потрібне встановлення додаткового ПЗ. Користувачі можуть відстежувати активності у вибраних відеоканалах, підписавшись на канали, що цікавлять, у федеративних соціальних мережах (наприклад, у Mastodon і Pleroma) або через RSS. Для поширення відео з використанням P2P-комунікацій користувач також може додати на свій сайт спеціальний віджет із вбудованим web-плеєром.
В даний час для розміщення контенту функціонує 1122 сервери, що підтримуються різними добровольцями та організаціями. Якщо користувач не влаштовує правила розміщення відео на певному сервері PeerTube, він може підключитися до іншого сервера або запустити свій власний сервер. Для швидкого розгортання сервера надається налаштований образ у форматі Docker (chocobozzz/peertube).
Джерело: opennet.ru
