TeamNewPipe / NewPipe

A libre lightweight streaming front-end for Android.
https://newpipe.net
GNU General Public License v3.0
31.04k stars 3.01k forks source link

Suggestions / recommendation tab (like YouTube) #2256

Open fightthepower opened 5 years ago

fightthepower commented 5 years ago

One of the biggest problem of NewPipe comparing to youtube app is the lack of recommended videos in homepage. Newpipe have a static trending video page which mostly doesn't change in a day and then we have "whats new" and channel pages which doesn't add diversity. Surfing with newpipe becomes boring after sometime unless we know what we want and search for it. For these problems I recommend adding a recommendation page to newpipe main screen. I know youtube recommendtion is youtube's proprietary api which newpipe may not have and because of this I am suggesting this solution.

When we open any youtube video page in newpipe it also simultaneously adds next recommended videos for that video alt text Look at the right of this image with NEXT video suggestion showing list of videos

I would recommend randomly selecting some videos from these suggested videos list and save those details in an external file with certain file size limits(to prevent it from growing more). As we surf we will visit many video pages and we get suggested more of these videos then details of those can be saved in that external file. We can then use the video list in this external file to create a recommended page for home screen.

seniorm0ment commented 4 years ago

Would absolutely love to see this.

private-doggo commented 4 years ago

I wrote an aproximate algorithm of how to pick best vids from suggested #4263

Stypox commented 4 years ago

@GregoryIT copy-paste it here, please, so that everything is in one thread. Thank you ;-)

ghost commented 4 years ago

From "Add NewPipe video suggestions based on watch history #4281"

Describe the feature you want

I think it would be great to have a feature where users could get video recommendations on NewPipe's main page, based on their watch history.

Is your feature request related to a problem? Please describe it

This feature is related to two problems:

  1. The NewPipe app currently does not offer any video suggestions to users, making it a lot less useful when searching for new content to watch.

  2. YouTube recommendation algorithm has changed drastically during recent years, offering either unrelated content, repeated suggestions and other recommendations based more on what is popular rather than what is more likely to interest their users. This often favors YouTube's own interests than their consumer needs.

Additional context

Add a completely new "Recommendations" tab to the content of the main page.

How will you/everyone benefit from this feature?

By NewPipe implementing their own video suggestions engine, they have the opportunity to become much better, much more useful than anything YouTube has to offer when searching for new content to watch.

ghost commented 3 years ago

Don't necessarily need a super complicated algorithm like Google has tbh. Since we already have access to per-video recommendations, could just get the list of recommendations from each video in watch history, add them into a list, randomize the order, and display that list on a recommendations tab.

If that list would be too big due to watch history being too long, then instead of getting the recommended videos for everything, pick videos from the watch history one by one at random until the list contains 100-200 videos or so (actual amount doesn't matter, just has to be something the app can handle), then get recommendations for those videos, put them in a list, randomize the order, and show that.

It doesn't need to be exhaustive, and if it needs to be improved it can be improved at a later point in time, but for the time being, as long as there's something that can show video recommendations on the main page, that should be plenty good. Can have a refresh button that would repopulate the list with different videos every time, so if none of what the algorithm picked interested you at the time, you can make it pick and show different ones.

wnaBee commented 3 years ago

One of the biggest problem of NewPipe comparing to youtube app is the lack of recommended videos in homepage. Newpipe have a static trending video page which mostly doesn't change in a day and then we have "whats new" and channel pages which doesn't add diversity. Surfing with newpipe becomes boring after sometime unless we know what we want and search for it. For these problems I recommend adding a recommendation page to newpipe main screen. I know youtube recommendtion is youtube's proprietary api which newpipe may not have and because of this I am suggesting this solution.

When we open any youtube video page in newpipe it also simultaneously adds next recommended videos for that video alt text Look at the right of this image with NEXT video suggestion showing list of videos

I would recommend randomly selecting some videos from these suggested videos list and save those details in an external file with certain file size limits(to prevent it from growing more). As we surf we will visit many video pages and we get suggested more of these videos then details of those can be saved in that external file. We can then use the video list in this external file to create a recommended page for home screen.

Why not extract the metadata from a video and adding videos with similar tags to the recommendations page?

9mido commented 3 years ago

Not sure this would be a good idea unless it is an optional setting. Some people don't want to get distracted by suggested/recommended videos.

One reason why newpipe is great is because you could watch the one video you intended to watch, then leave without getting further distracted by similar suggestions/recommendations. Often times with youtube, you could watch the one video you intended to watch, then stay on youtube for hours wasting most of your day because you kept watching their suggestions/recommendations. Youtube does this to get you addicted to their platform. Suggestions/recommendations often further decreases your productivity.

wnaBee commented 3 years ago

Newpipe is already highly customizable, theres even a blank page that has no purpose other than being a template (i guess) and giving people a landing page without any content. Adding something like a recommendations page would in my opinion only improve newpipe by adding even further customizablility, its possible you could store all the tags in a json locally allowing the user to modify precisely what the program finds, essentially it cluld be an "auto search" page with optional gathering of tags.

xznhj8129 commented 3 years ago

This is also something i need, mea culpa i still use the Youtube app a lot for when i want to see new content recommended to me (apart from the newest videos). I've also suggested this for FreeTube and imho this is one of the biggest things missing from youtube front-ends.

char-cole commented 2 years ago

Not sure this would be a good idea unless it is an optional setting. Some people don't want to get distracted by suggested/recommended videos.

that's fair, but by that reasoning the default should be a blank tab (or anything other than trending). the current design simply forces unfiltered popular videos in front of the user, which is mostly (all?) clickbaity videos in random categories. it also seems useless to anyone but the most casual viewer to have a completely uncurated feed. in fact I came right here after installing newpipe today because I thought I must be missing something if I couldn't figure out how to change this.

besides being at least a tolerable feed, showing curated recommendations would harness the actual greatest value of youtube for most users, which is discovery. for me personally I have found almost all of my subscribed channels (plus a whole lot of great music) through youtube recommendations. I would be surprised if the same wasn't true for most users, considering that's how youtube is designed to work.

anyway, that is to say I would really love to see this feature added to newpipe. even a very simple algorithm would be a huge improvement.

z8512 commented 2 years ago

Please add it ...

sxe commented 2 years ago

Came to the issue tracker to suggest this feature cause it's the only reason I go back to the official or youtube vanced app. I am only subscribed to 10 or so channels and run out of new videos rather quickly. After that I usually go to the recommendation page and keep scrolling for a while.

In my opinion implementing suggestion in newpipe wouldn't be that hard (or expensive) either. The suggestions are already gathered when you click on a video.

So a simple implementation would be:

  1. Add an empty by default "Personal suggestions tab".
  2. When you visit a video, collect the suggestions already shown there and store them locally.
  3. Repeat step 2. for all the videos you watch.
  4. When you now go back to the tab from 1. show the collected videos from 2. and 3. (Apply some smart filtering here)

From what I can tell, all the piece in my suggestion are already in the app, somebody just has to glue it together.

Hope we see something like this in the future.

Cheers

walking-octopus commented 2 years ago

Thanks to the InnerTube project and their wrappers, it's now possible! LuanRT/YouTube.js and tombulled/innertube might give you some details about implementing the InnerTube port for NewPipe.

opusforlife2 commented 2 years ago

Thanks to the InnerTube project and their wrappers, it's now possible! LuanRT/YouTube.js and tombulled/innertube might give you some details about implementing the InnerTube port for NewPipe.

M'dude: https://github.com/TeamNewPipe/NewPipeExtractor/pull/604

replete commented 2 years ago

Recommendations/Discovery based on viewing history would be a great addition to NewPipe, although I can see the challenges involved. I guess the main contexts are:

1) Recommendations from outside of your subscriptions (based on viewing history?) 2) Recommendations from within your subscriptions (based on viewing history?)

If there was a public endpoint for getting related videos based on one or more URLs, this might be straightforward, although I guess you'd have to filter out anything in viewing history (and possibly make that history import/exportable) and add an 'already seen' button which would add to viewed history.

Nothing is going to be as good as the youtube algorithm, however I suspect something good enough is possible - but the question is, can it be done without making hundreds and hundreds of requests every day?

nikhilCad commented 1 year ago

Here is a video about about how YouTube does recommendations(2016 paper) : https://www.youtube.com/watch?v=7C11p47NW44

Tldr: Very complex

Thenathayalan commented 8 months ago

Is anyone know how to get personalized video suggestions like YouTube in newpipe because, I like the newpipe app but without video suggestions it looks too boring, however i will continue the usage of newpipe to adapt me to that because everytime when I open YouTube i get distracted but I need personalized video suggestions it is one of the cool features which is missing in newpipe.

synctext commented 7 months ago

Delft University of Technology could possibly help with a recommendation engine. We have initial running code.

We deployed open source recommendation algorithms in the past. @TobiGr and @Stypox you seem to be the most active committers here. Would you feel comfortable approving a huge PR for this feature? Might take 1-2 years of work. We have the expertise for this and you have an amazing project with active user base. See our work, going as far back as 2005. Our latest 2023 algorithm is Web3Recommend. Yeah, solidly complex. You get a phd or master degree for getting even simple affinity models like this fully deployed: image

Hopefully you are interested in Web3Recommend or something like that?

Web3Recommend relies on a novel graph-based content recommendation design inspired by GraphJet, a
 recommendation system used in Twitter enhanced with MeritRank, a decentralized reputation scheme that provides
 Sybil-resistance to the system. By adding MeritRank's decay parameters to the vanilla Social Recommender Systems'
 personalized SALSA graph algorithm, we can provide theoretical guarantees against Sybil Attacks in the generated
recommendations. Similar to GraphJet, we focus on generating real-time recommendations by only acting on recent
 interactions in the social network, allowing us to cater temporally contextual recommendations while keeping a tight
 bound on the memory usage in resource-constrained devices, allowing for a seamless user experience.

prototype code

natewind commented 6 months ago

Recommendations of any kind are a menace for your time and attention span — and easily the worst feature of the official app. I hope there will always be an option to disable them completely in the settings.