HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
LuanRT
YouTube.js
TypeScript2022–2025
LuanRT / YouTube.js

YouTube.js

A JavaScript client for YouTube's internal API, known as InnerTube.

7Distinct people
9Mentions
0Explicit recommenders
5.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A JavaScript client for YouTube's internal API, known as InnerTube.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year9 dated mentions

Observed mentions: 2022-04-13 23:31:54 UTC to 2025-09-24 13:06:29 UTC.

012342022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20232024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC413
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC303
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

What Hacker News says

9 sources
Nsig/sig - Special tokens which must be passed to API calls, generated by code in base.js (player code). This is what has broken for yt-dlp and other third party clients. Instead of extracting the code that generates those tokens (eg using regular expressions) like we used to, we now need to run the whole base.js player code to get these tokens because the code is spread out all over the player code. PoToken - Proof of origin token which Google has lately been enforcing for all clients, or video requests will fail with a 403. On android it uses DroidGuard, for IOS, it uses built in app integrity apis. For the web it requires that you run a snippet of javascript code (the challenge) in the browser to prove that you are not a bot. Previously, you needed an external tool to generate these PoTokens but with the Deno change yt-dlp should be ca
Read the rest
pable of producing these tokens by itself in the near future. SABR - Server side adaptive bitrate streaming, used alongside Google's UMP protocol to allow the server to have more control over buffering, given data from the client about the current playback position, buffered ranges, and more. This technology is also used to do server-side ad injection. Work is still being done to make 3rd party clients work with this technology (sometimes works, sometimes doesn't). Nsig/sig extraction example: - https://github.com/yt-dlp/yt-dlp/blob/4429fd0450a3fbd5e89573... - https://github.com/yt-dlp/yt-dlp/blob/4429fd0450a3fbd5e89573... PoToken generation: - https://github.com/yt-dlp/yt-dlp/wiki/PO-Token-Guide - https://github.com/LuanRT/BgUtils SABR: - https://github.com/LuanRT/googlevideo EDIT2: Addeded more links to specific code examples/guides
In Yt-dlp: Upcoming new requirements for YouTube downloads
It was pretty straightforward for me to install and use yt-dlp. On a Mac with Homebrew you can do `brew install yt-dlp` to install it in one command. IIRC yt-dlp also provides binaries you can install directly. I'm not sure if installing docker and running a web server is any way easier than that. However, there are ways to download Youtube videos without installing a native app. For example, it is possible to use a library like Youtube.js [0] to make a browser extension that downloads Youtube videos directly. You won't find those on Google's web store due to policy, but you can find a handful on Github. 0: https://github.com/LuanRT/YouTube.js
In MeTube: Self-hosted YouTube downloader
There is a javascript library for interfacing with Youtube's API directly. It can also run on browsers. Using this, it's pretty easy to create a simple extension that replaces the default video player with your own. You can do a lot to improve your experience this way. I've made one which allows for higher quality streaming, pre-buffering video in the background, more subtitling options, etc... [2] [3]. [1] https://github.com/LuanRT/YouTube.js [2] https://github.com/Andrews54757/FastStream [3] Chrome (also available for Firefox): https://chromewebstore.google.com/u/1/detail/faststream-vide...
In Show HN: YouTube banned adblockers so I built an extension to skip their ads

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.