Seriesplus.com is a site built for Series+ TV channel. It provides content-streaming services and various show schedule information to millions of people in Canada. It is one of the largest video-streaming sites in Quebec province. The client wants the site to require a minimal maintenance effort. It needs to integrate with 3rd part videos streaming service. Their previous site had become outdated.

Why Drupal was chosen: 

Whenever a client approaches us with a unique request, We took it carefully. We understand that they want to make the website better by more meaningful, more user-friendly. As a developer team, we want to give the best available solution. With Drupal, most time, we have adequate functions for it. Drupal has thousands of modules, and it integrates different service well. A lot of time, we can exceed our client's expectation and walked an extra mile. At the same time, we kept in line with the best practice of good performance. The modulized structure helps us to use the old code for other projects. We had accumulated some in-house custom modules and templates. We have many customised video integration modules and schedule related modules. Thanks, to Drupal. That reduced a lot of workloads and helping us to deliver projects faster.

Describe the project (goals, requirements and outcome): 

As a website for a French TV channel Series Plus in Canada. We have following goals and requirements. We need be good at videos, schedules and be remarkably responsive.

1) Integrate video streaming service seamlessly.
We pull videos' data from MPX server automatically. It reduces the labour of site maintaining. We use the video's custom metadata on MPX server. Our Drupal site uses the metadata like show season, episode, title, description and air time and expires time. The show, season and episode information help video find the way to their own shows' pages and get into the video list in right order. Soon a video is released on MPX; our Drupal modules will pull the videos over and make them ready on the website.

When we integrate video streaming service, we are focusing on reliability. We had another similar site that has problems with missing video thumbnail. It is not a good experience for a visitor and editor when they see a video in the list with a missing thumbnail image. We also want download the videos data within 15 minutes after MPX publish the video. We need to save all the MPX custom video metadata correctly in the Drupal video file entities. Thanks to Dave Reid and Lullabot and other contributes for the great Media: thePlatform mpx module. It provides us with a stable platform, and we have built on another module to extend the ability to import custom metadata from MPX. We contributed it back to the community as this module thePlatform mpx entity fields sync. It allows us to import the customised MPX video metadata into the video file entities' fields.

We use those metadata to decide which show the videos belongs to and when is the schedule.

2) Schedule data was able to be integrated into the web page with the greatest flexibility.
Those pages used to be a big pain for us. Since it aggregates the data from another source that we do not have control. So, the schedule page went down time to time as the result of schedule data outage or network issues. It is a stressful time whenever the page is not available.

We have been successfully solved this problem and running the schedule page smoothly for over a year now. Here is how we did it. It is a "Decoupled Drupal" story. We built a dedicated server with Drupal. It provides schedule data for all websites. We set it up to serve as a buffer layer from any service outage. Drupal is excellent with this kind of job. Some facts of the schedule server:

  1. It has following node content type: schedule item, episode, event, movie, series, show.
  2. It has about 230 thousands of nodes.
  3. It creates, deletes and updates about 10,000 nodes every day.

For more technical detail, check out this article Content As A Service.

Now, we have a reliable web service to feed the schedule data in JSON format. It is time for us to built a general Corus Local schedule module. The module pulls the data from the web service and renders it into various blocks. We built the module in a way that channel websites can easily extend it. It provides necessary hooks and templates for customizations. It forms a strong base to develop complicated schedule functional blocks.

3) We want the site to be responsive extensively.
We want the site to be responsive. Not only looks like responsive but also to be extensive. Like a carousel image, to serving different image size for different devices. For a good user experience, we may want a block to behave very differently when on different devices. A tabbed layout on a computer monitor become a drop-down selection list or an accordion style on a mobile device.

Home page schedule block
Kudos to Drupal slick module developers.
We use it to make our schedule block act like a carousel with just couple lines of code. The block is on the home page of the site. Thanks, God. It is responsive. A responsive carousel, can you find it in other CMS with couple lines of code? Well written contributed module made Drupal such a compelling choice for a comprehensive website.

Organizations involved: 
Modules/Themes/Distributions
Why these modules/theme/distribution were chosen: 

We use Bootstrap as a base theme and develop this responsive site. Slick seems to be one of the most powerful carousel modules that supporting responsive design well. We use webform for contest. We use media, Media: thePlatform mpx, Media: thePlatform mpx entity field modules to sync videos with MPX server. We use picture module for a real responsive site. Radioactivity is a great module to show those popular content.

Team members: