All Projects → jonhoo → vast-vmap

jonhoo / vast-vmap

Licence: MIT license
JavaScript library for IAB VAST + VMAP

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to vast-vmap

synchroplayer
Synchronized video player for watching videos together remotely.
Stars: ✭ 25 (-54.55%)
Mutual labels:  video-player, html5-video
Xgplayer
A HTML5 video player with a parser that saves traffic
Stars: ✭ 4,792 (+8612.73%)
Mutual labels:  video-player, html5-video
clappr-core
Core components of the Clappr player architecture
Stars: ✭ 41 (-25.45%)
Mutual labels:  video-player, html5-video
voronoi-video
Fragmented HTML5 using the Voronoi diagram
Stars: ✭ 13 (-76.36%)
Mutual labels:  video-player, html5-video
Larkplayer
🚀 A lightweight & flexible web player :)
Stars: ✭ 82 (+49.09%)
Mutual labels:  video-player, html5-video
Clappr
🎬 An extensible media player for the web.
Stars: ✭ 5,436 (+9783.64%)
Mutual labels:  video-player, html5-video
Fluid Player
Fluid Player - an open source VAST compliant HTML5 video player
Stars: ✭ 359 (+552.73%)
Mutual labels:  video-player, html5-video
Chimee
a video player framework aims to bring wonderful experience on browser
Stars: ✭ 2,332 (+4140%)
Mutual labels:  video-player, html5-video
Indigo Player
Highly extensible, modern, JavaScript video player. Handles MPEG-Dash / HLS / MPEG-4 and is built on top of the HTML5 video element.
Stars: ✭ 1,173 (+2032.73%)
Mutual labels:  video-player, html5-video
Better Chrome Native Video
Add keyboard support to Chrome's native HTML5 video player.
Stars: ✭ 31 (-43.64%)
Mutual labels:  video-player, html5-video
React Jplayer
Html5 audio and video player library for React
Stars: ✭ 128 (+132.73%)
Mutual labels:  video-player, html5-video
Eplayer
🔮 A web-component html5 video player facing future
Stars: ✭ 253 (+360%)
Mutual labels:  video-player, html5-video
Adware-ads-network-server
Online Advertising Network Server
Stars: ✭ 44 (-20%)
Mutual labels:  advertisement
YetAnotherVideoPlayer
Yet Another Video Player for Andoid
Stars: ✭ 62 (+12.73%)
Mutual labels:  video-player
GPlayer
video player plugin for flutter base on ijkplayer
Stars: ✭ 51 (-7.27%)
Mutual labels:  video-player
musicWebTemplate
Free website template built for musicians / artists to promote their music and connect to their audience.
Stars: ✭ 26 (-52.73%)
Mutual labels:  video-player
emacs-application-framework
EAF, an extensible framework that revolutionizes the graphical capabilities of Emacs
Stars: ✭ 2,454 (+4361.82%)
Mutual labels:  video-player
aos-Video
NOVA opeN sOurce Video plAyer: player frontend main UI
Stars: ✭ 35 (-36.36%)
Mutual labels:  video-player
cacophony
Cacophony HTML5 Interactive Video Player
Stars: ✭ 41 (-25.45%)
Mutual labels:  html5-video
ti.youtube
A small library to get the URL of the desired YouTube video ID to use it natively in Ti.Media.VideoPlayer.
Stars: ✭ 13 (-76.36%)
Mutual labels:  video-player

Build Status

What is this?

This is a JavaScript library for working with Ad Servers providing ads through IAB VAST and VMAP formatted responses. VAST is the standard for delivering the ads, whereas VMAP is the standard for deciding where in the video stream ads should go.

The library has not yet been tested at all, just written according to the specifications. It is likely that it does not work. Hopefully it will evolve over time now that the ground work has been put down though.

Do you have an example?

Nope, not yet. I'll probably write a HTML5 video integration soon that should act like a demo though. Watch this space.

How do I use it?

For now, read the JSDoc. I think it should be fairly straightforward, but maybe not. When I get around to writing a demo, things might be more clear. Would be good to have a VAST/VMAP provider that were willing to put up a test service though.

Also, note that this is a very low-level library. It parses VAST/VMAP, handles wrapped responses and tracking for you and tells you which ads to play when. It does no do anything unless you ask for something or tell it do do something. For example, you have to explicitly call VASTCreative#track on a creative any time a trackable event happens. The library will not watch for the events since it does not care how you display the data.

Level of standards support

Should support most sensible VAST 3.0 (and therefore also 2.0) and VMAP 1.0 resources. Also supports some silly things like deeply nested Wrapper resources and even more silly things like AdPods inside AdPods inside AdPods (which is possble because of the weird way IAB have decided to do Wrapper responses). The following things have been left out mostly intentionally:

  • Sequence numbers for creatives (because the standard doesn't really give a use case for them)
  • Any kind of extensions
  • Survey elements (what are these anyway?)
  • Anything that has to do with pricing or money
  • Anything related to "apiFramework"

Known issues

The following is a list of features that I do want to implement, but I just haven't gotten around to them yet.

  • Enforcement of the "required" attribute for Companion Ads
  • An interface for reporting errors so that they are reported back to the Ad Server
  • adParameters for Flash StaticResources
  • Industry Icons (which are required according to the standard). This is simply because I haven't gotten around to it yet. Also, they're not very well described in the standard.

Testing

I've added some rudimentary tests using BusterJS based on some VAST 2.0 XML files distributed by the IAB. Feel free to add more if you want to. Still need a good example VMAP document though...

In order to run the tests, start by installing dev dependencies:

npm install

And then:

grunt test

You can also watch for changes and immediately run the tests:

grunt watch:tests

Support

This code is not officially supported by anyone, not even me. I give no guarantees that it is working, nor that it will work any time soon. Don't come running to me if your server catches on fire because of using this libary.

Any issues should be submitted at the Github issues page. Pull requests are more than welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].