dodocastӘзірлеушілергеPlayer SDK

Player SDKсайтыңыз бен серверіңізге.

@dodocast/player dodocast плеерін беттеріңізге орналастырады, тікелей HLS сілтемелерін жасайды, 24/7 арнада қазір және келесіде не жүретінін оқиды және бэкендіңізде жабық бейнеге сілтемелерге қол қояды. Тәуелділіктері жоқ, TypeScript типтері бар, MIT лицензиясы.

# орнату npm install @dodocast/player
import { mount } from '@dodocast/player' mount('#player', { kind: 'video', code: 'abc123XYZ0', start: 90 })
Не істейді

Төрт міндет, қарапайым функциялар.

МіндетФункцияларНемен жұмыс істейді
Сілтемелер және embedwatchUrl(), embedUrl(), embedHtml(), mount() — адаптивті немесе тұрақты өлшем, басталу уақыты, плейлист элементі, жабық сілтеме құпиясыбейнелер, плейлистер, трансляциялар, 24/7 арналар
Тікелей HLS сілтемелеріstreamUrl() — fMP4/CMAF, MPEG-TS, бейнелерге byte-rangeбейнелер, трансляциялар, 24/7 арналар; Pro және Business
Арна деректеріgetChannelState() (қазір және келесі), getChannelGuide() (екі аптаға дейін), progress()жарияланған 24/7 арналар
Қолтаңбалы сілтемелер@dodocast/player/server ішіндегі signToken(), signedStreamUrl(), signedPlaylistItemUrl() — JWT, HS256, 24 сағ дейінөз контентіңіз; Node.js 18+
Ендіру

Консольдегідей embed.

embedHtml() консольдегі «Embed» батырмасы беретін белгілеуді қайтарады; mount() оны бетіңіздегі элементке қояды.

  • Әдепкі бойынша адаптивті, кез келген арақатынаспен — тік бейне үшін aspect: [9, 16].
  • Бейнені start арқылы керекті секундтан бастаңыз, плейлистті item арқылы керекті элементте ашыңыз.
  • Плеердің қай жерде көрінетіні консольде әр бейнеге бөлек орнатылады: барлық жерде, ешқайда немесе 50-ге дейінгі доменде.
import { embedHtml } from '@dodocast/player' embedHtml({ kind: 'playlist', code: 'PL0aB1cD2e', item: 'abc123XYZ0' }) // <div style="position:relative;padding-top:56.25%"> // <iframe src="https://watch.dodocast.com/embed/pl/…"> embedHtml({ kind: 'channel', code: 'CHxYz12345', mode: 'fixed', width: 960, height: 540 })
24/7 арналар

«Қазір эфирде» виджеті — бірнеше жолда.

Әр жарияланған арна өз күйін және хабарлар бағдарламасын ашық JSON түрінде береді. SDK екеуін де оқиды және сервер сағатына негізделген прогресс мәнін береді.

  • getChannelState(): эфирде ме, жоқ па, ағымдағы және келесі элемент, ағымдағы және келесі кестедегі хабар.
  • getChannelGuide(): әдепкі бойынша алдағы 24 сағат, from және to арқылы екі аптаға дейінгі кез келген аралық.
  • Күйді әр 10–30 секунд сайын сұраңыз; push-арна жоқ.
import { getChannelState, getChannelGuide, progress } from '@dodocast/player' const state = await getChannelState('CHxYz12345') if (state.state === 'ON') { const item = state.currentItem show(item?.title, progress(state, item)) showNext(state.nextItem?.title) } const guide = await getChannelGuide('CHxYz12345') // [{ title, startsAtMs, endsAtMs, poster, … }]
Өз плееріңіз

hls.js, Safari және теледидарларға тікелей HLS.

streamUrl() манифест URL-ін құрастырады. Ашық контент одан тікелей ойнайды; қалғаны серверіңізде сілтемеге қол қойылғанша 403 қайтарады.

  • Бейнелер: fMP4/CMAF, MPEG-TS және byte-range манифестері. Трансляциялар мен арналар: fMP4/CMAF және MPEG-TS.
  • Шифрланған контент стандартты HLS плеерлерде ойнайды: кілт URI-і манифесте көрсетілген.
  • Ұстап қалу мен соңына дейін көруді dodocast плеері өлшейді; өз плееріңіздегі көрулер трафик ретінде есептеледі.
import Hls from 'hls.js' import { streamUrl } from '@dodocast/player' const src = streamUrl({ kind: 'video', code: 'abc123XYZ0' }) const video = document.querySelector('video') if (video.canPlayType('application/vnd.apple.mpegurl')) { video.src = src } else { const hls = new Hls() hls.loadSource(src) hls.attachMedia(video) }
Қолтаңбалы сілтемелер

Кім көретінін бэкендіңіз шешеді.

Консольде «Settings» → «Signing keys» бөлімінде кілт жасаңыз. Серверіңіз бір бейнеге, плейлистке, трансляцияға немесе арнаға токен береді; қалғанын плеер өзі істейді.

  • Тақырып { alg: HS256, kid }, денесі { code, iat, exp }, жарамдылық мерзімі 24 сағатқа дейін.
  • Құпия консоль көрсеткендей, дәл сол жол ретінде пайдаланылады. Оны ешқашан браузерге жібермеңіз.
  • Python, PHP және Kotlin мысалдары қолтаңбалы сілтемелер нұсқаулығында.
import { signedStreamUrl } from '@dodocast/player/server' const key = { id: process.env.DODOCAST_KEY_ID, secret: process.env.DODOCAST_KEY_SECRET } const url = signedStreamUrl(key, { kind: 'video', code: 'abc123XYZ0', ttl: 1800 }) // https://stream.dodocast.com/s/<jwt>/hls/mp4/…
Әзірге жоқ

SDK не істемейді.

Мұны басынан ескеріп жоспарлай алуыңыз үшін.

  • Ойнату API-і жоқ: ендірілген плеерде play, pause немесе seek шақыру немесе оның оқиғаларын тыңдау мүмкін емес. Интеграция — iframe; басталу уақыты мен плейлист элементі URL-де беріледі.
  • Жүктеу немесе басқару API-і жоқ: бейнелерді консольде жүктеп, реттеңіз.
  • DASH және DRM жоқ. Шифрлау — HLS AES-128 немесе SAMPLE-AES.
  • Тікелей камера немесе энкодер кірісі жоқ: трансляциялар мен арналар жүктелген бейнелерді эфирге шығарады.
Құрастыру қадамынсыз жұмыс істей ме?

Иә. Бұл қарапайым ES модульдері: оны бандлеріңізде npm-нен немесе script тегінде ESM CDN-нен импорттаңыз.

Маған қай тариф керек?

Embed және арна деректері барлық тарифте жұмыс істейді. Тікелей HLS сілтемелері мен қолтаңбалы сілтемелер — Pro және Business тарифтерінде.

Сілтемелер қайда апарады?

Әдепкі бойынша watch.dodocast.com және stream.dodocast.com мекенжайларына. Ерте қолжетімділік кезінде сізге берілген хосттарды hosts опциясымен беріңіз.

Бұл ашық бастапқы код па?

Иә, MIT. GitHub-та issue және pull request-терді қуана қабылдаймыз.

Жақында іске қосылады

Арнаңызға дейін — бір жүктеу.

dodocast-ты алғашқы серіктестерге ашамыз: медиа, білім, оқиғалар, корпоративтік ТВ. Эфирге не шығарғыңыз келетінін айтыңыз.

немесе жазыңыз hello@dodocast.com

dodocast консолі әзірге тек ағылшын және орыс тілдерінде қолжетімді.