Cultflicks Video Streaming

Cultflicks is a SaaS based streaming platform that became popular for streaming unpopular movies. It had sold subscriptions for a long time but eventually, the growth stalled. The company wanted to improve its product offering for casual viewers by adding a pay-per-view subscription model. This would mean that subscribers would only pay for the content that they watched and if they didn’t watch anything, they wouldn’t be charged for that month.

After a successful advertising campaign, Cultflicks now has customers across two different subscription levels. Premium subscribers, who pay a standard monthly fee for all content, and pay-per-view subscribers whose monthly charge will vary depending on their consumption each month.

The Cultflicks example stream will provide a batch flow that records viewing statistics, classifies users according to their usage, and processes data into billable information. This stream highlights:

  • An actual stream flow from raw data

  • Data enrichment

  • User classification to multiple use cases, like billing, notification, settlement and analytics

  • A step-by-step preview of data transformation from "raw usage data" to data that the business can gain insight from, for example, data related to churn or upselling opportunities.

Functions Used and Stream Breakdown

Part A - Input Data Simulation, Enrichment of User & Movie title information, and Calculation of View Percentage

  • Count: Triggers the stream to run as many times as specified in the configuration

  • View simulator (Script): Collects data from a single source

  • Enrich user info (Script): Enriches the collected data with user information

  • Enrich title info (Script): Enriches the data with movie title information

  • Calculate view percent (Map): Calculates the viewing percentage per movie

Part B - Aggregating Total View Time, Classifying the User and Sending Billing Information

  • Aggregate view time (Data Aggregator): Aggregates the total view time per user, both actual view time and potential maximum view time

  • Classify user (Script: Classifies the user into "heavy, standard, light" (based on view time) and churn risk (yes/no) based on view completion percentage

  • Format for billing (Field Organizer): Formatting and renaming input data fields for billing

  • To Billing (No Operation): Sends the billing information and classification info and nudging messages into the billing system

Part C - Performing View Completion Check

  • View completion check (Route): Routes data into two different paths for movie titles that were viewed to completion and not viewed to completion 

Part D - Counting Movies Viewed to Completion and Sending Aggregated Data for Partner Billing

  • Count completed (Data Aggregator): Counts how many movies were viewed to completion

  • Format for settlement (Field Organizer): Formatting and renaming input data fields for settlement

  • To partner settlement (No Operation): Sends the aggregated number of view seconds per movie IP owner

Part E - Counting Movies Not Viewed to Completion and Sending Aggregated Data for External Analytics

  • Count not completed (Data Aggregator): Counts how many movies were and weren't viewed to completion

  • Format for analytics (Field Organizer): Formatting and renaming input data fields for analytics

  • To analytics (No Operation): Sends analytics to an external system