The THEOplayer SDK consists of modular features.
When building an SDK (i.e. license), you can specify which features are enabled. Only a subset of features are enabled by default, such as "HLS", "MPEG-DASH", "UI", "Chromecast", "Airplay", "Ads", and "Text Track Rendering".
This modular approach allows you to optimize the file size of your THEOplayer SDK.
You can do this through our Portal.
Many features sit behind this modular structure. For example, the VR API or Up Next API won't work unless you've enabled the feature when creating your SDK.
You can log in to portal.theoplayer.com and navigate to your account. Once you're there, you further navigate to your desired SDK and check how you've customized your features.
If you're a developer (and you're only interested in this answer for the THEOplayer Web SDK),
then you can also figure this out at runtime through JavaScript.
You can call THEOplayer.features
to identify which features are enabled.
THEOplayer.features
// (29) ["dash", "hls", "chromecast", "ads", "airplay", "yospace", "spotx", "vr", "conviva", "cache", "visibility", "webaudio", "youbora", "mediamelon", "moat", "google-dai", "streamone", "v-nova", "freewheel", "agama", "ui", "relatedcontent", "social", "upnext", "contextmenu", "texttrackstyle-ui", "activequalitylabel", "upcomingadnotification"]
After optimizing your SDK, by enabling and disabling certain features, you might want to quantify those actions.
Note that optimizing a video player goes way beyond reducing your file size. As a developer, you could consider async library loading, you could change your ABR strategy (as demonstrated), you want to optimize your time-to-first-frame, and much more!