The Zero-Trust Dislike Crowdsourcing Solution...

<aside> 🧑‍💻 HowToBasically:

The API

A How-to guide?

</aside>

<aside> 🗣 Join our community in discord: https://discord.gg/XHgsvMAdZa

</aside>

Getting Dislikes Back For Youtube

Inspired by a video by Linus Tech Tips https://youtu.be/Nz9b0oJw69I?t=340

I plan to make a Nodejs API to get the dislike data from Creators such as Linus Tech Tips, MrBeast, Mark Rober and many other creators would like to care for their viewers and share their Youtube(TM) Analytics data with Google's OAuth.

As Linus said in his video creators can help, so let's hope they do their part :) Also, he said, it gets pretty shady pretty fast, we are making this thing open source so at least it gets... ah, less shady I guess? also you can view our code and check what we collect and understand why we collect. We plan to make it in such a way that it becomes easy for anyone to sign up and basically no maintenance is needed after that. Also, we have made our system in such a way that no one can access the data (except the server).

So what's your plan?

Security

You: do you really expect me to believe you?

Me: Yes.

You: tf why?

Me: well, you see:

  1. you can verify yourself by going to https://dislike.hrichik.xyz/brainfry/verify and check the jwt with the public key added with the GitHub action
  2. I really don't get access to your data, only the server does. To be clear, I can’t even view the refresh tokens. those who can ( i.e. the people who operate the monkey (code name for the database that stores the encrypted tokens) it's useless for even them? why do you ask? cause it's encrypted by a key I don't know, they don't know as it's provided by a third party like the RYD or LTT or any other company or individual people decide.

How does this work?

So basically the code gets the real stats from Youtube (or our database, whichever is fresh or fresh enough to prevent us hitting rate limits) when any video from a YouTuber signed up with us is requested. We would use this method from the youtube API https://developers.google.com/youtube/analytics/metrics#dislikes (for that we would need the following scopes as told by docs: https://www.googleapis.com/auth/youtubepartner, https://www.googleapis.com/auth/youtube.readonly, https://www.googleapis.com/auth/yt-analytics.readonly) to get the dislikes to count for that specific video, also we would asynchronously store that value against the videoID in our database.

Ok, we got the data, what next?

Now, we would store the data we needed i.e. the dislikes count in our Redis Cache.

Why Redis? Well, It’s free, fast and fits what we are doing. I thought to use MongoDB for everything as my other projects such as Dogegram (wink wink, sign up for that too now) use it but I thought it might be an overkill to store just a JSON object containing just two to three items.