How to Run Netflix on the Raspberry Pi

In this tutorial, we will be showing you how to get Netflix up and running on your Raspberry Pi.

Raspberry Pi Netflix

Netflix has been one of the hardest things to get working on the Raspberry Pi thanks to its reliance on a DRM (Digital Rights Management) that tends only to be distributed for closed platforms.

With this guide, we will be making use of a plugin for the popular media center Kodi. We found this plugin combined with Kodi is one of the best ways of getting Netflix to run on your Raspberry Pi.

Alternatively you can run Netflix within the Chromium web browser, all you need to do is install the Widevine DRM package to your Raspberry Pi.

Getting Netflix to run on your Raspberry Pi requires a few different steps as the software will need to obtain a version of the DRM library so that you can stream videos.

You can make use of operating systems that package Kodi, such as OSMC, as these same steps should work as long as you have terminal access.

Throughout this tutorial we will be making use of the Raspbian operating system.

Equipment List

Here is a list of all the equipment that we recommend you have for completing this Raspberry Pi Netflix tutorial.

Recommended

Raspberry Pi 2, 3 or 4

Micro SD Card 16GB+ recommended

Power Supply

USB Keyboard

USB Mouse

HDMI Cable

Ethernet Cord orΒ WiFi dongle (The Pi 3 and 4 has WiFi inbuilt)

Optional

Raspberry Pi Case

Preparing for Netflix on the Raspberry Pi

1. Before we can get Netflix working on the Raspberry Pi, we will have to do a few things.

The first thing we should do is update all the packages already installed on your Pi.

Doing this ensures that any out of date packages won’t end up breaking the tutorial.

To update all your packages, go ahead, and run the following two commands.

sudo apt update
sudo apt upgrade

2. Once the update process has completed, we can now go ahead and install Kodi to the Raspberry Pi.

The reason that we are using Kodi is that it is currently the most reliable way of accessing Netflix on the Raspberry Pi.

Web browser methods for accessing Netflix appear to get broken often and can be painful to set up and maintain. Kodi is also pretty well optimized for the Raspberry Pi.

If you are running a distribution like OSMC, you can skip to the next step of this guide as you will have Kodi installed already.

To install Kodi and all the packages we require, run the following command.

sudo apt install kodi kodi-peripheral-joystick kodi-pvr-iptvsimple kodi-inputstream-adaptive kodi-inputstream-rtmp

You will see that we are installing several other packages alongside Kodi. These extra packages are required for the Kodi Netflix plugin to function correctly on our Raspberry Pi.

3. We need to now install some extra packages to go alongside our Kodi installation.

These packages contain the Python package manager “pip” as well as some extras that are needed for us to run the Kodi Netflix Plugin.

Run the following command to install the last few packages we require.

sudo apt install build-essential python-pip python-dev libffi-dev libssl-dev libnss3

4. Next, we will install the Python packages that are required by the Netflix plugin for Kodi.

We can install these Python packages to our Pi by making use of the pip package manager.

Use the follows two commands below to install all the required Python packages.

sudo pip install setuptools wheel
sudo pip install pycryptodomex win_inet_pton

We split this in to two different commands as pycryptodomex requires the setuptools and wheel packages to already be installed.

5. With all the required packages now installed, there is one last thing we need to do.

We need to download the CastagnaIT repository. This repository will allow us to install the Netflix plugin for Kodi and have it automatically updated.

We can download the latest version of the repository directly from the project’s GitHub by running the following command.

wget https://github.com/castagnait/repository.castagnait/raw/master/repository.castagnait-1.0.1.zip

Once the repository plugin has finished downloading, you can proceed with getting Netflix working on your Raspberry Pi.

Adding the Repository for Netflix on Kodi

In this section, we will be showing you how to make use of all the packages we just installed to run Netflix on your Raspberry Pi.

1. The first step is to launch Kodi on your Raspberry Pi.

You can do this by clicking the start menu icon in the top left-hand corner, hovering over “Sound & Video” then clicking “Kodi“.

2. To get started, we will need to change Kodi’s settings to allow unknown sources to be installed. If we don’t change this option, we won’t be able to install the Netflix plugin.

To do this, we need to open up the settings page within Kodi. If you are using the default theme, the button to get to this page is the cog symbol at the top of the sidebar.

Go to Kodi Settings Cog

3. Within this menu, you need to click “System” in the bottom right-hand corner of the screen.

Go to Kodi System Settings

4. Now that we are in the system settings page we need to go and click “Add-ons” in the side bar.

System Settings - Add-on settings

5. Next, click the toggle for the “Unknown sources” option.

You will get a few warning messages. It is safe to ignore these warnings as long as you are only installing plugins from reputable sources like we are.

Changing this option will allow us to install the repository that we downloaded to our Raspberry Pi in the previous section.

Add-on Settings Allow Unknown Sources

Once you have enabled “Unknown Sources“, press the ESC key to return to the main settings page.

6. Now that we are back on the main settings page, go ahead and click the “Add-ons” menu button.

This button will take us to the Add-ons settings page and allow us to install the CastagnaIT repository from which we can download the Netflix Plugin for our Raspberry Pi.

Go to Add-on Settings

7. Once in the “Add-ons” settings page, click the “Install from zip file” option to continue.

Install add-on from zip file

8. With the “Install from zip file” dialog now open, click “Home folder” as that is where we downloaded the repository to.

Select Home Folder

9. Scroll to the bottom of the next dialog, then double-click the file called “repository.castagnait-1.0.1.zip” to install the repository.

Install CastagnaIT Repository

Now that we have set up the repository, we can proceed to install the Netflix Plugin to our Raspberry Pi and also set up anything else we may need.

Installing the Netflix Plugin to the Pi

1. With the required repository now installed to our Raspberry Pi, we can go ahead and install the Netflix plugin through Kodi’s interface.

Click the “Install from repository” option in the “Add-ons” page to proceed.

Install From Repository

2. In this menu, look for the “CastagnaIT Repository” option and select it to open the repository.

Load CastagnaIT Repository

3. Now that we are within the CastagnaIT repository, we can now locate and install the Netflix plugin.

To find the Netflix plugin, we need to open the “Video add-ons” category.

Video Add-ons Category

4. Open the only entry on this page, the “Netflix” plugin.

We will be able to start the installation process on the next screen.

Select Netflix Add-on to install

5. On this screen, click the “Install” button in the bottom right-hand corner.

Install Netflix Add-on

6. Before the installation begins, you will be asked if you are okay with installing some additional plugins.

As the Netflix plugin relies on all of these to function, the only real option is to select “Ok“.

Install Additional Plugins

This process can take a little bit of time as it will need to install these additional add-ons that the Netflix plugin relies on.

7. With the Netflix plugin now installed to the Raspberry Pi, there are a couple more things that we will need to do before we are ready to open it.

To start with, we need to go ahead and enable the “Adaptive Inputstream” plugin.

We can enable this plugin by first going into the “My Add-ons” page.

Go To My add-ons

8. Now that we are in the “My Add-ons” page, we need to go into the “VideoPlayer Inputstream” category.

VideoPlayer InputStream Add-ons

9. On this screen, go ahead and open up the “InputStream Adaptive” plugin.

This plugin is what the Netflix add-on relies on for streaming video data from the Netflix servers to your Raspberry Pi.

Select InputStream Adaptive

10. On this screen, click the “Enable” button to activate the InputStream Adaptive plugin.

 Enable InputStream Adaptive

With the InputStream Adaptive plugin now enabled, we can finally go ahead and run the Netflix plugin. Return to the main menu for the next section.

Running Netflix on the Raspberry Pi

1. Back on the main menu, click “Add-ons” (1.) in the sidebar.

Once the “Add-ons” page is open, go ahead and click “Netflix” (2.) to open up the Netflix add-on.

Launch Netflix on the Raspberry Pi

2. The first time you open the Kodi Netflix add-on you will be required to choose a login method.

The easiest method is the “E-Mail/Password“, this method allows you to enter your email and password to log in.

However, if you have any issues you will need to follow the steps to generating a authentication key for Netflix.

Select Login Method

3. Now within the Netflix add-on, go ahead and pick a show that you want to watch.

The first time you watch a show, you will have to run through the process of installing the DRM modules the plugin requires to work.

Without these DRM modules the plugin will not be able to stream the video content from Netflix.

These modules are the same reason web browsers on the Raspberry Pi struggle to deal with Netflix.

4. When notified that Widevine CDM is required, click the “Install Widevine” button to begin the installation process.

Install Widevine CDM

5. You will then see another notification stating that you must have at least 3.1GB of free disk space. The reason for this is that the installer has to obtain Widevine CDM from a ChromeOS image.

There are a few legal reasons why we can’t just download the Widevine CDM directly.

Click the “Yes” button to proceed with the installation process.

Download ChromeOS for Widevine CDM

6. Before your Raspberry Pi can start the process of obtaining the required files to use Netflix, you will need to first agree to a EULA from Google.

Click “I Accept” to agree to the EULA and proceed with the download process.

Accept ChromeOS and Widevine EULA

7. You will now see a message stating that the plugin will need to make use of tools with root permissions to be able to extract the required file from the ChromeOS image.

To proceed with this process, click the “I Accept” button.

 Running with root perms

8. Now, wait for the download and extraction process to finish. This process can take some time, so now is a good time to grab a cup of coffee.

If it ever appears that the progress bar is stuck, please give the program more time to run, as it has to extract a single file from a large image.

Download and Extraction process of ChromeOS

9. Once the Widevine process has completed, you will now be able to watch any videos that you want straight from Netflix to your Raspberry Pi.

Below you can see us running the Netflix exclusive TV show, “The Crown” on our Raspberry Pi.
Netflix Successfully Running on Kodi

Using an Authentication Key for Logging into Netflix

It you are having trouble logging into the Netflix addon by using your email and password, there is an alternative solution that we will delve into now.

You will need to have a device with a desktop interface and access to a web browser for these steps.

You can run this script on a different device to your Raspberry Pi as we can copy the key over.

Generating the Netflix Authentication Key on Windows

For starters, we will show you how to retrieve this key when using a Linux system.

To use this method, you will need to be using the Chrome web browser as that’s the only browser the software supports.

This software is written by the Netflix for Kodi team. You can check out the source code of this tool by going to the NFAuthenticationKey repository for Windows.

1. Before we proceed, you need to download the NFAuthentication Key program that contains the program we need from our CDN.

You will find the download link on this page under the “For Windows” header.

After this download, you should have a zip file called “NFAuthenticationKey_Windows_1.0.2.0.zip” on your device.

2. Extract the folder from within the downloaded archive.

You should find an executable within these folders called “NFAuthenticationKey.exe“.

Double-click this file to run the program on your device.

3. This program will instruct you on how to use it to generate the required Netflix authentication key.

Before proceeding, you will need to have all windows of Chrome closed.

Once closed, click the “Start” button.

Windows Generate Netflix Authentication Key

4. Clicking this button will open the Chrome web browser on your device.

Wait till it automatically redirects you to the Netflix login screen. If, for some reason, it doesn’t redirect you, click the “Cancel” button and start again.

Do not manually go to the Netflix website. Manually changing the website will stop the application from being able to retrieve the information it needs.

5. After logging in, the application will quit out of Chrome once it has the data it needs.

It will generate a file called “NFAuthentication.key“. You will need to copy the contents of this file to your Kodi device.

Within the program, you should also see a message indicating a four-digit PIN (Eg. 1234). You need to remember this PIN to be able to use your authentication file.

Using Linux to generate your Netflix Auth Key

In this section, we will show you how to get the authentication key that you need to run Netflix on Kodi.

For this to work, you will need to be running a form of Linux where you have access to a Chrome-based web browser.

1. First, make sure you have a Chromium based web browser installed.

On an apt-based operating system, you can run a command like we have below to install Chromium. We also need to install the unzip package to

On Raspberry Pi OS, the required web-browser comes pre-installed.

sudo apt install chromium-browser

2. Once you have Chromium installed, there are a few other things we need to install.

We need to install Python, its package manager pip, and a few other addons.

sudo apt install build-essential python3-pip python3-dev libffi-dev libssl-dev libnss3

3. Finally, we need to install the two Python packages that we require to run the script to generate the authentication key for Netflix.

pip3 install pycryptodomex
pip3 install websocket-client

4. Finally, we can download the Python script we need directly from the CastagnaIT repository.

We can download this file to the current directory by using wget within the terminal.

wget https://raw.githubusercontent.com/CastagnaIT/NFAuthenticationKey/linux/NFAuthenticationKey.py

5. With the script downloaded, let us now go ahead and run the Python script.

The script will automatically try to detect where Chrome is installed on your device and run it.

python3 NFAuthenticationKey.py

6. Follow the prompts now displayed within your terminal to generate the required authentication file.

You will be required to login to Netflix to generate the code.

7. Once you have followed the prompts, you should end up with a file called “NFAuthentication.key” within the same directory as the script.

If you have followed the guide as we have written it, you can use the ls command to find it like below.

ls -l

8. If you have generated this key on a different device to your Raspberry Pi, we will need to copy it over.

To get the contents of the file, you can use nano or the cat command like below.

cat NFAuthentication.key

Logging in to Netflix using the Key in Kodi

Before we proceed, make sure that you have the authentication key copied over to your Kodi device (In our case, this is a Raspberry Pi).

1. The easiest way to do this is to open the file up with a text editor and copy it over SSH to a new file on your device running Kodi.

For example, we can open up a new file to copy the contents over to our Pi with the following command.

nano NFAuthentication.key

2. Once the key has been copied across to the file, save the file by pressing CTRL + X, then Y, followed by the ENTER key.

3. With the Netflix authentication key now in place, launch Kodi on your device.

4. Navigate to the Netflix addon in Kodi and open it.

You should be greeted by the following message asking you to select “E-Mail/Password” or “Authentication key” for logging in.

To proceed, select the “Authentication key” option.

Choose Login Option for Auth Key

5. In the dialog that pops up, you will need to navigate to where you saved your Netflix Authentication key.

In our case, we saved it to our home directory, so it is relatively easy to find.

Once found, select it and press the ENTER key to proceed.

Selecting the NFAuthentication key

6. Before the Netflix Kodi addon can use your authentication key, you will need to enter the generated PIN.

Use the interface displayed on the screen to type in your PIN. Once done, either clickDone” or press the ENTER key.

Enter the PIN Code for Netflix Auth key

7. Finally, you will need to enter the password for your account.

Use the provided dialog to enter your password or use the keyboard.

Please enter Netflix account password

8. You should now be successfully logged in to the Netflix addon for Kodi.

These steps should work for both your Raspberry Pi and any other device Kodi works on.

Hopefully at this point you will now successfully be able to watch Netflix on your Raspberry Pi.

If you have ran into any issues with running Netflix within Kodi, then feel free to drop a comment below.

54 Comments

  1. Avatar for Dominik
    Dominik on

    Hi,

    I had an issue starting Kodi after the install. Black screen popped-up, than disapeared and then nothing.

    Entering the following line into config.txt helped:

    dtoverlay=vc4-fkms-v3d,cma-265

    Cheers,

    Dominik

  2. Avatar for Richard
    Richard on

    Worked like a charm first time. Thank you for the clear and easy to follow walk through.

  3. Avatar for Paul
    Paul on

    I seem to be stuck at the step 7 Widevine installation. The file has downloaded, but it has been about an hour and there are still two concentric circles in the middle of the screen, moving counter to each other. Any thoughts on how long I should wait, and what I should do to fix the problem. The rest of the tutorial worked great. Really appreciate your efforts. Just hope to be able to complete the process.

    Thanks in advance.

    1. Avatar for Paul
      Paul on

      Ok did a hard reboot, and KODI comes up fine, and the Netflix addon is working. Don’t know how, or why, but the system now seems to be working. Sorry to have wasted your time. Thanks again for all your help.

    2. Avatar for Emmet
      Emmet on
      Editor

      Hi Paul,

      The widevine installation part can take ome time as the software needs to download a ChromeOS image and extract certain files for it. So depending on your network speed and Raspberry Pi this can take some time.

      I can’t remember how long it took when I tested the tutorial but from memory it wasn’t the fastest process.

      Cheers,
      Emmet

  4. Avatar for Atolox
    Atolox on

    Hi, I managed to go through all the steps exept the Windevine part, like Greg I’ve got the “‘fdisk’ or ‘parted’ command needs to exist on system to extract Widevine CDM”.

    I’m running on a fresh and updated Raspbian Lite, and fdisk and parted are already installed.

    The solution is to launch Kodi with root access (“sudo kodi”).

    Thanks a lot for your tutorial, I looked to run Netflix on my Raspberry for months !

  5. Avatar for Greg
    Greg on

    “”fdisk” or “parted” command needs to exist on system to extract the Widevine CDM”
    Hmmm… I’m on Kano….?

    1. Avatar for Emmet
      Emmet on
      Editor

      Hi Greg,

      This tutorial is based around the official Raspbian operating system.

      However you should still be able to do this on Kano by installing those packages with the following command.

      sudo apt install fdisk parted

      Cheers,
      Emmet

  6. Avatar for flinnja
    flinnja on

    This worked to get everything up and running on my small touch screen display, but when I attach a second monitor (tv via hdmi) it only displays on the touch screen, and the display preferences dont show any options for output switching (unlike the screenshots on Kodi’s wiki)

    1. Avatar for Emi Carlevaro
      Emi Carlevaro on

      Working perfectly on Raspbian 10 (10.3) with kernel 4.19.97-v7+, Kodi 18.6 (2020-03-18).

      Kodi asked me to download Chrome OS (yes, the full ~3GB ISO) and then it automagically decompressed the required component.

      Thank you and Kodi developers!

  7. Avatar for Matt Shaw
    Matt Shaw on

    I am yet to try this, will do soon……on my new Pi4
    Just a quick question, will this work on a standard ubuntu linux distro????
    I dont see why not……

    1. Avatar for Emmet
      Emmet on
      Editor

      Hi Matt,

      These steps should work fine on any operating system that provides the needed packages.

      While we wrote the guide for a Raspberry Pi running Raspbian there is nothing specific in that guide that is only for the device or OS.

      Cheers,
      Emmet

  8. Avatar for Cristian Alexander
    Cristian Alexander on

    My raspi3b+ power was intrerupted durin 𝒔𝒖𝒅𝒐 π’‘π’Šπ’‘ π’Šπ’π’”π’•π’‚π’π’ 𝒔𝒆𝒕𝒖𝒑𝒕𝒐𝒐𝒍𝒔 π’˜π’‰π’†π’†π’ π’‘π’šπ’„π’“π’šπ’‘π’•π’π’…π’π’Žπ’†π’™. After it booted i tryed this line again and it says the requirements are already satisfied.. Other than that everything worked fine but when i click NetFlix at Running Netflix on the Raspberry Pi 1) i get a dialog box wich says “The background services may not yet be avalible if you just started Kodi/the addon. In this case, try again in a moment.”. Any idea what’s wrong or what to do?

    1. Avatar for Emmet
      Emmet on
      Editor

      Hi Cristian,

      THe Netflix service can take a couple of minutes before it starts up when Kodi launches. Wait a bit of time then try again.

      Cheers,
      Emmet

  9. Avatar for cris
    cris on

    awesome tutorial. Works like a charm when nothing else did. Thank you

    1. Avatar for vagos21
      vagos21 on

      When previous attempts failed, following this guide on pi3 with the new buster and Kodi Leia, everything worked perfectly. Thank you!!

  10. Avatar for Kraker
    Kraker on

    Hi, i did everything like here in the manual. I have a raspeberry pi 4 4gb. Everything is working like a charm but i have no audio. Can somebody help me please.

    Greets kraker

    1. Avatar for Chrisnogood
      Chrisnogood on

      Same problem for me, but pcoats comment (January 19) solved it here:

      My TV has no speaker, so I had to put audio in analog in the Kodi audio settings

  11. Avatar for Al
    Al on

    Spot on! Thanks!

    After a few frustrating days of following INCOMPLETE YouTube videos this tutorial got me up an running.

    I am running a Kodi over Raspbian on a Raspberry Pi 3 B Plus. I used VNC Viewer to cut and paste your UNIX commands into a terminal window. I all worked like a charm.

    The only minor problem was when I went to watch my first movie. I got an error that kodi-inputstream-adaptive was not installed and it would not play. I selected another movie that required the install of WideVine CDM. I installed that and the 2nd movie played just fine. I returned to the first movie and it then also played fine. I’m guessing that Widevine CDM was also required for that but the NetFlix addon displayed an incorrect error message. Nonetheless, it’s all good now.

    I’m finding that not much is successful with Kodi unless you get into the UNIX command line interface to make it happen.

    Thanks again for sweating the details and keeping this up to date based on feedback. Much appreciated!

  12. Avatar for Alan Oike
    Alan Oike on

    Worked an absolute treat. Thanks so much, great instructions, and just bloody worked. Noisy old laptop replaced by silent pi. Marvellous.

  13. Avatar for Evan S Brown
    Evan S Brown on

    The version I downloaded installed “Inputstream Helper.” Inputsstream.adaptive was not in the `repository. I get an error message saying “inputstream.adaptive is missing on your Kodi install. This add-on is required to play this content.”

    This is yet another fail in my attempt to load hulu or netflix on my RP4. I must have tried a dozen different approaches. About ready to take a sledgehammer to it.

    Is there a way to install a Hulu add-on. If not, why not?

    1. Avatar for Evan S Brown
      Evan S Brown on

      Following up … I was able to get the add-on by using the command “sudo apt install inputstream.adaptive”

      It then required me to download Widevine, which I was able to do through KODI. and finally … after 2 weeks of trying … IT WORKED!!!!

      Thank you.

    2. Avatar for Emmet
      Emmet on
      Editor

      Hi Evan,

      May I ask what operating system you were trying to install this with?

      The required packages should be installed when we install kodi-inputstream-adaptive early in the guide, so just curious to see where we can improve this guide.

      Sadly as far as I know there is currently no Hulu addons available for Kodi, we will be sure to put out a guide once one becomes available.

      Cheers,
      Emmet

  14. Avatar for pcoats
    pcoats on

    Worked first shot on RPi 4B. Great step by step docs. Remember to change audio to analogue or HDMI and analogue in the KODI audio settings if you are using direct speakers instead of a TV.

  15. Avatar for Hugo van der Kooij
    Hugo van der Kooij on

    There is a tricky thing not metioned in the documentation.

    If kodi is started as user pi this instruction works rather well.

    But if you run kodi as another user, say user name kodi, then the sudo part of the installation process fails.

    The trick is I had to make sure the kodi user has the same right to execute sudo commands without being buggered for a password to work around this limitation.

    But beside this glitch this is a splendid document.

  16. Avatar for Guilherme Silberstein
    Guilherme Silberstein on

    Worked very nicely on Raspberry Pi 4. Superb graphics ! Thanks!

  17. Avatar for Steinar Vigdel Kolnes
    Steinar Vigdel Kolnes on

    AMAZING!
    Thanks a lot.
    It worked. Just make sure that voice is turned on, also for the analog output if speakers are not connected to the HDMI.

  18. Avatar for Ric
    Ric on

    Great tutorial.

    Installed on an RPI4 with Buster light.

    I needed to add “sudo apt install libnss3“, because of an error of missing files.

    Just to be sure, I gave it a reboot.

    Now running like a charm. πŸ™‚

    Used to work with Chromium, but this is much nicer.

  19. Avatar for Lenny
    Lenny on

    Thanks you so much. I’ve been looking for a good step-by-step tutorial on this. One minor thing, and I’m not a linux expert, but I think Step 2 in “Preparing for Netflix on the Raspberry Pi” is missing an install, as in:

    sudo apt install kodi kodi-peripheral-joystick kodi-pvr-iptvsimple kodi-inputstream-adaptive kodi-inputstream-rtmp

    At least that is the only way I could get it to work.

    1. Avatar for Gus
      Gus on
      Editor

      Hi Lenny, thanks for pointing this out! We have fixed it now.

  20. Avatar for Isaac
    Isaac on

    Great tutorial!

    Unfortunately, I I’m having this issue locating packages early in the installation steps:

    E: Unable to locate package kodi-peripheral-joystick
    E: Unable to locate package kodi-inputstream-adaptive
    E: Unable to locate package kodi-inputstream-rtmp

    1. Avatar for Emmet
      Emmet on
      Editor

      Hi Isaac,

      I see that you are making use of OSMC.

      Sorry, I should have split the install steps in the original tutorial, you don’t need to worry about installing the Kodi packages on OSMC as they should already exist.

      I have now corrected this in the tutorial by splitting the install steps into two.

      Let me know if you run into any more issues.

      Cheers,
      Emmet

Leave a Reply

Your email address will not be published. Required fields are marked *