Experimental project
This is a sandbox project, which contains experimental code for developer use only.
This module creates an AWS Cloudfront CDN optimized JW Player 6 for Drupal content and supports videos that are made of multiple chapters but does not use playlists.
Use Case
The ability to play extremely large (4GB and greater) protected video content through a JW Player that uses a CDN to load 100% of all assets necessary for the player and the video. The video content must also be broken up into chapters.
Cloudfront CDN Caveats
The requirement to play a video of multiple chapters often defaults to using the playlist functionality within JW Player. The requirement for this module was also protected content as the videos being played must be purchased - this means signed URLs. The bad news: AWS Cloudfront Signed URLs breaks XML playlists and after working on that for almost two weeks - even with JW Player Support - it cannot be fixed. The problem is the format of the URLs as it invalidates XML due to characters in the string.
This is why the approach taken by this module to play multiple chapters was taken.
Other CDNs
Other CDNs could be supported but we specifically wrote this for Amazon Cloudfront as that is the server we were moving to (from EdgeCast). If you would like to help expand this module I welcome co-maintainers with open arms.
Full Project Status
I will only make this module a full project if there is interest in doing so by other people that would like to use it. Express your support in the issue queue if you would like to have this module promoted to full status.
Why Not the JW Player Module?
The most prominent module for Drupal and JW Player is the JW Player module. The way that module is constructed everything about the JW Player and the videos that you play have to be stored within your Drupal site. While it is true that you can pull that information with a CDN by piping the entire Drupal site through a CDN that was not possible in this use case because of the need to provide private content over the CDN (you do not want to have to create signed URLs for every single asset on your entire website).
Tokens
Tokens were an idea at the early onset of this project. Tokens would be flexible and easy but alas it is impossible under the current status of Token module. Token would need to be dynamic to accept arguments and this was discussed for Version 2.0 of Token but that has never come to fruition. See here: Dynamic Token
Requirements
- JW Player 6 License
- Amazon Web Services Account
- CTools
Related Modules
Credits and Appreciation
Portions of this module use code developed by the JW Player for Drupal 7 module. Without that module a lot of this module would have been a lot harder to write.
Project information
- Created by perignon on , updated

