LED YouTube Live Subscriber Counter – The RED Play Button

with No Comments

LED YouTube Live Subscriber Counter

Live Sub Count

This is a Live Sub Count. Go On. Enter Your Channel 😉

I made this custom little cool live sub count that is used on the chip below…


silver play button
YouTube gives you this at 100,000 Subscribers. Source: https://www.youtube.com/yt/creators/awards/
Gold play button
YouTube gives you this at 1,000,000 Subscribers. Source: https://www.youtube.com/yt/creators/awards/




LED YouTube Live Subscriber Counter Red Play Button


YouTube doesn’t give you this.


I’ve always been interested in my YouTube analytics. Looking at your subscriber count when you post your latest video and seeing how it performs is always exciting, but it’s a little tedious to refresh the analytics page often. So for my latest project (which I’ve wanted to do for a while), I’ve decided to make an LED YouTube Live Subscriber Counter display that just sits on my desk or office and lets me know how many subscribers I’ve got at any moment! I’ve decided to share the process so you can make one yourself! This was inspired by getting 100,000 YouTube subscribers, so I wanted to make myself a RED YouTube play button.

This is a fairly simple project. You need a few basic parts to get it working, and it’s a nice unique addition to show friends or others on YouTube. It combines lots of my passions and hobbies including YouTube, programming and 3D printing! I’ve had the large LED display for a while and its been sitting in a drawer, so I wanted to put it to good use. A display this nice should be put to good use, and what’s a better way to use it!?

How the LED Live Subscriber Counter works

The process is fairly simple. The system uses a small computer (the ESP8266 NodeMCU) to make a google API call every 10 seconds requesting the amount of subscribers for a given channel. (You can specify what channel in the code). YouTube responds with the count and then the LED display is updated with this count! Simple right!? If internet connection is lost or fails, it just keeps trying every 10 seconds.

Things you need:

  • An 80×8 LED display.
    • Also a ribbon cable used to connect to it.
    • Nice large display that’s eye catching.
    • Can also use any display you have lying around, but you’ll need to code that in yourself such as the LCD or a smaller LED matrix as shown below.

Steps to get your Live Subscriber Counter working

Download the code and the 2 relevant libraries

Download the Arduino code from here. Once it’s downloaded, be sure to download the JSON and ESP8266 libraries and install them. Easy instructions to install Arduino libraries can be found here.

  • For the JSON library, simply search “ArduinoJson” in the library manager (Sketch > Include Library > Manage Libraries) and install the latest library by Benoit Blanchon.
  • Installing the ESP8266 library is exactly the same, except one minor added step.

These Arduino libraries are needed to help with parsing (JSON, YouTube API response) and using the Wi-Fi board properly. Once it’s downloaded, select the NodeMCU 12E board and try to compile it and make sure there are no errors. Your LED YouTube Live Subscriber Counter should now be almost ready to go!

Put in Wi-Fi credentials, make sure it can connect

Change the Wi-Fi details in the Arduino file to the details that match your internet connection. You need to do this to allow the ESP8266 connection to the internet. Once you do this, open the console and run the program to test that your board manages to get an IP address. Put in your google API key and details. Channel ID, etc.

Hook it up to the LED board. Test that it works.

This part was the most frustrating for me as I had to figure out a few things before I got it to work. Luckily you can learn from my mistakes. Firstly, the board pins do not map directly to the GPIO pins of the chip. Here’s the image that shows the true mapping. The code outlines what pins of the LED screen the ESP8266 plugs into.

ESP8266 Pin mapping to GPIO LED Live Subscriber Counter
ESP8266 Pin Mapping. Source: https://i.stack.imgur.com/93qIq.jpg
80x8 LED Datasheet pins LED Live Subscriber Counter
80×8 LED Datasheet pins

Secondly, the 80×8 LED datasheet shows the pins of the LED display which is fine (above), but when you plug in the ribbon cable (if you use one), it actually mirrors the pins because of its orientation, so be careful of this. When it’s all hooked up, fire up the ESP8266 and you should be able to see your subscriber count!

While it’s cool to see your live subscriber count on this nice 80×8 LED display, you need something to mount it to! Luckily, I’ve got my trusty 3D printers (Creality 3D CR-10s specifically) to help me make a nice mounting solution. You can download the brackets I’ve designed and printed for my display here. Just use some bolts and voila, a cool LED YouTube live subscriber counter that you can put just about anywhere. It should run from the voltage supplied by the pins of the ESP8266 because it doesn’t use too many LEDS, but you can always attach the 5V DC power supply to the back screws of the board if you need more juice (I recommend this). It will make the display of the LED YouTube Live Subscriber Counter brighter and run to ideal power conditions.

You can also run the LED YouTube Live Subscriber Counter on any display of course. My code should be well enough documented that you can just put your LCD code (or whatever) and it should work.

red play button wiring

3D Printing the Play Button and putting it in a frame

Initially I left it at just the LED display and brackets, but then I decided to make it into a full RED YouTube Play Button. So I downloaded the the model from thingiverse here. Some sanding at 200 and 400 grit sandpaper got the model smooth, but not quite smooth enough. I then used some automotive primer filler and sanded with 200 again. A coat or two of some red spray-paint made it look really nice.

LED YouTube Live Subscriber Counter Red Button

After this, it was just a matter of getting all the electronics into the back of a frame. Unfortunately, I didn’t have the right power supply, so I needed two cords: one for the display and one for the ESP8266. I put the red YouTube play button against the glass (there was some good friction which held it there), then overlayed some paper which I printed some writing on to make it look more official. After some hacking with a saw to get a hole out of the back for the electronics, it eventually got there. The pictures don’t really do it justice, the LEDs look brighter in real life.

LED YouTube Live Subscriber Counter Red Play Button

Instagram Live Subscriber Counter

It’s very easy to modify this LED YouTube Live Subscriber Counter to use any sort of API for any application. Another example some people might like to use it for is Instagram. But you’ll have to repeat the steps above to sign up for Instagram API access. Your imagination is the limit here really!

General comments

LED YouTube Live Subscriber Counter

  • You can change the update time of your code (its default refresh at 10 seconds) to something faster or slower, but be wary that google doesn’t like being spammed too much with requests, so be careful setting it too small.
  • You can also easily change the display type to something else, like and LCD if you wish. Just change the display functionality to match the LCD pins and hook it up as required. You could even use a more commonly available 8×8 LED matrix and scroll through the numbers.
  • If you network is slow, you may have to increase the delay time in the code for processing. This is clearly highlighted in the code. As far as I know, it’s not asynchronous.
  • If you’re having issues with the display, double check the pins are correctly mapped. Double check the diagram above. Remember that D0 isn’t pin 0 in the code!


Programming and code behind the Live Subscriber Counter

I chose this project because I already did something similar a while ago playing around with this display. I haven’t played with the ESP8266 before though, so this is why I decided to give this a shot. Being new to the NodeMCU ESP8266, I was a beginner again. Luckily for me, it is basically an Arduino with a Wi-Fi chip, with well documented examples and a solid library behind it.

I used the example HTTPS file and heavily modified it to include the YouTube API calls, along with the custom functions I wrote to use the LED display. After some frustrations (as I detailed before) getting the pin mappings right, I had the system working fairly well without a hitch.

I found just one more thing annoying though. To use this particular LED display, you have to rapidly show each of the 8 lines individually and cycle them rapidly because you can’t turn them all on at once. Of course, because this happens so fast, to the human eye it looks like one solid display. This was a problem because whenever the ESP8266 chip made a HTTPS API call to get the YouTube or Instagram data, it blocks the execution of the LED display being cycled. This means every 10 seconds the screen would turn blank for a short period of time. To solve this, I introduced an interrupt that ran every 50 microseconds or so that cycles the next row on the display. This effectively makes the LED display run in parallel with the API calls to YouTube. It’s then easy to add any custom fancy animation once the subscriber count changes in the background, and you get no ugly blank LED screens.

Small pro tip: Don’t use the RX or TX pins when you hook yours up, it appears the Wi-Fi chip uses this. So let me save you an hour or so in debugging 😉


Please follow and like us:

Leave a Reply