@videojs/html 10.0.0-beta.30 → 10.0.0-beta.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cdn/audio-minimal-ui.dev.js +1 -1
- package/cdn/audio-minimal-ui.js +1 -1
- package/cdn/audio-minimal.dev.js +4 -4
- package/cdn/audio-minimal.dev.js.map +1 -1
- package/cdn/audio-minimal.js +1 -1
- package/cdn/audio-minimal.js.map +1 -1
- package/cdn/audio-player.dev.js +1 -0
- package/cdn/audio-player.js +1 -0
- package/cdn/audio-ui.dev.js +1 -1
- package/cdn/audio-ui.js +1 -1
- package/cdn/audio.dev.js +4 -4
- package/cdn/audio.dev.js.map +1 -1
- package/cdn/audio.js +1 -1
- package/cdn/audio.js.map +1 -1
- package/cdn/background.dev.js +1 -1
- package/cdn/background.js +1 -1
- package/cdn/{compounds-D1FPw7jg.js → compounds-BA8gXlmJ.js} +32 -188
- package/cdn/compounds-BA8gXlmJ.js.map +1 -0
- package/cdn/compounds-DKoFv2f8.js +8 -0
- package/cdn/compounds-DKoFv2f8.js.map +1 -0
- package/cdn/{create-player-5UrHNqBI.js → create-player-BEEc22xK.js} +18 -2
- package/cdn/{create-player-5UrHNqBI.js.map → create-player-BEEc22xK.js.map} +1 -1
- package/cdn/create-player-D5WQ_jzZ.js +2 -0
- package/cdn/{create-player-LjvbIxIq.js.map → create-player-D5WQ_jzZ.js.map} +1 -1
- package/cdn/{gesture-element-BbNy1Pjt.js → gesture-element-CxdagZOo.js} +2 -2
- package/cdn/{gesture-element-BbNy1Pjt.js.map → gesture-element-CxdagZOo.js.map} +1 -1
- package/cdn/{gesture-element-KdpjbbBD.js → gesture-element-x6kojUJk.js} +3 -3
- package/cdn/{gesture-element-KdpjbbBD.js.map → gesture-element-x6kojUJk.js.map} +1 -1
- package/cdn/i18n-CE4KxKuj.js.map +1 -1
- package/cdn/{i18n-DeI9j-ko.js → i18n-C_WyuIHd.js} +2 -2
- package/cdn/{i18n-DeI9j-ko.js.map → i18n-C_WyuIHd.js.map} +1 -1
- package/cdn/i18n-DyF_NfCk.js.map +1 -1
- package/cdn/i18n-o3_t8fxw.js +2 -0
- package/cdn/{i18n-R3TQ8P2f.js.map → i18n-o3_t8fxw.js.map} +1 -1
- package/cdn/live-audio-minimal-ui.dev.js +2 -0
- package/cdn/live-audio-minimal-ui.js +1 -0
- package/cdn/live-audio-minimal.dev.d.ts +1 -0
- package/cdn/live-audio-minimal.dev.js +97 -0
- package/cdn/live-audio-minimal.dev.js.map +1 -0
- package/cdn/live-audio-minimal.js +2 -0
- package/cdn/live-audio-minimal.js.map +1 -0
- package/cdn/live-audio-player.dev.d.ts +1 -0
- package/cdn/live-audio-player.dev.js +1 -0
- package/cdn/live-audio-player.js +1 -0
- package/cdn/live-audio-ui.dev.d.ts +1 -0
- package/cdn/live-audio-ui.dev.js +2 -0
- package/cdn/live-audio-ui.js +1 -0
- package/cdn/live-audio.dev.d.ts +1 -0
- package/cdn/live-audio.dev.js +97 -0
- package/cdn/live-audio.dev.js.map +1 -0
- package/cdn/live-audio.js +2 -0
- package/cdn/live-audio.js.map +1 -0
- package/cdn/{live-button-element-CylfQD0v.js → live-button-element-BFufqFFV.js} +3 -3
- package/cdn/{live-button-element-CylfQD0v.js.map → live-button-element-BFufqFFV.js.map} +1 -1
- package/cdn/live-button-element-CEbrR59d.js +2 -0
- package/cdn/{live-button-element-C-WypudK.js.map → live-button-element-CEbrR59d.js.map} +1 -1
- package/cdn/live-video-minimal-ui.dev.d.ts +1 -0
- package/cdn/live-video-minimal-ui.dev.js +2 -0
- package/cdn/live-video-minimal-ui.js +1 -0
- package/cdn/live-video-minimal.dev.js +5 -36
- package/cdn/live-video-minimal.dev.js.map +1 -1
- package/cdn/live-video-minimal.js +1 -1
- package/cdn/live-video-minimal.js.map +1 -1
- package/cdn/live-video-player.dev.d.ts +1 -0
- package/cdn/live-video-player.dev.js +1 -0
- package/cdn/live-video-player.js +1 -0
- package/cdn/live-video-ui.dev.d.ts +1 -0
- package/cdn/live-video-ui.dev.js +2 -0
- package/cdn/live-video-ui.js +1 -0
- package/cdn/live-video.dev.js +5 -38
- package/cdn/live-video.dev.js.map +1 -1
- package/cdn/live-video.js +1 -1
- package/cdn/live-video.js.map +1 -1
- package/cdn/media/hls-background-video.dev.js +1 -1
- package/cdn/media/hls-background-video.js +1 -1
- package/cdn/media/hls-background-video.js.map +1 -1
- package/cdn/media/mux-background-video.dev.js +1 -1
- package/cdn/media/mux-background-video.js +1 -1
- package/cdn/media/mux-background-video.js.map +1 -1
- package/cdn/media/mux-data.dev.js +1 -1
- package/cdn/media/mux-data.dev.js.map +1 -1
- package/cdn/media/mux-data.js +1 -1
- package/cdn/media/mux-data.js.map +1 -1
- package/cdn/{media-B4uT13xV.js → media-B4uT13xV2.js} +1 -1
- package/cdn/media-B4uT13xV2.js.map +1 -0
- package/cdn/{media-D6Xer97u.js → media-D6Xer97u2.js} +1 -1
- package/cdn/media-D6Xer97u2.js.map +1 -0
- package/cdn/minimal-ui-0eDc51VS.js +2 -0
- package/cdn/{minimal-ui-D3XCtSx_.js.map → minimal-ui-0eDc51VS.js.map} +1 -1
- package/cdn/minimal-ui-C2vRjwax.js +36 -0
- package/cdn/minimal-ui-C2vRjwax.js.map +1 -0
- package/cdn/{minimal-ui-ajeAXABk.js → minimal-ui-CLBGXvp5.js} +4 -4
- package/cdn/{minimal-ui-ajeAXABk.js.map → minimal-ui-CLBGXvp5.js.map} +1 -1
- package/cdn/minimal-ui-ClCvmIm4.js +2 -0
- package/cdn/minimal-ui-ClCvmIm4.js.map +1 -0
- package/cdn/minimal-ui-DDM48qb3.js +2 -0
- package/cdn/minimal-ui-DDM48qb3.js.map +1 -0
- package/cdn/minimal-ui-DY4C1zGt.js +23 -0
- package/cdn/minimal-ui-DY4C1zGt.js.map +1 -0
- package/cdn/{minimal-ui-KUzZkG_3.js → minimal-ui-Dk4_XLp4.js} +8 -8
- package/cdn/{minimal-ui-KUzZkG_3.js.map → minimal-ui-Dk4_XLp4.js.map} +1 -1
- package/cdn/{minimal-ui-p9QCZfCz.js → minimal-ui-JHiRECkp.js} +2 -2
- package/cdn/{minimal-ui-p9QCZfCz.js.map → minimal-ui-JHiRECkp.js.map} +1 -1
- package/cdn/{player-POHYt5tr.js → player-BGAk4zHP.js} +2 -2
- package/cdn/{player-POHYt5tr.js.map → player-BGAk4zHP.js.map} +1 -1
- package/cdn/{player-CngT-cVQ.js → player-Bb9oakYz.js} +2 -2
- package/cdn/{player-CngT-cVQ.js.map → player-Bb9oakYz.js.map} +1 -1
- package/cdn/{player-BXQMSpgR.js → player-BrlY19A2.js} +2 -2
- package/cdn/{player-BXQMSpgR.js.map → player-BrlY19A2.js.map} +1 -1
- package/cdn/{player-BuxifKSM.js → player-CQENs37B.js} +2 -2
- package/cdn/{player-BuxifKSM.js.map → player-CQENs37B.js.map} +1 -1
- package/cdn/player-DdOHaN9e.js +2 -0
- package/cdn/player-DdOHaN9e.js.map +1 -0
- package/cdn/{player-B5zkgqwT.js → player-DtcVc6sP.js} +2 -2
- package/cdn/{player-B5zkgqwT.js.map → player-DtcVc6sP.js.map} +1 -1
- package/cdn/{player-DMP2pc3L.js → player-bEUswOOg.js} +2 -2
- package/cdn/{player-DMP2pc3L.js.map → player-bEUswOOg.js.map} +1 -1
- package/cdn/player-qLOeas8M.js +18 -0
- package/cdn/player-qLOeas8M.js.map +1 -0
- package/cdn/poster-element-BA7p_OJL.js +2 -0
- package/cdn/{poster-element-Djlm5fwC.js.map → poster-element-BA7p_OJL.js.map} +1 -1
- package/cdn/{poster-element-CuCEBVr3.js → poster-element-BTynHaSW.js} +4 -3
- package/cdn/{poster-element-CuCEBVr3.js.map → poster-element-BTynHaSW.js.map} +1 -1
- package/cdn/radio-options-controller-Cz5yFvUh.js +138 -0
- package/cdn/radio-options-controller-Cz5yFvUh.js.map +1 -0
- package/cdn/radio-options-controller-hybHJkeC.js +2 -0
- package/cdn/radio-options-controller-hybHJkeC.js.map +1 -0
- package/cdn/seek-button-element-C4g3qPbc.js +2 -0
- package/cdn/{seek-button-element-CgaXVFPS.js.map → seek-button-element-C4g3qPbc.js.map} +1 -1
- package/cdn/{seek-button-element-BD2caCd5.js → seek-button-element-CirtfRSE.js} +4 -3
- package/cdn/seek-button-element-CirtfRSE.js.map +1 -0
- package/cdn/{skin-element-PDwjO4v0.js → skin-element-BF1a0EIj.js} +2 -2
- package/cdn/{skin-element-PDwjO4v0.js.map → skin-element-BF1a0EIj.js.map} +1 -1
- package/cdn/skin-element-BTt7JKoR.js +2 -0
- package/cdn/{skin-element-DE8OodF5.js.map → skin-element-BTt7JKoR.js.map} +1 -1
- package/cdn/template-BKUlUXWF.js +2 -0
- package/cdn/template-BKUlUXWF.js.map +1 -0
- package/cdn/template-ClYP_1RH.js +31 -0
- package/cdn/template-ClYP_1RH.js.map +1 -0
- package/cdn/text-element-DW2FuvdI.js +2 -0
- package/cdn/text-element-DW2FuvdI.js.map +1 -0
- package/cdn/{text-element-dyiwucQB.js → text-element-LzVNdZbp.js} +50 -2
- package/cdn/text-element-LzVNdZbp.js.map +1 -0
- package/cdn/time-slider-chapters-element-Bf4gYppH.js +2 -0
- package/cdn/{time-slider-chapters-element-b6oeaZtJ.js.map → time-slider-chapters-element-Bf4gYppH.js.map} +1 -1
- package/cdn/{time-slider-chapters-element-BTMqnBhM.js → time-slider-chapters-element-DMkTYNg3.js} +5 -3
- package/cdn/time-slider-chapters-element-DMkTYNg3.js.map +1 -0
- package/cdn/{ui-BsUcH4YJ.js → ui-BL6b1m09.js} +7 -7
- package/cdn/{ui-BsUcH4YJ.js.map → ui-BL6b1m09.js.map} +1 -1
- package/cdn/ui-BbpSrILu.js +2 -0
- package/cdn/{ui-DLvwCbsU.js.map → ui-BbpSrILu.js.map} +1 -1
- package/cdn/ui-BmCfIOl5.js +38 -0
- package/cdn/ui-BmCfIOl5.js.map +1 -0
- package/cdn/ui-Bu9GX-M_.js +28 -0
- package/cdn/ui-Bu9GX-M_.js.map +1 -0
- package/cdn/ui-CBrFrvmm.js +2 -0
- package/cdn/{ui-CxftD4RF.js.map → ui-CBrFrvmm.js.map} +1 -1
- package/cdn/{ui-CtONjPC2.js → ui-CQsP0EFA.js} +9 -9
- package/cdn/{ui-CtONjPC2.js.map → ui-CQsP0EFA.js.map} +1 -1
- package/cdn/ui-Crbp7m4I.js +2 -0
- package/cdn/ui-Crbp7m4I.js.map +1 -0
- package/cdn/ui-DRKjxVsj.js +2 -0
- package/cdn/ui-DRKjxVsj.js.map +1 -0
- package/cdn/video-minimal-ui.dev.js +1 -1
- package/cdn/video-minimal-ui.js +1 -1
- package/cdn/video-minimal.dev.js +13 -12
- package/cdn/video-minimal.dev.js.map +1 -1
- package/cdn/video-minimal.js +1 -1
- package/cdn/video-minimal.js.map +1 -1
- package/cdn/video-player.dev.d.ts +1 -0
- package/cdn/video-player.dev.js +1 -0
- package/cdn/video-player.js +1 -0
- package/cdn/video-ui.dev.js +1 -1
- package/cdn/video-ui.js +1 -1
- package/cdn/video.dev.js +14 -13
- package/cdn/video.dev.js.map +1 -1
- package/cdn/video.js +1 -1
- package/cdn/video.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.css +39 -7
- package/dist/default/define/audio/skin.css +31 -7
- package/dist/default/define/live-audio/minimal-skin.css +39 -7
- package/dist/default/define/live-audio/skin.css +31 -7
- package/dist/default/define/live-video/minimal-skin.css +39 -7
- package/dist/default/define/live-video/minimal-skin.js +1 -1
- package/dist/default/define/live-video/minimal-skin.js.map +1 -1
- package/dist/default/define/live-video/minimal-skin.tailwind.js +1 -1
- package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/live-video/skin.css +31 -7
- package/dist/default/define/live-video/skin.js +1 -1
- package/dist/default/define/live-video/skin.js.map +1 -1
- package/dist/default/define/live-video/skin.tailwind.js +1 -1
- package/dist/default/define/live-video/skin.tailwind.js.map +1 -1
- package/dist/default/define/video/minimal-skin.css +39 -7
- package/dist/default/define/video/minimal-skin.js +1 -1
- package/dist/default/define/video/minimal-skin.js.map +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/video/skin.css +31 -7
- package/dist/default/define/video/skin.js +1 -1
- package/dist/default/define/video/skin.js.map +1 -1
- package/dist/default/define/video/skin.tailwind.js +1 -1
- package/dist/default/define/video/skin.tailwind.js.map +1 -1
- package/dist/default/i18n/provider-mixin.js +24 -0
- package/dist/default/i18n/provider-mixin.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button-group.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button-group.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/menu.js +8 -7
- package/dist/default/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/time.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js +8 -7
- package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +2 -2
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/default/ui/slider/slider-element.js +1 -2
- package/dist/default/ui/slider/slider-element.js.map +1 -1
- package/dist/default/ui/time-slider/time-slider-element.js +1 -2
- package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
- package/dist/default/ui/volume-slider/volume-slider-element.js +1 -2
- package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/dev/define/audio/minimal-skin.css +39 -7
- package/dist/dev/define/audio/skin.css +31 -7
- package/dist/dev/define/live-audio/minimal-skin.css +39 -7
- package/dist/dev/define/live-audio/skin.css +31 -7
- package/dist/dev/define/live-video/minimal-skin.css +39 -7
- package/dist/dev/define/live-video/minimal-skin.js +1 -1
- package/dist/dev/define/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/define/live-video/minimal-skin.tailwind.js +1 -1
- package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/live-video/skin.css +31 -7
- package/dist/dev/define/live-video/skin.js +1 -1
- package/dist/dev/define/live-video/skin.js.map +1 -1
- package/dist/dev/define/live-video/skin.tailwind.js +1 -1
- package/dist/dev/define/live-video/skin.tailwind.js.map +1 -1
- package/dist/dev/define/video/minimal-skin.css +39 -7
- package/dist/dev/define/video/minimal-skin.js +8 -8
- package/dist/dev/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.js +12 -12
- package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/video/skin.css +31 -7
- package/dist/dev/define/video/skin.js +8 -8
- package/dist/dev/define/video/skin.js.map +1 -1
- package/dist/dev/define/video/skin.tailwind.js +12 -12
- package/dist/dev/define/video/skin.tailwind.js.map +1 -1
- package/dist/dev/i18n/provider-mixin.d.ts.map +1 -1
- package/dist/dev/i18n/provider-mixin.js +24 -0
- package/dist/dev/i18n/provider-mixin.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/button-group.js +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/button-group.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/controls.js +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/menu.js +8 -7
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/time.js +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/time.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/button-group.js +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/menu.js +8 -7
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/time.js +2 -2
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/dev/ui/slider/slider-element.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-element.js +1 -2
- package/dist/dev/ui/slider/slider-element.js.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-element.d.ts.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-element.js +1 -2
- package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
- package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -1
- package/dist/dev/ui/volume-slider/volume-slider-element.js +1 -2
- package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/concepts/media-sources.md +26 -2
- package/docs/concepts/skins.md +39 -15
- package/docs/how-to/customize-skins.md +7662 -48
- package/docs/how-to/i18n-switch-locale.md +27 -0
- package/docs/how-to/installation.md +4 -4
- package/docs/how-to/migrate-from-plyr.md +1 -5
- package/docs/llms.txt +7 -0
- package/docs/reference/cloudflare-video.md +483 -0
- package/docs/reference/dash-video.md +54 -0
- package/docs/reference/feature-metadata.md +3 -1
- package/docs/reference/hlsjs-video.md +626 -0
- package/docs/reference/native-hls-video.md +40 -0
- package/docs/reference/shaka-video.md +588 -0
- package/docs/reference/spotify-audio.md +394 -0
- package/docs/reference/tiktok-video.md +504 -0
- package/docs/reference/title.md +1 -1
- package/docs/reference/twitch-video.md +447 -0
- package/docs/reference/vimeo-video.md +1038 -0
- package/docs/reference/youtube-video.md +573 -0
- package/package.json +9 -9
- package/cdn/audio-headless.dev.js +0 -1
- package/cdn/audio-headless.js +0 -1
- package/cdn/compounds-CHlzbAKu.js +0 -8
- package/cdn/compounds-CHlzbAKu.js.map +0 -1
- package/cdn/compounds-D1FPw7jg.js.map +0 -1
- package/cdn/create-player-LjvbIxIq.js +0 -2
- package/cdn/i18n-R3TQ8P2f.js +0 -2
- package/cdn/live-button-element-C-WypudK.js +0 -2
- package/cdn/media-B4uT13xV.js.map +0 -1
- package/cdn/media-D6Xer97u.js.map +0 -1
- package/cdn/minimal-ui-D3XCtSx_.js +0 -2
- package/cdn/poster-element-Djlm5fwC.js +0 -2
- package/cdn/seek-button-element-BD2caCd5.js.map +0 -1
- package/cdn/seek-button-element-CgaXVFPS.js +0 -2
- package/cdn/skin-element-DE8OodF5.js +0 -2
- package/cdn/text-element-BJyj7nLo.js +0 -2
- package/cdn/text-element-BJyj7nLo.js.map +0 -1
- package/cdn/text-element-dyiwucQB.js.map +0 -1
- package/cdn/time-slider-chapters-element-BTMqnBhM.js.map +0 -1
- package/cdn/time-slider-chapters-element-b6oeaZtJ.js +0 -2
- package/cdn/ui-CxftD4RF.js +0 -2
- package/cdn/ui-DLvwCbsU.js +0 -2
- package/cdn/video-headless.dev.js +0 -1
- package/cdn/video-headless.js +0 -1
- /package/cdn/{audio-headless.dev.d.ts → audio-player.dev.d.ts} +0 -0
- /package/cdn/{video-headless.dev.d.ts → live-audio-minimal-ui.dev.d.ts} +0 -0
|
@@ -0,0 +1,447 @@
|
|
|
1
|
+
# twitch-video
|
|
2
|
+
|
|
3
|
+
Video component that plays Twitch videos and live channels through the Twitch embed player
|
|
4
|
+
|
|
5
|
+
Video component that plays Twitch videos and live channels through the [Twitch embed player](https://dev.twitch.tv/docs/embed/video-and-clips/). Twitch’s own chrome stays hidden by default, so it drops into a [player skin](../concepts/skins.md) like any other media component; set `controls` to use Twitch’s UI instead.
|
|
6
|
+
|
|
7
|
+
## Load a source
|
|
8
|
+
|
|
9
|
+
`src` takes a video URL (`twitch.tv/videos/<id>`) or a channel URL (`twitch.tv/<channel>`), with or without the `www.` and `go.` hosts. A channel URL plays the channel’s live stream. Clips (`clips.twitch.tv`) are a different embed and aren’t supported.
|
|
10
|
+
|
|
11
|
+
html
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
<twitch-video src="https://www.twitch.tv/videos/106400740"></twitch-video>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Live channels
|
|
18
|
+
|
|
19
|
+
A channel embed behaves like a live media component:
|
|
20
|
+
|
|
21
|
+
* `duration` reports `Infinity` while the stream is live.
|
|
22
|
+
* Seeking is unavailable: the embed exposes no DVR window.
|
|
23
|
+
* The stream going away and coming back dispatch `offline` and `online` events.
|
|
24
|
+
* `loop` never repeats a channel; a live stream doesn’t end.
|
|
25
|
+
|
|
26
|
+
## Parent hostnames
|
|
27
|
+
|
|
28
|
+
Twitch checks the embedding page’s ancestors against a `parent` allowlist and won’t play unless the current page is on it. The element always includes your page’s own hostname, so a plain embed needs no setup. When your player is itself framed by other hostnames, name each of them under `engine.twitch.parent`:
|
|
29
|
+
|
|
30
|
+
ts
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
const video = document.querySelector('twitch-video');
|
|
34
|
+
video.source = {
|
|
35
|
+
src: 'https://www.twitch.tv/videos/106400740',
|
|
36
|
+
engine: { twitch: { parent: ['embed.example.com'] } },
|
|
37
|
+
};
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Behavior
|
|
41
|
+
|
|
42
|
+
* Volume and mute both work, like a native `<video>`.
|
|
43
|
+
* `playbackRate` is reported but never applied: the embed has no rate command.
|
|
44
|
+
* `loop` restarts a finished video from the top; the embed has no loop parameter.
|
|
45
|
+
* `controls` is read when the embed is built; changing it later doesn’t take effect, since rebuilding the iframe would lose the playback session.
|
|
46
|
+
* Fullscreen targets the iframe, so Twitch’s own chrome shows in fullscreen.
|
|
47
|
+
|
|
48
|
+
## Examples
|
|
49
|
+
|
|
50
|
+
### Basic Usage
|
|
51
|
+
|
|
52
|
+
index.html
|
|
53
|
+
|
|
54
|
+
index.css
|
|
55
|
+
|
|
56
|
+
index.ts
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
<twitch-video
|
|
60
|
+
class="twitch-video"
|
|
61
|
+
src="https://www.twitch.tv/videos/106400740"
|
|
62
|
+
controls
|
|
63
|
+
></twitch-video>
|
|
64
|
+
```
|
|
65
|
+
```
|
|
66
|
+
.twitch-video {
|
|
67
|
+
width: 100%;
|
|
68
|
+
aspect-ratio: 16 / 9;
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
```
|
|
72
|
+
import '@videojs/html/media/twitch-video';
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## API Reference
|
|
76
|
+
|
|
77
|
+
### Attributes
|
|
78
|
+
|
|
79
|
+
These attributes configure the embedded media adapter:
|
|
80
|
+
|
|
81
|
+
Attribute
|
|
82
|
+
|
|
83
|
+
Type
|
|
84
|
+
|
|
85
|
+
Default
|
|
86
|
+
|
|
87
|
+
Details
|
|
88
|
+
|
|
89
|
+
`autoplay`
|
|
90
|
+
|
|
91
|
+
`boolean`
|
|
92
|
+
|
|
93
|
+
`—`
|
|
94
|
+
|
|
95
|
+
`controls`
|
|
96
|
+
|
|
97
|
+
`boolean`
|
|
98
|
+
|
|
99
|
+
`—`
|
|
100
|
+
|
|
101
|
+
`loop`
|
|
102
|
+
|
|
103
|
+
`boolean`
|
|
104
|
+
|
|
105
|
+
`—`
|
|
106
|
+
|
|
107
|
+
`muted`
|
|
108
|
+
|
|
109
|
+
`boolean`
|
|
110
|
+
|
|
111
|
+
`—`
|
|
112
|
+
|
|
113
|
+
`playsinline`
|
|
114
|
+
|
|
115
|
+
`boolean`
|
|
116
|
+
|
|
117
|
+
`—`
|
|
118
|
+
|
|
119
|
+
`poster`
|
|
120
|
+
|
|
121
|
+
`string`
|
|
122
|
+
|
|
123
|
+
`—`
|
|
124
|
+
|
|
125
|
+
`preload`
|
|
126
|
+
|
|
127
|
+
`MediaPreloadType`
|
|
128
|
+
|
|
129
|
+
`—`
|
|
130
|
+
|
|
131
|
+
`src`
|
|
132
|
+
|
|
133
|
+
`string`
|
|
134
|
+
|
|
135
|
+
`—`
|
|
136
|
+
|
|
137
|
+
### Properties
|
|
138
|
+
|
|
139
|
+
Property
|
|
140
|
+
|
|
141
|
+
Type
|
|
142
|
+
|
|
143
|
+
Default
|
|
144
|
+
|
|
145
|
+
Details
|
|
146
|
+
|
|
147
|
+
`autoplay`
|
|
148
|
+
|
|
149
|
+
`boolean`
|
|
150
|
+
|
|
151
|
+
`—`
|
|
152
|
+
|
|
153
|
+
`buffered`
|
|
154
|
+
|
|
155
|
+
`TimeRangeLike`
|
|
156
|
+
|
|
157
|
+
`—`
|
|
158
|
+
|
|
159
|
+
▸
|
|
160
|
+
|
|
161
|
+
Description
|
|
162
|
+
|
|
163
|
+
Read-only.
|
|
164
|
+
|
|
165
|
+
`controls`
|
|
166
|
+
|
|
167
|
+
`boolean`
|
|
168
|
+
|
|
169
|
+
`—`
|
|
170
|
+
|
|
171
|
+
`currentSrc`
|
|
172
|
+
|
|
173
|
+
`string`
|
|
174
|
+
|
|
175
|
+
`—`
|
|
176
|
+
|
|
177
|
+
▸
|
|
178
|
+
|
|
179
|
+
Description
|
|
180
|
+
|
|
181
|
+
Read-only.
|
|
182
|
+
|
|
183
|
+
`currentTime`
|
|
184
|
+
|
|
185
|
+
`number`
|
|
186
|
+
|
|
187
|
+
`—`
|
|
188
|
+
|
|
189
|
+
`defaultMuted`
|
|
190
|
+
|
|
191
|
+
`boolean`
|
|
192
|
+
|
|
193
|
+
`—`
|
|
194
|
+
|
|
195
|
+
`duration`
|
|
196
|
+
|
|
197
|
+
`number`
|
|
198
|
+
|
|
199
|
+
`—`
|
|
200
|
+
|
|
201
|
+
▸
|
|
202
|
+
|
|
203
|
+
Description
|
|
204
|
+
|
|
205
|
+
Read-only.
|
|
206
|
+
|
|
207
|
+
`ended`
|
|
208
|
+
|
|
209
|
+
`boolean`
|
|
210
|
+
|
|
211
|
+
`—`
|
|
212
|
+
|
|
213
|
+
▸
|
|
214
|
+
|
|
215
|
+
Description
|
|
216
|
+
|
|
217
|
+
Read-only.
|
|
218
|
+
|
|
219
|
+
`engine`
|
|
220
|
+
|
|
221
|
+
`Window | null`
|
|
222
|
+
|
|
223
|
+
`—`
|
|
224
|
+
|
|
225
|
+
▸
|
|
226
|
+
|
|
227
|
+
Description
|
|
228
|
+
|
|
229
|
+
Read-only. The embed's own window, which every command is posted to. Null until an embed is bound and in a document.
|
|
230
|
+
|
|
231
|
+
`error`
|
|
232
|
+
|
|
233
|
+
`MediaError | null`
|
|
234
|
+
|
|
235
|
+
`—`
|
|
236
|
+
|
|
237
|
+
▸
|
|
238
|
+
|
|
239
|
+
Description
|
|
240
|
+
|
|
241
|
+
Read-only.
|
|
242
|
+
|
|
243
|
+
`isFullscreen`
|
|
244
|
+
|
|
245
|
+
`boolean`
|
|
246
|
+
|
|
247
|
+
`—`
|
|
248
|
+
|
|
249
|
+
▸
|
|
250
|
+
|
|
251
|
+
Description
|
|
252
|
+
|
|
253
|
+
Read-only.
|
|
254
|
+
|
|
255
|
+
`loop`
|
|
256
|
+
|
|
257
|
+
`boolean`
|
|
258
|
+
|
|
259
|
+
`—`
|
|
260
|
+
|
|
261
|
+
`muted`
|
|
262
|
+
|
|
263
|
+
`boolean`
|
|
264
|
+
|
|
265
|
+
`—`
|
|
266
|
+
|
|
267
|
+
`paused`
|
|
268
|
+
|
|
269
|
+
`boolean`
|
|
270
|
+
|
|
271
|
+
`—`
|
|
272
|
+
|
|
273
|
+
▸
|
|
274
|
+
|
|
275
|
+
Description
|
|
276
|
+
|
|
277
|
+
Read-only.
|
|
278
|
+
|
|
279
|
+
`playbackRate`
|
|
280
|
+
|
|
281
|
+
`number`
|
|
282
|
+
|
|
283
|
+
`—`
|
|
284
|
+
|
|
285
|
+
`playsInline`
|
|
286
|
+
|
|
287
|
+
`boolean`
|
|
288
|
+
|
|
289
|
+
`—`
|
|
290
|
+
|
|
291
|
+
`poster`
|
|
292
|
+
|
|
293
|
+
`string`
|
|
294
|
+
|
|
295
|
+
`—`
|
|
296
|
+
|
|
297
|
+
`preload`
|
|
298
|
+
|
|
299
|
+
`MediaPreloadType`
|
|
300
|
+
|
|
301
|
+
`—`
|
|
302
|
+
|
|
303
|
+
`readyState`
|
|
304
|
+
|
|
305
|
+
`number`
|
|
306
|
+
|
|
307
|
+
`—`
|
|
308
|
+
|
|
309
|
+
▸
|
|
310
|
+
|
|
311
|
+
Description
|
|
312
|
+
|
|
313
|
+
Read-only.
|
|
314
|
+
|
|
315
|
+
`seekable`
|
|
316
|
+
|
|
317
|
+
`TimeRangeLike`
|
|
318
|
+
|
|
319
|
+
`—`
|
|
320
|
+
|
|
321
|
+
▸
|
|
322
|
+
|
|
323
|
+
Description
|
|
324
|
+
|
|
325
|
+
Read-only.
|
|
326
|
+
|
|
327
|
+
`seeking`
|
|
328
|
+
|
|
329
|
+
`boolean`
|
|
330
|
+
|
|
331
|
+
`—`
|
|
332
|
+
|
|
333
|
+
▸
|
|
334
|
+
|
|
335
|
+
Description
|
|
336
|
+
|
|
337
|
+
Read-only.
|
|
338
|
+
|
|
339
|
+
`source`
|
|
340
|
+
|
|
341
|
+
`TwitchSource | null`
|
|
342
|
+
|
|
343
|
+
`—`
|
|
344
|
+
|
|
345
|
+
▸
|
|
346
|
+
|
|
347
|
+
Description
|
|
348
|
+
|
|
349
|
+
Twitch VOD or channel URL in `src`, plus embed parameters under `engine.twitch`. Replacing it re-derives `src`.
|
|
350
|
+
|
|
351
|
+
`src`
|
|
352
|
+
|
|
353
|
+
`string`
|
|
354
|
+
|
|
355
|
+
`—`
|
|
356
|
+
|
|
357
|
+
`textTracks`
|
|
358
|
+
|
|
359
|
+
`TextTrackListLike`
|
|
360
|
+
|
|
361
|
+
`—`
|
|
362
|
+
|
|
363
|
+
▸
|
|
364
|
+
|
|
365
|
+
Description
|
|
366
|
+
|
|
367
|
+
Read-only.
|
|
368
|
+
|
|
369
|
+
`volume`
|
|
370
|
+
|
|
371
|
+
`number`
|
|
372
|
+
|
|
373
|
+
`—`
|
|
374
|
+
|
|
375
|
+
### Engine options
|
|
376
|
+
|
|
377
|
+
#### `source.engine.twitch`
|
|
378
|
+
|
|
379
|
+
Pass [Twitch embed parameters](https://dev.twitch.tv/docs/embed/video-and-clips/) under `source.engine.twitch`, spelled exactly as Twitch spells them, plus anything Twitch adds next. [Media Sources](../concepts/media-sources.md) covers how engine options fit into a structured source.
|
|
380
|
+
|
|
381
|
+
`controls`, `autoplay`, and `muted` come from the props of the same name, and the video or channel comes from `src`, so none of those have an `engine.twitch` spelling.
|
|
382
|
+
|
|
383
|
+
Option
|
|
384
|
+
|
|
385
|
+
Type
|
|
386
|
+
|
|
387
|
+
Details
|
|
388
|
+
|
|
389
|
+
`collection`
|
|
390
|
+
|
|
391
|
+
`string`
|
|
392
|
+
|
|
393
|
+
▸
|
|
394
|
+
|
|
395
|
+
Description
|
|
396
|
+
|
|
397
|
+
Collection to play through, starting from the video named by `src`.
|
|
398
|
+
|
|
399
|
+
`parent`
|
|
400
|
+
|
|
401
|
+
`string | readonly string[]`
|
|
402
|
+
|
|
403
|
+
▸
|
|
404
|
+
|
|
405
|
+
Description
|
|
406
|
+
|
|
407
|
+
Every hostname the embed may be framed by. Twitch checks the frame's ancestors against it and refuses to play when the current page is missing, which is why the page's own hostname is always included on top of this.
|
|
408
|
+
|
|
409
|
+
`referrerPolicy`
|
|
410
|
+
|
|
411
|
+
`ReferrerPolicy`
|
|
412
|
+
|
|
413
|
+
▸
|
|
414
|
+
|
|
415
|
+
Description
|
|
416
|
+
|
|
417
|
+
`referrerpolicy` for the embed iframe. Not a Twitch embed parameter, so it never reaches the URL: the React player applies it to the iframe it renders, and the HTML player reads its own `referrerpolicy` attribute instead.
|
|
418
|
+
|
|
419
|
+
`time`
|
|
420
|
+
|
|
421
|
+
`string`
|
|
422
|
+
|
|
423
|
+
▸
|
|
424
|
+
|
|
425
|
+
Description
|
|
426
|
+
|
|
427
|
+
Start position, spelled the way Twitch spells timestamps: `1h30m10s`.
|
|
428
|
+
|
|
429
|
+
### Methods
|
|
430
|
+
|
|
431
|
+
Supports these media methods: `exitFullscreen``load``pause``play``requestFullscreen`
|
|
432
|
+
|
|
433
|
+
### Events
|
|
434
|
+
|
|
435
|
+
Implements these standard media events through the embedded player: `durationchange``emptied``ended``error``loadedmetadata``loadstart``playing``progress``seeked``seeking``timeupdate``volumechange``waiting`
|
|
436
|
+
|
|
437
|
+
Also emits these Video.js-specific events:
|
|
438
|
+
|
|
439
|
+
Event
|
|
440
|
+
|
|
441
|
+
Description
|
|
442
|
+
|
|
443
|
+
`loadcomplete`
|
|
444
|
+
|
|
445
|
+
`sourcechange`
|
|
446
|
+
|
|
447
|
+
Fired when \`source\` changes, either directly or by resolving a new \`src\`. Read \`source\` for the new value.
|