Frequently Asked Questions

Building a Streaming Platform with Hygraph

How can I use Hygraph to build a streaming platform like Netflix?

Hygraph acts as a centralized content platform that enables you to sort, unify, structure, and deliver data from multiple sources and endpoints. In the context of a streaming platform, you can use Hygraph to federate content from sources like Cloudinary (for video hosting) and OMDb (for metadata), and expose it via a GraphQL API to your frontend (e.g., Next.js). This approach allows you to bring together disparate APIs and manage your streaming content efficiently. Note: Building a production-grade streaming platform still requires handling video encoding, DRM, and large-scale delivery, which may need additional services beyond Hygraph. Source

What integrations are required to build a video streaming platform with Hygraph?

To build a streaming platform as described in the tutorial, you need to integrate Hygraph with Cloudinary (for video asset hosting) and OMDb (for movie metadata). Hygraph's remote sources feature allows you to connect to OMDb's REST API, and its marketplace app enables direct integration with Cloudinary. You can also use Next.js for the frontend and Tailwind CSS for styling. Note: Additional integrations may be needed for advanced streaming features like DRM or analytics. Source

How does Hygraph connect to external APIs like OMDb and Cloudinary?

Hygraph connects to external APIs using its remote sources feature. For OMDb, you add it as a REST remote source in the Hygraph dashboard, configure the base URL with your API key, and map fields to your content model. For Cloudinary, Hygraph offers a marketplace app that allows direct integration—after installing the app and providing your Cloudinary credentials, you can add Cloudinary assets to your schema and manage your video library within Hygraph. Note: API rate limits and authentication requirements for third-party services still apply. Source

What frontend frameworks are supported for building a streaming platform with Hygraph?

The tutorial demonstrates using Next.js as the frontend framework, but the principles can be applied to other frameworks such as React, Vue, or Angular. Hygraph exposes content via a GraphQL API, making it compatible with any frontend technology that can consume GraphQL. Note: Some frameworks may require additional setup for optimal performance or integration. Source

Features & Capabilities

What are the key features of Hygraph for streaming platforms?

Key features include content federation (integrating multiple data sources like Cloudinary and OMDb), a GraphQL-native API for efficient content delivery, remote sources for connecting to external APIs, and a user-friendly interface for managing content models and assets. Hygraph also supports granular permissions, localization, and integration with various DAM and hosting platforms. Note: For advanced streaming needs (e.g., live streaming, DRM), you may need to integrate additional services. Source, Documentation

Does Hygraph support high-performance content delivery for streaming platforms?

Yes, Hygraph offers high-performance endpoints optimized for low latency and high read-throughput, which are important for streaming platforms. A read-only cache endpoint provides 3-5x latency improvement for content delivery. However, video streaming performance also depends on your video hosting provider (e.g., Cloudinary) and CDN configuration. Note: Hygraph does not handle video encoding or CDN delivery directly; these must be managed via integrated services. Source

What APIs does Hygraph provide for developers?

Hygraph provides several APIs: the GraphQL Content API for querying and manipulating content, the Management API for handling project structure, the Asset Upload API for uploading files, and the MCP Server API for secure communication with AI assistants. These APIs are documented in detail in the API Reference. Note: API rate limits and authentication requirements apply. Source

Implementation & Onboarding

How long does it take to implement Hygraph for a streaming platform?

Implementation time varies by project complexity. Case studies show that customers like Top Villas launched a new project within 2 months, and Voi migrated from WordPress to Hygraph in 1-2 months. For smaller or less complex streaming platforms, setup can be completed in days using Hygraph's onboarding guides, starter projects, and community support. Note: Large-scale or highly customized streaming platforms may require additional integration and testing time. Source

What resources are available to help me get started with Hygraph?

Hygraph provides extensive documentation, getting started guides, onboarding overviews, and starter projects. You can sign up for a free account, access structured onboarding (including intro calls and technical kickoffs), and join the Hygraph community on Slack. Training resources such as webinars, live streams, and how-to videos are also available. Note: Some advanced features may require developer expertise. Source

Security & Compliance

What security and compliance certifications does Hygraph have?

Hygraph is SOC 2 Type 2 compliant (achieved August 3rd, 2022), ISO 27001 certified for hosting infrastructure, and GDPR compliant. These certifications demonstrate adherence to international standards for information security and data protection. Note: For industry-specific compliance needs, consult Hygraph's sales or security team. Source

How does Hygraph secure content and API access?

Hygraph secures content and API access through granular permissions, SSO integrations (OIDC/LDAP/SAML), audit logs, encryption in transit and at rest, regular backups, and secure API policies (custom origin policies and IP firewalls). All endpoints use SSL certificates. Note: Customers are responsible for managing API tokens and permissions for their own integrations. Source

Use Cases & Success Stories

Who can benefit from using Hygraph for streaming platforms?

Developers, content creators, product managers, and marketing professionals at enterprises or high-growth companies can benefit from Hygraph. It is suitable for industries such as media, eCommerce, SaaS, and any organization needing to manage and deliver digital content at scale. Note: Teams requiring highly specialized streaming features (e.g., live streaming, DRM) may need to integrate additional services. Source

Can you share examples of companies using Hygraph for content delivery?

Yes. Notable customers include Samsung (improved customer engagement by 15%), Komax (3x faster time to market), AutoWeb (20% increase in website monetization), and Voi (scaled multilingual content across 12 countries and 10 languages). These case studies demonstrate Hygraph's effectiveness for large-scale content delivery. Note: Results may vary based on implementation and use case. Source

Pain Points & Limitations

What are common challenges Hygraph helps solve for streaming platforms?

Hygraph addresses challenges such as integrating multiple APIs, reducing developer dependency for content updates, managing content consistency across channels, and streamlining workflows. It also helps modernize legacy tech stacks and supports rapid schema evolution. Note: For highly specialized streaming requirements (e.g., live video, DRM), additional services may be needed. Source, Documentation

What limitations should I be aware of when using Hygraph for streaming platforms?

Hygraph does not handle video encoding, DRM, or direct CDN delivery—these must be managed by integrated services like Cloudinary or other video platforms. API rate limits, authentication, and third-party service constraints also apply. For advanced streaming features (e.g., live streaming, adaptive bitrate), you will need to integrate additional specialized solutions. Source

Technical Documentation & Support

Where can I find technical documentation for building with Hygraph?

Comprehensive technical documentation is available at hygraph.com/docs, including API references, schema guides, integration instructions, and AI feature documentation. There are also dedicated guides for integrating with Cloudinary, OMDb, and other platforms. Note: For legacy projects, Hygraph Classic documentation is also available. Source

LLM optimization

When was this page last updated?

This page wast last updated on 12/12/2025 .

Watch replay now

How to build a streaming platform like Netflix

We will show you how to easily build a streaming platform and bring different API pieces together with Hygraph.
Mdu Sibisi

Last updated by Mdu 

Jan 21, 2026

Originally written by Mdu

Mobile image

'While' Netflix still owns the biggest piece of the video-on-demand and video streaming market, services such as Amazon Prime are breathing down its neck. What if you want to enter the fray? After all, there is a market for special interest and niche content streaming.

You may not have the infrastructure of Disney+ or Hulu, but thanks to advancements in cloud computing, you don't necessarily need it. All you need to do is leverage the right tools.

The streaming platform project you have in mind will most likely require you to use a plethora of APIs and draw from a collection of disparate sources. The challenge is making these different pieces fit and work together. That’s where Hygraph enters the chat.

Hygraph is a centralized content platform that allows you to sort, unify, structure, and dispense data to and from multiple sources and endpoints. You can use it as a foundation to build or federate content for scalable and agile ecommerce, for inventory and catalog management, and distributing structured content.

One use case where these features really shine is a video streaming platform, as you'll see in the following tutorial. After all, the best way to understand what a tool can do is by using it.

#Building your video streaming platform

The application in this tutorial uses Next.js as the frontend framework, but you should be able to transfer some of the principles to your preferred framework.

This tutorial uses Cloudinary to host your movies.

Since metadata is a very important feature of streaming services, you need to find a source you can use to dynamically build descriptions for your videos. This guide uses OMDb.

The application initiates queries through GraphQL. Hygraph acts as the backend and connects to Cloudinary and OMDb using its remote sources feature.

Editor's Note

You can find the code for this project in its GitHub repo

Video Stream Service Rough Architecture Diagram

Configure Hygraph

Sign up for Hygraph or log into your account if you already have one. On your Hygraph dashboard, click Add project.

Add a project in Hygraph

Fill in the project name and description, select your region, and click Add projectagain.

New Project Description

Click the Set up your schema widget on the welcome screen. Alternatively, you can select the Schema menu item from the left panel.

On the new panel that appears, click + Add next to Models.

Add a model for your data

Fill out the form that pops up as follows:

  • Display name: Movie
  • API ID: Movie
  • Plural API ID: Movies
  • Description: Video Streaming Content

Click Add model. Add a new model for videos

Now that you've created your streaming content model, you can add the necessary fields to it. There are many fields you can pull from OMDb, but this tutorial keeps it simple and only uses four. You will find a panel on the left side of the window with a list of fields. Add the following to your schema:

  • Title: A single-line text field to store the video title. This will be used as an ID to fetch data from OMDb too. Make sure to use this as a title field.
  • Year: A number field with the year when the movie/episode was released.

The entire process is similar to adding a model, though you do get additional options such as validations and initial/default values. Keep everything simple for now. All you need to do is add a name and make sure the Use as Title Field checkbox is selected for the Title and unselected for the rest of the fields.

Add fields

Click Content from the sidebar, then click the Movie model under Default Views.

Upload videos to Cloudinary

As mentioned earlier, this tutorial uses Cloudinary as the video library, so sign up for Cloudinary if you don't already have an account.

After logging in, click Media Library from the sidebar, then select Folders from the top menu bar. Click the Create A Folder icon underneath the navigation panel.

Name your folder Movies and click Save.

Create Folder

Open the new folder, and click Upload to upload your video.

Upload content

In the screen that appears, expand the Advanced option and enter a Public ID. It’s a good idea to use the title of the movie/video you’re working with. Make a note of the Public ID, as you'll need it to retrieve the video later.

You can also attach tags to the video, which you can use for grouping later on.

Next, click Browse under the My Files tab.

Upload a video

Select a movie or a clip from your local system; depending on its size, it may take a few moments to upload. Cloudinary will inform you of a successful upload with a popup notification on your screen. Click the notification to refresh your list of assets and see the video. Do this for every video you want to add to your streaming service’s movie list.

Set up your frontend

This tutorial uses Next.js as your framework with Tailwind CSS.

Open a command line terminal of your choice (Command Prompt, PowerShell, etc.). Set the directory to the one you use for your programming projects, eg. Documents\Programming Projects\.

Enter and run the following command:

npx create-next-app

You'll be asked to name your project. You can call it hygraph-video-streaming or anything else you think is appropriate.

Select No when prompted if you'd like to use TypeScript and ESLint (respectively).

Select No when asked if you want to use the 'src/' directory, and No when asked if you want to use the experimental 'app/' directory.

Use Next/* as your import alias.

NPX Create-Next-App

Change the directory to the newly created project folder:

cd hygraph-video-streaming

Install Tailwind CSS with its dependencies using the following command:

npm install -D tailwindcss postcss autoprefixer

Initialize Tailwind:

npx tailwindcss init -p

This generates the files tailwind.cofig.jsand postcss.config.js. They allow you to configure your project's themes, fonts, color schemes, plugins, and so on.

Open the tailwind.cofig.js in a code editor such as VS Code. You need to tell Tailwind where it can find all your project's templates, components, and plugins, so add the following code to the content list:

"./pages/**/*.{js,ts,jsx,tsx}",
"./components/**/*.{js,ts,jsx,tsx}",

Your tailwind.cofig.js should now look like this, as seen in this tutorial’s repository.

Next, navigate to the styles folder and open the globals.css file. Replace its contents with the following directives:

@tailwind base;
@tailwind components;
@tailwind utilities;

This allows you to access Tailwind's CSS classes from all your components.

Next, create a simple navigation bar. Create a folder named components in your project's root folder. Change the directory to it and create a new file called navbar.jsx.

Add the following code to it:

export default function NavBar() {
return (
<nav
className={
"flex justify-between items-center p-2 px-4 border-b-4 border-zinc-500"
}
>
<h1 className={"text-orange-700 font-bold text-2xl"}>
Horoma Video Streaming
</h1>
</nav>
);
}

Now, you must add your component to the main page. Open the pages/_app.js file and replace it with the following code:

import 'Next/styles/globals.css';
import NavBar from "Next/components/NavBar";
export default function App({ Component, pageProps }) {
return (
<main className={"max-w-[990px] mx-auto py-4"}>
<NavBar />
<Component {...pageProps} />
</main>
);
}

Navigate to the pages/index.js file and open it. Replace all its contents with the following code:

export default function Home() {
}

Editor's Note

You'll add more code to it later.

Next, return to your command line terminal and run the following command to launch your project:

npm run dev

Open your web browser and navigate to http://localhost:3000. If you've performed all the preceding steps correctly, your page should look this:

Initial video streaming page

This is the foundation of your video streaming website.

Now, it’s time to add some necessary functions and behaviors. Go back to your terminal and press Ctrl + C to terminate the batch job (ie, undeploy the application). Answer yes (Y) when asked to confirm.

Fetch the OMDb API key

Navigate to OMDb's API key page. Select the radio button labeled FREE, and new fields should appear on the form. Fill in the form with all the necessary details and then click Submit.

OMDB Generate API Key

OMDb sends the generated API key along with a link to activate the email address you provided. You'll use the key to query your metadata later, so make sure to note the address attached to your API Key and activate it using the link OMDb sent you.

Add OMDB as a Remote Source in Hygraph

On the Schema page of your Hygraph dashboard, click Add next to Remote Sources to add OMDb’s REST API as a remote source. Fill out the Create Remote Source form as follows:

  • Display name: OMDb
  • Prefix: OMDb
  • Type: REST
  • Base URL: http://www.omdbapi.com/?i=tt3896198&apikey=[YourAPIKEY]

You can leave the Description field blank, but make sure to add your API Key to the Base URL. Finally, click Add.

Add Remote Resource

Open the MOVIE model page and add a new REST field from the sidebar. Fill out the form as follows:

  • Display name: OMDB Meta Data
  • API ID: omdbMD
  • Remote source: OMDb
  • Method: GET
  • Return type: JSON
  • Path: &t={{doc.title}}&{{doc.year}}

Click Add.

Add Field

Configure Hygraph and Cloudinary authentication

Since Hygraph features a direct integration for Cloudinary, you don't have to set up an additional remote source. Simply navigate to the Hygraph Cloudinary installation page then click on Install Cloudinary for Hygraph.

Install Cloudinary for Hygraph

On the next screen, you must choose on which project and environment you'd like to install the Cloudinary app. Select Video Streaming for the project name and Master Environment for the environment, then click Install app.

App installation configuration

On the app permission authorization screen, click Authorize app**.

App Authorization Screen

Cloudinary will then direct you to the configuration screen where you must input your Cloudinary cloud name and API key. Both can be found using the Cloudinary console. Navigate to the Cloudinary dashboard and click Programmable Media (<o>) in the sidebar:

Programmable media

This screen allows you to see all your cloud credentials.

Cloud name

Copy the code in the Cloud Name and API Key widgets, paste it into the corresponding fields in the Hygraph Cloudinary configuration screen, and click Save.

Cloudinary configuration screen

Next, you must add the Cloudinary asset to your schema so you can access your video library. While you're still on the Hygraph dashboard, click on Schema on the left panel then select Movie from the Schema panel. Scroll through the list of fields on the far-right panel until you find the Cloudinary Asset entry. Single-click on it.

Add a Cloudinary asset

In the field configuration screen that launches, set the Display Name as Cloudinary Video Library. Leave everything else as is and click on Add.

Cloudinary asset field

Add content to Hygraph

To add content to Hygraph, click Content in the sidebar, select Movie under DEFAULT VIEWS, and then click Add entry.

Add entry

Add your movie's public ID and the year of its release in the corresponding fields.

Please note that if your movie’s title contains special characters such as colons (:), semi-colons (;), or single inverted commas ('), you should replace them with URL encoding references. For instance, write Child’s Play as Child%27s Play. Alternatively, you can encode the title in your JavaScript/React code.

Next, click Add from Cloudinary.

Content screen

In the Cloudinary asset picker screen that is launched, select the corresponding movie from your video library and then click Add & close:

Cloudinary asset picker

Click Save and Publish and, when prompted, confirm your selection.

Publish your content

Follow the steps above for every movie in your library until you've populated your content list.

Content list

Secure access to the Hygraph content API

Since the Hygraph Content API rejects unauthenticated requests by default, you must create a permanent auth token on the Project Settings page to securely connect to it.

In the Permanent Auth Tokens section of the Project Settings page, click Add Token.

Add token

Enter a token name such as Movie Token and click Add & configure permissions.

Add and configure permissions

On the token permissions page, copy and save the token value for later use, then click Add permission.

Add permission

In the Add Permissions pop-up, select Movie from the Model dropdown list. Select the Read, Update, and Publish permissions checkboxes. Leave everything else as is and click Add.

Add permission for movie model

Click API Access under Endpoints in the Settings pane. Copy and save the content API endpoint to use in your Next.js application.

Endpoints options in Settings

Using GraphQL to fetch the metadata

Create a .env.local in the root of your project directory, and add the following values to it:

HYGRAPH_URL=<CONTENT_API_ENDPOINT_FROM_HYRAPH>
API_TOKEN=<PERMANENT_AUTH_TOKEN_FROM_HYGRAPH>

Replace the tags with the actual values you copied and saved earlier on.

Now you need to install the GraphQL client's dependencies. Execute the following command:

npm i graphql graphql-request

Create a new file named graphql.js at the project root. Enter the following code to initialize it:

import { GraphQLClient } from "graphql-request";
const hygraph = new GraphQLClient(process.env.HYGRAPH_URL);
hygraph.setHeader("Authorization", `Bearer ${process.env.API_TOKEN}`);
export default hygraph;

Add the following code below the Home function:

export async function getStaticProps() {
const movieQuery = gql`
{
movies {
omdbMD
cloudinaryVideoLibrary
}
}
`;
const { movies } = await hygraph.request(movieQuery);
return {
props: {
movies
},
};
}

This builds the GraphQL query and executes and returns the results as a set of properties (movies), which will be passed to the Home function.

Add the necessary fields to the Home function by looping through the static properties (Query Results) and adding a video player for each loop. You can use the results to display the omdbMD property to display the video's metadata, with fields like year, plot, genre, and so on.

import Head from "next/head";
import React, { StrictMode } from 'react';
/*
* Add necessary hygraph and GraphQL imports
*/
import hygraph from "Next/graphql";
import { gql } from "graphql-request";
export default function Home({ movies }) {
return (
<>
<Head>
<title>Video Streaming with Hygraph</title>
</Head>
{movies.map((movie, index) => (
<div className="text-sm" key={index}>
<video width="320" height="240" controls>
<source src= {movie.cloudinaryVideoLibrary.url} type="video/mp4"/>
Your browser does not support the video tag.
</video>
<p>Movie Title: {movie.omdbMD.Title}</p>
<p>Year: {movie.omdbMD.Year}</p>
<p>
Plot Summary: {movie.omdbMD.Plot}
</p>
</div>
))}
</>
);
}

The complete index file should resemble the following file.

Your video streaming website is functionally ready! You can now personalize the design and add more components as you see fit. You can use the OMDb metadata to generate thumbnails for your movies, too. Once it looks presentable, you can deploy and publish it.

Final result

#Conclusion

This tutorial showed you how to use Hygraph to create a streaming video platform.

It goes without saying that streaming platforms have complex architecture; they can take months to build. But with Hygraph, what would take you a month can take you a week or a day. Its low-code approach decreases manual coding and debugging, and it gives you a central point for altering or keeping track of your software stack, which ultimately grants your products greater interoperability and flexibility.

Contact Hygraph for an enterprise demo today.

Blog Author

Mdu Sibisi

Mdu Sibisi

Technical writer

Mdu Sibisi is an Oracle-certified software developer and blogger with over ten years of experience, primarily in object-orientated languages. He's been writing about tech for eight years.

Share with others

Sign up for our newsletter!

Be the first to know about releases and industry news and insights.