Technologies and Programming Language used by Youtube


👤 Diwas Poudel    🕒 13 Oct 2022    📁 TECH

Youtube is the world's largest video-sharing and social media platform, founded in 2005 and acquired by Google in 2006. It is the world's second most popular search engine. Youtube has a large volume of unstructured video content, and its popularity is increasing at a rapid pace.

Anyone with a Google account can upload content, and any user (with or without a Google account) can freely share and view content.

Every day, YouTube consumes more than 1 billion hours of content. As a result, various technologies and programming languages are used to manage large amounts of data. Let's take a look at the programming language and technology used by YouTube, which is as follows:

Also Read: Guide to Technology Stack

Programming Language

1 Python

Before Google acquired Youtube, the majority of the code was initially written in PHP, but there were many restrictions and clutters in PHP at the time, so after acquiring Youtube by Google, they moved to Python as one of the core parts of its backend programming.

Python is used in many Google internal systems and APIs. Python is used by YouTube because it is easier to implement new ideas, is more maintainable, and is more secure than PHP. Python is used by entire YouTube sites for a variety of purposes such as viewing videos, controlling website templates, administering videos, data analysis, data visualization, and so on.

Some Programming Langauges used in Youtube
fig. Some Programming Languages used on Youtube

2 Java

Java is a very high-performance server-side programming language. YouTube employs Java because it is capable of handling extremely high traffic volumes. Java was used in the Guice platform. Guice is a Java open-source software framework released under the Apache License by Google.

3 Go

Go has cross-platform capabilities, which is a significant benefit. In 2017, Google decided to port the Python wrapper to Go because Go includes built-in tooling, it has quick compile times and deploys, as well as simple troubleshooting. (source)

Go has excellent support for handling concurrency and parallelism but python lacks support.

4 C / C++

Large corporations use C and C++ as their primary programming languages. C and C++ are also used for app core functionality such as video processing.

5 Node 

Node JS is a Javascript runtime environment based on Chrome's V8 Javascript engine. The main programming interface is written in Javascript. It is not a Framework or a programming language.

6 MySQL

Initially, YouTube used MySQL to store user and video meta information such as users, tags and descriptions, ad information, country-specific customizations, comments, notes, tags, and so on. Youtube stores video content in a filesystem in a drive managed by Google File System in Google Data Centers and the location path of the videos may be stored in a MySQL database table.

I believe YouTube uses MySQL rather than NoSQL because its data is highly structured.SQL is good for managing structured data. Also, Youtube required consistency in the video's likes and dislikes, which required Atomicity to be fulfilled and that can easily be managed by MySQL.

7 Vitess

Vitess was designed to work alongside MySQL to improve MySQL performance by enabling horizontal scaling of MySQL vis sharding.

Vitess also handles failovers and backups automatically. Vitess helps to rewrite resource-intensive queries and implementing caching improves server management and database performance.

Also Read: Microsoft Technologies Stack

8 Google Big Table

BigTable helps to manage youtube structured data across thousands of servers.

9 PHP

Youtube was initially developed using PHP. Later Python replaced most and most of the PHP code.

Also Read: How to increase Youtube playback speed more than 2x?

Server 

1 Apache Server: Apache Server is the most popular open-source free web server for delivering web content through the internet.

2 Cowboy Web Server: Cowboy is an Erlang/OTP HTTP server that is small, fast, and modern. It is designed with low latency and low memory usage in mind. Because it uses Ranch to manage connections, it can be easily embedded in any application.(source)

3 Linux (SUSE)

Cloud Platform

1 Google Cloud Platform

Google Cloud Platform is a cloud computing service provided by Google. Many Google products, such as YouTube, use the Google Cloud Platform. Google Cloud Platform offers computing, data storage, data analytics, and machine learning capabilities.

Also Read: How to download protected/view only files from google drive?

CDN

CDN stands for Content Delivery Network.

1 Cloud CDN

Youtube makes use of Cloud CDN for fast, dependable web and video content delivery on a global scale and reach. It reduces latency while delivering high-quality content to the end user (source).

Application and Data

1 Google Compute Engine

Google Compute Engine is an infrastructure as a service (IaaS) that allows users to create and run high-performance configurable virtual machines in Google Data Center.

Google-Cloud-Compute-Engine
fig. Google Cloud Compute Engine

2 Google App Engine

Google App Engine is a cloud computing platform as a service that enables the development of scalable web and mobile applications in Google-managed data centers.

Google App Engine
fig. Google App Engine

3 Visitor Queue

Finance And Accounting 

1 Odoo

Also Read: How to download playlists from Youtube in bulk? 

Other Utilities

1 Google Analytics

2 Google Tag Manager

3 AdGreetz

4 Influenex

5 ZooKeeper: Zookeeper for node coordination.

6 Wiseguy

7 Spitfire

8 Memcache: For Caching