Anarios / return-youtube-dislike

Chrome extension to return youtube dislikes
https://returnyoutubedislike.com/
GNU General Public License v3.0
12.5k stars 558 forks source link

[Feature Request] Add stars, just like in the old youtube #105

Open astrynzha opened 2 years ago

astrynzha commented 2 years ago

Add the star ranking system to the addon, where each video can be ranked from 1 to 5 stars by a user.

sooswastaken commented 2 years ago

Actually, this could be really cool! Instead of asking youtube for the likes and dislikes, having a separate system to rate videos could work even after youtube removes their api! It would be like the SponsorBlock extension, where users could summit their own data to the extensions api, and the extension would show it to other users.

Maybe you could add both likes/dislikes and star reviews!

sy-b commented 2 years ago

Don't forget to add an option to rate 0 star.

(& Will negative stars make sense?)

ajayyy commented 2 years ago

For the SponsorBlock system, we are going to use vote categories https://github.com/ajayyy/SponsorBlock/issues/1039#issuecomment-972397761

image

This allows you to vote a video as "misleading" seperately from "dislike".

imansour12 commented 2 years ago

Maybe the star rating can be connected to the ratio of likes to dislikes? image For example the above could be five stars. image and this can be 1 star. That way we don't have to re-rate everything from scratch?

mphelp commented 2 years ago

@imansour12

I like converting old/new likes into 5 stars and old/new dislikes into 1 stars. In fact, this is exactly how Youtube calculates the internal rating of a video. Also, with this approach, we take advantage of all our archived dislikes.

But I also think that we can improve the user-side by allowing the full range of ratings. Suppose users toggle a setting called Enable Star Rating, then they can also rate a video as 2, 3, or 4 stars and instead of a Like/Dislike button, there will be 5 stars under the Youtube video.

Screen Shot 2021-12-06 at 8 01 15 AM

Thoughts? @PickleNik

imansour12 commented 2 years ago

Alright so is someone working on a PR or do I do it?

imansour12 commented 2 years ago

also @mphelp nice design

mphelp commented 2 years ago

@imansour12 As far as I know, there's no PR yet, feel free to try it out

imansour12 commented 2 years ago

@mphelp I got pretty far into the feature implementation but i ran into a problem where I couldn't get the config object from popup.js and use it in the return-youtube-dislike.script.js I give up for now. I lost three hours on this

mphelp commented 2 years ago

@mphelp I got pretty far into the feature implementation but i ran into a problem where I couldn't get the config object from popup.js and use it in the return-youtube-dislike.script.js I give up for now. I lost three hours on this

you can push any WIP commits to your branch. I'm happy to take a look. You can also message me on the discord, I'm pian0man

imansour12 commented 2 years ago

oh alright mate, what's your discord tag? like the number after the name? @mphelp

imansour12 commented 2 years ago

@mphelp i sent you a request a couple days ago mate,, its j o e#3393

himanshudabas commented 2 years ago

hi @mphelp

instead of showing stars can we do something similar to IMDb?

here a snapshot for the reference:

image

ChristophorusReyhan commented 2 years ago

I think this would be a game changer if made as an alternative to current like/dislike ratio. It's because when current Youtube api is closed, the Like/Dislike ratio of a new video will be skewed, because of the difference in the amount of people between normal user and user who use the extension. It will have a lot more likes than dislike when the video is misleading. For example it will have hundreds of thousands or millions of like but only tens of thousands of dislikes (because the userbase who use the extension is only tens of thousands, and not counting the people who disliked the video without extension) .

With 5 stars system, it's separate from the current system ( not based on the current like/dislike ), and it won't be skewed like the current system. It doesn't matter how much normal people who use the extension vs people who does, we can determine how good the video is based on the 1-5 stars.

The snapshot from @himanshudabas is a good example, just need to add a switch button beside it to switch between "Like/Dislike" or "Stars".

himanshudabas commented 2 years ago

based on @imansour12's work, I created a draft with the switch button. this is how it looks like: image

But we'd need to discuss a few things before we move ahead on this.

  1. If a user selects the star rating option, and rates a video 3 out of 5 stars? how would we handle that in terms of YT likes/dislikes? do we consider anything below 3 stars a dislike? and anything above or equal to 3 stars a like?
  2. Currently (for demonstration only) I was considering the existing dislikes as 1 star and likes as 10 stars to calculate the star rating (which is shown in the snapshot above). what scale should we use? 1-5 or 1-10?
  3. If we add this star feature and user selects it, do we use the existing likes & dislikes for calculating the star rating? or are we gonna consider only the extension likes & dislikes / star ratings. (by star rating I mean when someone is using star rating feature & rates a video from 1-5 or 1-10).
  4. If we follow the former approach from point 3 above, then the data in future would be highly skewed, specially when YT removes the rating (which we use for calculating the dislikes) from videos and we only have dislikes from the extension. Which @ChristophorusReyhan has also mentioned above. But if we follow the latter approach (only using extension likes & dislikes/ star ratings) then we'd have to show the video likes & dislikes separately somehow.
himanshudabas commented 2 years ago

adding to the above comment. at the technical side, we would need to add the storage permission to the extension to store the user preference for the extension.

imansour12 commented 2 years ago

@himanshudabas You're right! We do need the storage permission and it took me half a day of furiously debugging before I could figure that out. Also, your draft is what is being currently used:

image

With regards to your questions:

  1. We would have to wait and see what happens when the api is down. What I think we will do is first get a star rating of every single video based on the like/dislike ratio (I'll get to the details in a minute) , and then we transform that into stars and deal with it as a completely seperate rating, however, likes and dislikes will still affect the star rating but not vice versa. This way we don't have to deal with figuring out what is considered a like or a dislike in stars.

2.In my code, I am already using this table: // percent halfstars // ------- --------- // 0- 4 0
// 5- 14 1 // 15- 24 2 // 25- 34 3 // 35- 44 4 // 45- 54 5 // 55- 64 6 // 65- 74 7 // 75- 84 8 // 85- 94 9 // 95-100 10

I think this is good enough. 3.we use the existing likes & dislikes for calculating the star rating (i am not sure i understood the question well) 4.Because this question builds from the previous question, i have an even harder time understanding it, can you please re-explain it mate?

I hope this helped even a bit.

ChristophorusReyhan commented 2 years ago

@himanshudabas here's my thought on it

  1. the user can use feeling and compare it to other videos that you think is accurate or enjoyable. For example if good videos on average has more than 4 stars, excellent videos has more than 4.6 stars, then users can decide if the vid is watchable or not. It needs to have rating data already to know what is the baseline. Another example is on google maps, my personal baseline is 4.3 stars, anything below that is not worth visiting.

2 & 3. "With 5 stars system, it's separate from the current system ( not based on the current like/dislike )". Sure if the data is already exists from the api, you can use it to calculate the rating. After the api is closed, the user can either use likes/dislike or rating system, but it won't be based on each other if the video doesn't exists before in the database. It makes sure the rating data isn't skewed.

illdeletethis commented 2 years ago

the reason youtube removed the star rating system was very few videos getting in between ratings. while i regularly wish for rating something neutral, i don"t know when i"d ever rate a video slightly positive or negative, which is what 2 and 4 stars would be. maybe only adding neutral would be enough, and actually get more use than a more gradual system in which users have to think about more options

sy-b commented 2 years ago

Just Reviving

Recently, it's status was enquired on Discord