whatisgithub

What is dial-reference?

netflix/dial-reference — explained in plain English

Analysis updated 2026-07-20 · repo last pushed 2023-07-11

254CAudience · developerComplexity · 4/5DormantSetup · moderate

In one sentence

Netflix's reference implementation of the DIAL protocol, which lets phones and tablets discover and launch apps on TVs. Includes a lightweight C server for TV devices, a C++ testing client, and Node.js spec validation tests.

Mindmap

mindmap
  root((repo))
    What it does
      Discovers TV devices
      Launches apps on TV
      Second-screen control
    Tech stack
      C server
      C++ test client
      Node.js tests
    Use cases
      Smart TV platforms
      Streaming sticks
      Set-top boxes
      Game consoles
    Audience
      Hardware makers
      TV platform teams
      Embedded developers
    Spec compliance
      DIAL 2.1 standard
      Automated validation

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a DIAL server into a smart TV or set-top box so mobile devices can launch apps on it.

USE CASE 2

Test a custom DIAL server implementation using the included C++ client tool.

USE CASE 3

Automatically validate a DIAL server against the 2.1 specification using Node.js tests.

USE CASE 4

Add second-screen launch support to a streaming stick or game console platform.

What is it built with?

CC++Node.js

How does it compare?

netflix/dial-referencepeng-zhihui/x-tracktorvalds/scrollwheel
Stars254268236
LanguageCCC
Last pushed2023-07-112021-09-082026-06-02
MaintenanceDormantDormantMaintained
Setup difficultymoderatehardhard
Complexity4/54/53/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires cross-compilation for embedded TV hardware and understanding of local network discovery protocols.

This repository is provided by Netflix but no specific license is mentioned in the explanation, so usage rights are unclear.

So what is it?

DIAL (Discovery And Launch) is an open-source protocol from Netflix that lets a phone, tablet, or other "second screen" device find and start apps on a TV or similar "first screen" device. The classic example is the YouTube cast button: you tap it on your phone, your TV wakes up and the YouTube app opens automatically. This repository contains Netflix's reference implementation, a working example of the server software that runs on a TV or set-top box, plus a client tool for testing it. At its core, the system works through simple network communication. The server runs quietly in the background on your TV device and announces itself on your local network. When a phone or tablet wants to launch an app, it searches for available devices, finds the TV, and sends a standard web-style request telling it which app to start. The server then handles launching that app on the big screen. The included client mimics this discovery and launch process so developers can verify their server implementation behaves correctly. This would be used by hardware manufacturers and software teams building smart TVs, streaming sticks, game consoles, or set-top boxes who want their devices to support this kind of second-screen launching. If you are building a TV platform and want apps like Netflix or YouTube to be launchable from a mobile device, you would implement the DIAL server on your hardware and use the provided testing client to confirm everything works as expected. The project is mostly written in C, meaning the server is designed to be lightweight and embedded directly into TV hardware rather than running as a heavy application. The testing client is a separate C++ program that runs on a developer's computer and communicates with the TV over the local network. The repository also includes newer Node.js-based tests for checking that a server meets the DIAL 2.1 specification, giving developers an automated way to validate their implementation against the standard.

Copy-paste prompts

Prompt 1
Help me understand the DIAL protocol from this Netflix reference repo, I need to implement a DIAL server on my embedded TV device. Walk me through how the server announces itself and handles launch requests.
Prompt 2
I'm building a DIAL server in C based on this Netflix reference. Help me trace the code flow from device discovery through app launch so I can adapt it for my hardware platform.
Prompt 3
Write a Node.js test script that validates my DIAL server implementation against the DIAL 2.1 spec, similar to the tests included in this repo. Cover device discovery and app launch endpoints.
Prompt 4
I have the DIAL reference server running on my TV device. Help me use the included C++ test client to verify discovery and launch work correctly over my local network.
Prompt 5
Compare the DIAL protocol from this repo to Google Cast, I want to understand the differences and whether I should implement DIAL, Cast, or both on my streaming device.

Frequently asked questions

What is dial-reference?

Netflix's reference implementation of the DIAL protocol, which lets phones and tablets discover and launch apps on TVs. Includes a lightweight C server for TV devices, a C++ testing client, and Node.js spec validation tests.

What language is dial-reference written in?

Mainly C. The stack also includes C, C++, Node.js.

Is dial-reference actively maintained?

Dormant — no commits in 2+ years (last push 2023-07-11).

What license does dial-reference use?

This repository is provided by Netflix but no specific license is mentioned in the explanation, so usage rights are unclear.

How hard is dial-reference to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is dial-reference for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.