All systems operationalВсе системы работают

Media sessions, in sync at the edge Медиа-сессии в синхроне на edge

PlaySync is a lightweight SDK and session API that keeps playback state — position, tokens, adaptive-bitrate decisions — consistent across every device a viewer uses. Delivered from edge PoPs so the round-trip stays low everywhere. PlaySync — это лёгкий SDK и session API, который держит состояние воспроизведения — позицию, токены, решения по адаптивному битрейту — одинаковым на всех устройствах зрителя. Доставка с edge-узлов, чтобы round-trip оставался низким везде.

How it worksКак это работает

Three calls, one synced playerТри вызова — синхронный плеер

The SDK manages the whole session lifecycle over a single edge-delivered channel.SDK ведёт весь жизненный цикл сессии через один канал, доставляемый с edge.

1

Create a sessionСоздать сессию

A short-lived playback token and session id are issued and pinned to the viewer.Выдаётся короткоживущий playback-токен и id сессии, привязанные к зрителю.

2

Poll for deltasПоллинг дельт

The client long-polls the edge with a cursor and receives only what changed since.Клиент долго-поллит edge с курсором и получает только то, что изменилось.

3

Stay warmДержать сессию

Heartbeats keep idle sessions alive; ending a session releases the token.Heartbeat держит простаивающие сессии; завершение освобождает токен.

Why we run on a CDNЗачем нам CDN

Polling has to be fast, everywhereПоллинг должен быть быстрым везде

A media session is only useful if the client can refresh it in a few milliseconds. Running the SDK and the session endpoint behind a global CDN puts both close to the viewer.Сессия полезна, только если клиент может обновить её за несколько миллисекунд. CDN держит и SDK, и session-endpoint близко к зрителю.

38 ms
median poll round-tripмедианный round-trip
120+
edge PoPsedge-узлов
99.98%
session API uptimeаптайм API
6 KB
gzipped SDKSDK в gzip

FeaturesВозможности

Built for real playersСделано для настоящих плееров

🔑

Token-scoped sessionsСессии по токену

Each session is bound to a short-lived token, so links can't be replayed once it ends.Каждая сессия привязана к короткоживущему токену — ссылку нельзя переиграть после завершения.

🔁

Cursor long-pollingКурсорный long-poll

The client advances an offset cursor each poll; the API returns only the delta.Клиент двигает offset-курсор на каждом поле; API отдаёт только дельту.

📊

Built-in QoE signalsВстроенные QoE-сигналы

Rebuffer ratio, startup time and bitrate switches on the same channel.Rebuffer ratio, время старта и переключения битрейта в том же канале.

📦

Edge-cached SDKSDK в edge-кэше

player.js is versioned and cached at the PoP nearest the viewer.player.js версионируется и кэшируется на ближайшем PoP.

🌍

Global manifestsГлобальные манифесты

Static manifests ride the CDN while session state stays dynamic.Статичные манифесты едут через CDN, а состояние сессии остаётся динамическим.

🧩

Framework-agnosticБез привязки к фреймворку

Plain JS core with adapters for hls.js, Shaka and native players.Ядро на чистом JS с адаптерами для hls.js, Shaka и нативных плееров.

Use casesСценарии

Where teams use PlaySyncГде это применяют

📺

Resume across devicesПродолжить на другом устройстве

Pick up playback at the exact position on phone, TV and web.Продолжайте с той же позиции на телефоне, ТВ и в вебе.

🎬

Watch partiesСовместный просмотр

Keep multiple viewers on the same frame with a shared session.Держите зрителей на одном кадре через общую сессию.

📈

Live QoE analyticsЖивая QoE-аналитика

Stream playback quality signals back without a second SDK.Отправляйте сигналы качества без второго SDK.

🔐

Token-gated streamsСтримы по токену

Bind each viewing session to a revocable playback token.Привязывайте просмотр к отзываемому playback-токену.

What teams sayОтзывы

“We dropped our resume-position bug reports to near zero after switching the session layer to PlaySync.”«После перехода на PlaySync баги с позицией воспроизведения упали почти до нуля.»

A. VolkovPlayer Lead, StreamiqPlayer Lead, Streamiq

“The edge polling latency is genuinely better than what we ran ourselves.”«Задержка edge-поллинга реально ниже, чем была у нас на своём.»

M. SatoSRE, KinoflowSRE, Kinoflow

“One script tag and our watch-party sync just worked.”«Один тег скрипта — и синхрон совместного просмотра просто заработал.»

L. PereiraFrontend, Vibe.tvFrontend, Vibe.tv

FAQ

Common questionsЧастые вопросы

Do I need a CDN to use PlaySync?Нужен ли CDN для PlaySync?

It's recommended. The SDK and session endpoint are designed to be delivered from edge PoPs; the sandbox already runs behind one.Рекомендуется. SDK и session-endpoint рассчитаны на доставку с edge-узлов; песочница уже работает за CDN.

Is the session endpoint cached?Кэшируется ли session-endpoint?

No. The /api/ prefix is always served fresh; only the SDK and static manifests are cacheable.Нет. Префикс /api/ всегда отдаётся свежим; кэшируются только SDK и статичные манифесты.

Which players are supported?Какие плееры поддерживаются?

Any. The core is plain JS with adapters for hls.js, Shaka and native HTML5 video.Любые. Ядро на чистом JS с адаптерами для hls.js, Shaka и нативного HTML5-видео.

Ready to sync your player?Готовы синхронизировать плеер?

Tell us about your use case and we'll connect your account. Sandbox access is granted on request.Расскажите о вашем кейсе — и мы подключим ваш аккаунт. Доступ к песочнице выдаётся по запросу.

Request accessЗапросить доступ