+ Instantiate the player with above configuration, load a source & play
+
+
+
+ Note: The configured
+
+ validationScriptUrl
+
+ , among other things, defines which ad tracking events should subscribed to and the location of the verification server to report to.
+
+
+
+ ${code:page.js}
+
+
diff --git a/player/ad-event-verification-omsdk/info.json b/player/ad-event-verification-omsdk/info.json
new file mode 100644
index 00000000..ffd9d21d
--- /dev/null
+++ b/player/ad-event-verification-omsdk/info.json
@@ -0,0 +1,24 @@
+{
+ "title": "Ad Verification with Open Measurement SDK",
+ "description": "Ad viewability and verification measurement using the Open Measurement SDK",
+ "long_description": "The IAB Tech Lab's OM SDK facilitates third-party access to ad measurement data for ads played out by the Bitmovin player.",
+ "executable": {
+ "executable": true,
+ "indexfile": "index.html"
+ },
+ "code": {
+ "show_code": true,
+ "language": "js",
+ "files": [
+ "page.js",
+ "page.html"
+ ]
+ },
+ "tags": [
+ "advertisement",
+ "tracking",
+ "verification",
+ "om sdk",
+ "open measurement"
+ ]
+}
diff --git a/player/ad-event-verification-omsdk/js/script.js b/player/ad-event-verification-omsdk/js/script.js
new file mode 100644
index 00000000..cc75ea3b
--- /dev/null
+++ b/player/ad-event-verification-omsdk/js/script.js
@@ -0,0 +1,198 @@
+var adTag = 'https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dskippablelinear&correlator=' + Date.now();
+var conf = {
+ key: '29ba4a30-8b5e-4336-a7dd-c94ff3b25f30',
+ playback: {
+ muted: true
+ },
+ advertising: {
+ adBreaks: [{
+ tag: {
+ url: adTag,
+ type: 'vast'
+ },
+ position: 'pre',
+ }],
+ withCredentials: false,
+ trackers: {
+ omSdk: assembleOmSdkTrackerConfig(),
+ }
+ },
+};
+var source = {
+ dash: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd',
+ hls: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8',
+ progressive: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/MI201109210084_mpeg-4_hd_high_1080p25_10mbits.mp4',
+ poster: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/poster.jpg'
+};
+var player;
+
+function getTimestamp() {
+ var now = new Date();
+ var h = checkTime(now.getHours());
+ var m = checkTime(now.getMinutes());
+ var s = checkTime(now.getSeconds());
+ var mm = checkTime(now.getMilliseconds());
+ now = h + ":" + m + ":" + s + ":" + mm;
+ return '' + now + '';
+}
+
+function checkTime(i) {
+ return (i < 10) ? "0" + i : i;
+}
+
+/**
+ * Used by the OM SDK validation script to log tracking events
+ */
+window.log = function(message, data) {
+ $('').append(getTimestamp() + ' - ').append(message, ' ', renderjson(data)).prependTo('#logContent');
+}
+
+function clearEventLog() {
+ var log = document.querySelector('#logContent');
+
+ while (log.firstChild) {
+ log.removeChild(log.lastChild);
+ }
+}
+
+function displayError(message) {
+ document.querySelector('#error-wrapper').classList.remove('d-none');
+ document.querySelector('#error').innerHTML = message;
+}
+
+function clearError(message) {
+ document.querySelector('#error-wrapper').classList.add('d-none');
+ document.querySelector('#error').innerHTML = '';
+}
+
+$('#validationscripturl-input').on('input', function(e) {
+ if (e.target.value) {
+ $('#event-log-row').hide();
+ } else {
+ $('#event-log-row').show();
+ }
+});
+
+$('#apply-settings-btn').on('click', function(e) {
+ var recreate = function() {
+ conf.advertising.trackers.omSdk = assembleOmSdkTrackerConfig();
+ player = setupPlayer(conf, source);
+ };
+
+ if (player) {
+ player.destroy().then(function() {
+ recreate();
+ clearEventLog();
+ });
+ } else {
+ recreate();
+ clearEventLog();
+ }
+
+ clearError();
+});
+
+function getPartnerName() {
+ const input = document.querySelector('#partnername-input');
+ return input.value || input.placeholder;
+}
+
+function getPartnerVersion() {
+ const input = document.querySelector('#partnerversion-input');
+ return input.value || input.placeholder;
+}
+
+function getValidationScriptUrl() {
+ var demoValidationScript = 'https://cdn.bitmovin.com/content/player-web/lib/omsdk/omid-validation-verification-script-v1-player-demo.js';
+ return document.querySelector('#validationscripturl-input').value || demoValidationScript;
+}
+
+function getVendorKey() {
+ return document.querySelector('#vendorkey-input').value;
+}
+
+function getParams() {
+ return document.querySelector('#params-input').value;
+}
+
+function assembleVerificationResourceConfig() {
+ var verificationResource = {
+ validationScriptUrl: getValidationScriptUrl(),
+ };
+ var vendorKey = getVendorKey();
+ if (vendorKey) {
+ verificationResource.vendorKey = vendorKey;
+ }
+ var params = getParams();
+ if (params) {
+ verificationResource.params = params;
+ }
+ return verificationResource;
+}
+
+function assembleOmSdkTrackerConfig() {
+ return {
+ partnerName: getPartnerName(),
+ partnerVersion: getPartnerVersion(),
+ verificationResources: [
+ assembleVerificationResourceConfig()
+ ],
+ };
+}
+
+function setupPlayer(conf, source) {
+ var playerContainer = document.querySelector('#player-container');
+ var player = new bitmovin.player.Player(playerContainer, conf);
+
+ player.on('error', function(e) {
+ displayError('Error: ' + e.code + '/' + e.name);
+ });
+
+ player.on('aderror', function(e) {
+ displayError('Ad Error: ' + e.message + ' (potentially caused by ad blocker)');
+ console.warn(e);
+ });
+
+ player.load(source);
+ return player;
+}
+
+function injectScript(src) {
+ return new Promise(function(resolve, reject) {
+ const script = document.createElement('script');
+ script.src = src;
+ script.addEventListener('load', resolve);
+ script.addEventListener('error', function(e) {
+ reject(e.error)
+ });
+ document.head.appendChild(script);
+ });
+}
+
+function isIe() {
+ return /MSIE|Trident/.test(navigator.userAgent);
+}
+
+function isEdgeLegacy() {
+ return /Edge\/18/.test(navigator.userAgent);
+}
+
+$(document).ready(function() {
+ renderjson.set_icons('+ ', '- ');
+
+ if (isIe() || isEdgeLegacy()) {
+ displayError('Sorry! This demo is not supported on Internet Explorer and Edge Legacy web browsers.');
+ document.querySelector('#player-row').classList.add('d-none')
+ document.querySelector('#event-log-row').classList.add('d-none')
+ return;
+ }
+
+ Promise.all([
+ injectScript('https://cdn.bitmovin.com/player/web/8/modules/bitmovinplayer-advertising-bitmovin.js'),
+ injectScript('https://cdn.bitmovin.com/player/web/8/modules/bitmovinplayer-advertising-omsdk.js')
+ ]).then(function() {
+ bitmovin.player.Player.addModule(bitmovin.player['advertising-bitmovin'].default);
+ bitmovin.player.Player.addModule(bitmovin.player['advertising-omsdk'].default);
+ player = setupPlayer(conf, source);
+ });
+});
diff --git a/player/ad-event-verification-omsdk/page.html b/player/ad-event-verification-omsdk/page.html
new file mode 100644
index 00000000..f7a465b4
--- /dev/null
+++ b/player/ad-event-verification-omsdk/page.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/player/ad-event-verification-omsdk/page.js b/player/ad-event-verification-omsdk/page.js
new file mode 100644
index 00000000..e40ac8f6
--- /dev/null
+++ b/player/ad-event-verification-omsdk/page.js
@@ -0,0 +1,38 @@
+// Add modules for ordinary playback, e.g. here specifically for DASH streams (step a)
+bitmovin.player.core.Player.addModule(bitmovin.player['engine-bitmovin'].default);
+bitmovin.player.core.Player.addModule(bitmovin.player['mserenderer'].default);
+bitmovin.player.core.Player.addModule(bitmovin.player['xml'].default);
+bitmovin.player.core.Player.addModule(bitmovin.player['dash'].default);
+bitmovin.player.core.Player.addModule(bitmovin.player['abr'].default);
+bitmovin.player.core.Player.addModule(bitmovin.player['container-mp4'].default);
+bitmovin.player.core.Player.addModule(bitmovin.player['polyfill'].default);
+
+// Add Bitmovin Advertising and OM SDK player modules
+bitmovin.player.core.Player.addModule(bitmovin.player['advertising-core'].default);
+bitmovin.player.core.Player.addModule(bitmovin.player['advertising-bitmovin'].default);
+bitmovin.player.core.Player.addModule(bitmovin.player['advertising-omsdk'].default);
+
+// Create player config & include a OM SDK tracker config (step b)
+var conf = {
+ key: '',
+ advertising: {
+ adBreaks: [ /* ... */ ],
+ trackers: {
+ omSdk: {
+ partnerName: 'awesome-company',
+ partnerVersion: '1.3.25',
+ verificationResources: [{
+ validationScriptUrl: 'https://somewhere.com/validation-script.js',
+ }]
+ },
+ }
+ },
+};
+
+// Create player instance & load source (step c)
+var playerContainer = document.getElementById('player-container');
+var player = new bitmovin.player.core.Player(playerContainer, conf);
+
+player.load({
+ dash: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd',
+});
diff --git a/player/ad-event-verification/info.yaml b/player/ad-event-verification/info.yaml
deleted file mode 100644
index ce8a93c2..00000000
--- a/player/ad-event-verification/info.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-title: Ad Event Verification
-description: Enable ad event reporting
-long_description: To be defined.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - setup.js
- - adEvents.js
-
-tags:
- - To be defined
diff --git a/player/ad-scheduling/info.yaml b/player/ad-scheduling/info.yaml
deleted file mode 100644
index 1a2cf805..00000000
--- a/player/ad-scheduling/info.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-title: Ad Scheduling
-description: Schedule VAST / IMA / VPAID ads at your desired time
-long_description: This demo showcases the Bitmovin Player’s ad insertion capabilities. The player can be used with different advertising standards, namely VAST, VPAID, IMA and VMAP.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - dynamic-schedule.js
-
-tags:
- - advertisement
- - VAST
- - IMA
- - VPAID
-
-priority: 860
diff --git a/player/audio-api/README.md b/player/audio-api/README.md
index bf3d8038..53670da9 100644
--- a/player/audio-api/README.md
+++ b/player/audio-api/README.md
@@ -5,4 +5,4 @@ To be defined.
### Tags
- - to be defined
\ No newline at end of file
+ - experimental
\ No newline at end of file
diff --git a/player/audio-api/info.yaml b/player/audio-api/info.yaml
deleted file mode 100644
index 0d4abbe4..00000000
--- a/player/audio-api/info.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-title: Audio API
-description: Enable users to stream video as they scroll on the page
-long_description: To be defined.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - setup.js
- - scrollListener.js
-
-tags:
- - experimental
diff --git a/player/audio-only-streaming/info.yaml b/player/audio-only-streaming/info.yaml
deleted file mode 100644
index e617b420..00000000
--- a/player/audio-only-streaming/info.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-title: Audio Only Streaming
-description: Enables users to stream audio only content
-long_description: To be defined.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - setup.js
-
-tags:
- - To be defined
diff --git a/player/av1/info.yaml b/player/av1/info.yaml
deleted file mode 100644
index 55a74242..00000000
--- a/player/av1/info.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-title: AV1
-description: AV1 is a next generation codec that can reduce bandwidth and CDN costs by a factor of 10
-long_description: Bitmovin is spearheading the drive towards a commercially viable AV1 solution. See our online demonstration of AV1 encoding and playback.
-
-executable:
- executable: true
- indexfile: index.html
-
-tags:
- - experimental
- - AV1
- - Chrome
- - Firefox
- - Google
- - Mozilla
- - Nightly
- - Canary
-
-additionalCategories:
- - encoding
-
-priority: 920
-hidden: false
diff --git a/player/caption-styling/info.yaml b/player/caption-styling/info.yaml
deleted file mode 100644
index 1b0c0135..00000000
--- a/player/caption-styling/info.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-title: CEA-608/708 captions and styling
-description: This demo shows the Bitmovin Player displaying a video with captions and offering all the controls necessary to be compliant with CEA-708
-long_description: This demo shows the Bitmovin Player displaying a video with captions and offering all the controls necessary to be compliant with CEA-708.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - demo.js
-
-tags:
- - captions
- - cea-708
- - basic
- - cea styling
diff --git a/player/channel-switching/info.yaml b/player/channel-switching/info.yaml
deleted file mode 100644
index 4a7959ba..00000000
--- a/player/channel-switching/info.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-title: Fast Channel Switching
-description: Switch between two channels without destroying the player and speeding up the process
-long_description: This interactive video demo showcases the Bitmovin Player’s ability to switch between channels, quickly and seamlessly. Try this three channel demo.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - setup.js
- - switchChannel.js
-
-tags:
- - switch
- - load
- - channel
diff --git a/player/chromecast/README.md b/player/chromecast/README.md
index dc5c9802..7d80e124 100644
--- a/player/chromecast/README.md
+++ b/player/chromecast/README.md
@@ -7,4 +7,5 @@ The Chromecast Player allows you to cast directly from your device to your telev
- chromecast
- television
- - cast
\ No newline at end of file
+ - cast
+ - caf
\ No newline at end of file
diff --git a/player/chromecast/info.yaml b/player/chromecast/info.yaml
deleted file mode 100644
index 97163620..00000000
--- a/player/chromecast/info.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-title: Chromecast
-description: Cast video directly to your television screen using Chromecast and the Bitmovin Player
-long_description: The Chromecast Player allows you to cast directly from your device to your television screen using the Chromecast browser plugin and a Chromecast enabled display device.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - demo.js
- - caf.js
-
-tags:
- - chromecast
- - television
- - cast
- - caf
-
-priority: 820
diff --git a/player/chromeless/info.yaml b/player/chromeless/info.yaml
deleted file mode 100644
index f6753113..00000000
--- a/player/chromeless/info.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-title: Chromeless Player
-description: This demo shows how the player can work without an UI
-long_description: This demo showcases how the Bitmovin Player can be controlled completely via the API. The code example gives you the configuration settings required.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - demo.js
-
-tags:
- - UI
- - chromeless
- - headless
- - basic
diff --git a/player/custom-adaptation/info.yaml b/player/custom-adaptation/info.yaml
deleted file mode 100644
index 062cf291..00000000
--- a/player/custom-adaptation/info.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-title: Custom Adaptation
-description: Showcasing the player's ability to switch between bitrates to avoid re-buffering, minimize startup time, and provide the best possible quality
-long_descripition: The adaptation logic in the player is the key to avoiding buffering and minimizing startup time. Custom adaptation gives you complete control over your player.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - demo.js
-
-tags:
- - adaptation logic
- - adaption
- - bitrate
- - quality-switching
-
-priority: 800
diff --git a/player/custom-quality-labels/info.yaml b/player/custom-quality-labels/info.yaml
deleted file mode 100644
index c196d81e..00000000
--- a/player/custom-quality-labels/info.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-title: Custom Quality Labels
-description: Customize video quality labels
-long_description: To be defined.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - setup.js
-
-tags:
- - To be defined
diff --git a/player/drm/info.yaml b/player/drm/info.yaml
deleted file mode 100644
index b4270050..00000000
--- a/player/drm/info.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-title: DRM stream test
-description: Test your protected DRM stream with the Bitmovin Player
-long_description: Test your protected DRM stream live with the Bitmovin Player and get immediate insights into which DRM system and codecs are supported by your browser.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - demo.js
-
-tags:
- - drm
- - widevine
- - playready
-
-priority: 880
diff --git a/player/frame-accurate-seeking/README.md b/player/frame-accurate-seeking/README.md
index bebdabf1..4bd91ab4 100644
--- a/player/frame-accurate-seeking/README.md
+++ b/player/frame-accurate-seeking/README.md
@@ -5,4 +5,4 @@ Test long description.
### Tags
- - TestTag
\ No newline at end of file
+ - seek
\ No newline at end of file
diff --git a/player/frame-accurate-seeking/info.yaml b/player/frame-accurate-seeking/info.yaml
deleted file mode 100644
index cabde891..00000000
--- a/player/frame-accurate-seeking/info.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-title: Frame Accurate Seeking
-description: Enable users to quickly scan and find the exact scene or frame they're looking for
-long_description: Test long description.
-
-executable:
- executable: true
- indexfile: index.html
-
-tags:
- - TestTag
diff --git a/player/hls-fmp4/info.yaml b/player/hls-fmp4/info.yaml
deleted file mode 100644
index ce5308c8..00000000
--- a/player/hls-fmp4/info.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-title: HLS fragmented MP4
-description: The Bitmovin Player fully supports fragmented MP4 in HLS
-long_description: This demo showcases HLS content using fragmented MP4 (fMP4) being played by the Bitmovin Player, bringing you the advantage of reducing storage cost.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - demo.js
-
-tags:
- - fMP4
- - fragmented
- - MP4
- - HLS
- - basic
diff --git a/player/low-latency-streaming/README.md b/player/low-latency-streaming/README.md
index 54db0655..8d0a594a 100644
--- a/player/low-latency-streaming/README.md
+++ b/player/low-latency-streaming/README.md
@@ -1,7 +1,7 @@
# Low Latency Streaming
Reduce latency during live streaming events and increase fan engagement
-reduce latency from 30 seconds to 2 seconds,available on Web and Mobile platforms,monitor playback performance with Bitmovin Analytics
+reduce latency from 30 seconds to 5 seconds,available on Web and Mobile platforms,monitor playback performance with Bitmovin Analytics
### Tags
diff --git a/player/low-latency-streaming/info.yaml b/player/low-latency-streaming/info.yaml
deleted file mode 100644
index 9b55a9a6..00000000
--- a/player/low-latency-streaming/info.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-title: Low Latency Streaming
-description: Reduce latency during live streaming events and increase fan engagement
-long_description:
- - reduce latency from 30 seconds to 2 seconds
- - available on Web and Mobile platforms
- - monitor playback performance with Bitmovin Analytics
-
-executable:
- executable: true
- indexfile: index.html
-
-tags:
- - Cmaf low latency
- - live latency
-
-priority: 890
diff --git a/player/modular-player/info.yaml b/player/modular-player/info.yaml
deleted file mode 100644
index 4bf9a91b..00000000
--- a/player/modular-player/info.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-title: Modular Player
-description: Modular approach improves Bitmovin Player speed
-long_description: The Bitmovin Player is a modular player, so you dramatically can reduce the file size and speed up your pages by just using what you need.
-
-executable:
- executable: true
- indexfile: index.html
-
-tags:
- - modular
- - reduce size
-
-priority: 960
-
-hide_github_link: true
diff --git a/player/multi-audio-tracks/info.yaml b/player/multi-audio-tracks/info.yaml
deleted file mode 100644
index c734c3b8..00000000
--- a/player/multi-audio-tracks/info.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-title: Multiple Audio Tracks & Multiple Subtitles
-description: Display multi language and audio options available with the Bitmovin player
-long_description: Bitmovin supports multiple audio/language tracks, without the need of duplication or repackaging the video, either for live or on-demand content. Try the demo.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - setup.js
-
-tags:
- - multi
- - audio
- - language
- - basic
- - subtitle
diff --git a/player/native-sdks/info.yaml b/player/native-sdks/info.yaml
deleted file mode 100644
index 0a00e0f0..00000000
--- a/player/native-sdks/info.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-title: Native Player SDKs
-description: Deliver High Quality Video Everywhere with Bitmovin's Native Player SDKs
-long_description: Bitmovin’s Native SDKs give you everything you need to get your video playing anywhere, any device, any platform.
-
-executable:
- executable: true
- indexfile: index.html
-
-hide_github_link: true
-
-buttons:
- - name: native-sdks-player-ios-samples
- text: See iOS Samples
- url: https://github.com/bitmovin/bitmovin-player-ios-samples
- icon: apple
- - name: native-sdks-player-android-samples
- text: See Android Samples
- url: https://github.com/bitmovin/bitmovin-player-android-samples
- icon: android
-
-tags:
- - native
- - sdks
- - sdk
- - os
- - apple
- - google
- - samsung
- - lg
- - amazon
- - fire
- - roku
- - playstation
- - andriod
- - ios
- - mac
- - macos
- - smart
- - tv
- - opera
- - chrome
- - firefox
- - edge
- - sfari
- - internet explorer
diff --git a/player/overlay-ad/info.yaml b/player/overlay-ad/info.yaml
deleted file mode 100644
index e2327c48..00000000
--- a/player/overlay-ad/info.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-title: Overlay Ad
-description: Enable static ads in the video player
-long_description: To be defined.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - setup.js
-
-tags:
- - advertisement
- - overlay
- - VAST
- - VPAID
-
-priority: 850
diff --git a/player/picture-in-picture/info.yaml b/player/picture-in-picture/info.yaml
deleted file mode 100644
index 3a2bf626..00000000
--- a/player/picture-in-picture/info.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-title: Picture in Picture
-description: Showcases the ability to keep a minimized player in the corner of your screen when you scroll too far
-long_description: Picture in picture is a great feature for screens with more content than just the video, or screens with multiple videos. See it in action here.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - setup.js
- - scrollListener.js
- - magic.css
-
-tags:
- - picture
- - mini
- - advanced
- - PiP
- - sticky
-
diff --git a/player/player-ui-styling/README.md b/player/player-ui-styling/README.md
index 11fa8143..ed5d5123 100644
--- a/player/player-ui-styling/README.md
+++ b/player/player-ui-styling/README.md
@@ -1,10 +1,10 @@
-# UI Styling
-
-Learn how you can entirely control the styling of the player UI
-A unified UI config ensures that your player will look the same, regardless of which device or platform it is rendered on. Try the interactive demo.
-
-### Tags
+# UI Styling
+
+Learn how you can entirely control the styling of the player UI
+A unified UI config ensures that your player will look the same, regardless of which device or platform it is rendered on. Try the interactive demo.
+
+### Tags
- styling
- css
- - UI
+ - UI
\ No newline at end of file
diff --git a/player/player-ui-styling/info.yaml b/player/player-ui-styling/info.yaml
deleted file mode 100644
index 034fd8b0..00000000
--- a/player/player-ui-styling/info.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-title: UI Styling
-description: Learn how you can entirely control the styling of the player UI
-long_description: A unified UI config ensures that your player will look the same, regardless of which device or platform it is rendered on. Try the interactive demo.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - playerManaged.js
- - externallyManaged.js
- - cssOverloading.js
-
-tags:
- - styling
- - css
- - UI
diff --git a/player/preload-vod/info.yaml b/player/preload-vod/info.yaml
deleted file mode 100644
index fc1577ae..00000000
--- a/player/preload-vod/info.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-title: Preload VoD
-description: Enable users to instantly start watching their content without buffering or waiting
-long_description: To be defined.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - setup.js
-
-tags:
- - preload
- - vod
diff --git a/player/ssai/info.yaml b/player/ssai/info.yaml
deleted file mode 100644
index 85c26fa2..00000000
--- a/player/ssai/info.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-title: Server Side Ad Insertion
-description: A demo of how you can use server side ad insertion with the player
-long_description: Ad Blocking software has had a major impact on ad revenue across the entire video industry. Server-Side Ad Insertion offers a way to bypass Ad Blockers.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - demo.js
-
-tags:
- - advertissement
- - server side
- - ssai
- - ads
-
-priority: 840
diff --git a/player/stream-test/info.yaml b/player/stream-test/info.yaml
deleted file mode 100644
index fc91d8d5..00000000
--- a/player/stream-test/info.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-title: DASH, HLS or PROGRESSIVE stream test
-description: Test your own stream with the Bitmovin Player
-long_description: Simply paste the link to your video file to test your own stream with the Bitmovin Player. Playback in any browser and any device, fast start up, no buffering.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: false
- language: js
-
-tags:
- - dash
- - hls
- - stream
- - basic
- - test
- - player
-
-priority: 100
diff --git a/player/thumbnail-seeking/info.yaml b/player/thumbnail-seeking/info.yaml
deleted file mode 100644
index 8b1cf2bf..00000000
--- a/player/thumbnail-seeking/info.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-title: Thumbnail seeking
-description: Display thumbnails over the seek bar to show a preview of the video at seeked time
-long_description: Display thumbnails over the seek bar to show a preview of the video as the timeline is moved. This Bitmovin Player demonstration includes a working thumbnail demo.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - setup.js
- - tracks.js
-
-tags:
- - thumbnail
- - seek
- - preview
- - basic
diff --git a/player/variable-playback-speed/info.yaml b/player/variable-playback-speed/info.yaml
deleted file mode 100644
index 52f0f9bc..00000000
--- a/player/variable-playback-speed/info.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-title: Variable Playback Speed
-description: Change the playback speed of content
-long_description: Bitmovin Player gives you the option to control the playback speed. This can be useful for many applications. Try the demo.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - demo.js
-
-tags:
- - playback speed
- - dynamic
diff --git a/player/vr-360/info.yaml b/player/vr-360/info.yaml
deleted file mode 100644
index 3a650738..00000000
--- a/player/vr-360/info.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-title: VR & 360°
-description: This demo shows the Bitmovin Player displaying a 360° video with VR
-long_description: The Bitmovin Player was the first player on the market to achieve complete cross browser compatibility, and is still leading the way in features and performance.
-
-executable:
- executable: true
- indexfile: index.html
-
-code:
- show_code: true
- language: js
- files:
- - demo.js
-
-tags:
- - VR
- - 360
- - 3D
-
-priority: 780
diff --git a/scripts/checkYamlAndReadme.js b/scripts/checkJsonAndReadme.js
similarity index 86%
rename from scripts/checkYamlAndReadme.js
rename to scripts/checkJsonAndReadme.js
index e8d32c01..cb5b1029 100644
--- a/scripts/checkYamlAndReadme.js
+++ b/scripts/checkJsonAndReadme.js
@@ -22,12 +22,12 @@ const folderWalk = (folderPath) => {
};
const addFileAndFolderPaths = (folderPath) => {
- if (fs.statSync(folderPath).isDirectory() && fs.existsSync(path.join(folderPath, 'info.yaml')) && !fs.existsSync(path.join(folderPath, 'README.md'))) {
+ if (fs.statSync(folderPath).isDirectory() && fs.existsSync(path.join(folderPath, 'info.json')) && !fs.existsSync(path.join(folderPath, 'README.md'))) {
console.error(`README file does not exist in folder: ${folderPath}!`);
process.exit(1);
}
- else if (fs.statSync(folderPath).isDirectory() && !fs.existsSync(path.join(folderPath, 'info.yaml')) && fs.existsSync(path.join(folderPath, 'README.md'))) {
- console.error(`Yaml file does not exist in folder: ${folderPath}!`);
+ else if (fs.statSync(folderPath).isDirectory() && !fs.existsSync(path.join(folderPath, 'info.json')) && fs.existsSync(path.join(folderPath, 'README.md'))) {
+ console.error(`info.json file does not exist in folder: ${folderPath}!`);
process.exit(1);
}
else if (fs.statSync(folderPath).isDirectory()) {
diff --git a/scripts/yamlToReadmeConverter.js b/scripts/jsonToReadmeConverter.js
similarity index 63%
rename from scripts/yamlToReadmeConverter.js
rename to scripts/jsonToReadmeConverter.js
index 92df9b00..b9a4acd7 100644
--- a/scripts/yamlToReadmeConverter.js
+++ b/scripts/jsonToReadmeConverter.js
@@ -1,6 +1,5 @@
const fs = require('fs');
const path = require('path');
-const YAML = require('yamljs');
const folderPaths = [];
const filePaths = [];
@@ -25,8 +24,8 @@ const folderWalk = (folderPath) => {
};
const addFileAndFolderPaths = (folderPath) => {
- if (fs.statSync(folderPath).isDirectory() && fs.existsSync(path.join(folderPath, 'info.yaml'))) {
- const addFilePath = path.join(folderPath, 'info.yaml');
+ if (fs.statSync(folderPath).isDirectory() && fs.existsSync(path.join(folderPath, 'info.json'))) {
+ const addFilePath = path.join(folderPath, 'info.json');
folderPaths.push(folderPath);
filePaths.push(addFilePath);
}
@@ -34,7 +33,7 @@ const addFileAndFolderPaths = (folderPath) => {
folderWalk(folderPath);
}
else {
- console.error(`Yaml file does not exist in folder: ${folderPath}!`);
+ console.error(`info.json file does not exist in folder: ${folderPath}!`);
process.exit(1);
}
};
@@ -48,30 +47,30 @@ const parseTags = (tags) => {
};
const createReadme = (filePath, index) => {
- YAML.load(filePath, (result) => {
- const mapObj = {
- '{{title}}': result.title,
- '{{description}}': result.description,
- '{{long_description}}': result.long_description
- }
+ const fileContents = fs.readFileSync(filePath);
+ const result = JSON.parse(fileContents);
+ const mapObj = {
+ '{{title}}': result.title,
+ '{{description}}': result.description,
+ '{{long_description}}': result.long_description
+ }
+
+ fs.readFile('./readmeTemplate.txt', 'utf8', (error, data) => {
+ if (error) {
+ console.error(error);
+ process.exit(1);
+ };
+ const readmePath = folderPaths[index] + '/README.md';
- fs.readFile('./readmeTemplate.txt', 'utf8', (error, data) => {
+ const readmeResult = data.replace(/{{title}}|{{description}}|{{long_description}}/gi, (matched) => {
+ return mapObj[matched];
+ }) + parseTags(result.tags);
+
+ fs.writeFile(readmePath, readmeResult, (error) => {
if (error) {
console.error(error);
process.exit(1);
};
- const readmePath = folderPaths[index] + '/README.md';
-
- const readmeResult = data.replace(/{{title}}|{{description}}|{{long_description}}/gi, (matched) => {
- return mapObj[matched];
- }) + parseTags(result.tags);
-
- fs.writeFile(readmePath, readmeResult, (error) => {
- if (error) {
- console.error(error);
- process.exit(1);
- };
- })
})
})
};