-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[enhancement] "What's New" sorting improvement #822
Comments
It would be nice if we could have a proper feed manager like typical rss managers that shows how much videos of a channel you didn't see, and which one they are. |
This problem is noted and discussed in more detail in #739, but may take some time before a good implementation surfaces. In short, the timestamp available on the webpage is insufficient in determining the time of publishing, so the latest video is used as a replacement for getting the feed. Also, in order to implement a proper feed, we have to consider how to deal with other services in the future. |
@theScrabi @karyogamy @epitron @Generator @timofonic |
@pupyc SkyTube uses Youtube API for retrieving video's publish date, something NewPipe will not support. |
@karyogamy It still knows when the video was published though.... Just make it like YouTube. Just a normal feed. I don't want to click on "What's new" to see the videos. Wouldn't it be much more logical to make that "My subscribed channels" and show the Feed directly? |
In my opinion a subscription feed would be a major addition for anyone wishing to use newpipe as a replacement of the YouTube app. |
Yes I see it like you. I wished NewPipe had this. Just someone had to do it :) |
I've been using NewPipe as a replacement for the YouTube app, and this issue has been bothering me the most. So I've started to work on an implementation, but before adding a PR, I would like to get some input. How I imagine the feed to work:
@theScrabi What do you think about it? |
Sounds good. But isn't the date already parsed in the extractor? If not than the parsing would belong there anyway. |
@wojcik-online Looks good to me too, though like @theScrabi said, we do have to take into account that different services may have different format patterns on the upload date strings. Also, I'd like request you to not change the database at the moment as it is undergoing a schema overhaul in #1004. By the way, great job on the change you made on feed fragment, I didn't know you can use Rx |
@theScrabi Take a look here: YoutubeStreamInfoItemExtractor.java#L118, we are simply taking what the streaming service is displaying. I think all translation stuff should happen in the front end (NewPipe) but here's some ups and downs on downloading the page in only one language: Ups:
Downs:
|
@mauriciocolli I think the page could be downloaded in the language selected by the user and the parsing could take place in the front end. To parse every supported language, format patterns would have to be added to the resource strings.
|
@wojcik-online that's the problem, it's just too many and who knows for how long they will be valid. Even if we did, people would have to actively maintain the multitude of languages (someone who knows, at least, regexp). And then, even if the last point wasn't a problem, there's multiple services that could be using different words/phrases that would amplify the maintenance. For these reasons, I think the cost of maintenance it's just too high. |
@mauriciocolli Do you think that the cost of keeping the following format up to date (in every language) would be too high as well? I doubt that the phrases are likely to change any time soon and the format doesn't require any knowledge of regexp.
In the code, we could check which time unit is meant by calling: I have implemented a parser TimeAgoParser.java that works nicely with other services that provide exact upload times (such as SoundCloud or podcast RSS). |
Yes, I was wondering of doing something like this, and in fact, there's a whole subject to this problem, check "natural language processing" (but parsing a "static" server generated dates wouldn't be as complicated as, for example, a real human talk). If we could find a library good enough for that, we could use it, and if none meets our requirements, that would be the perfect opportunity to start a new project. I think it fits more as a dedicated one that could support multiple languages, and therefore, multiple services. What do you think? Then the only thing left is turn the time to relative again, for that, there's some libraries out there. |
@mauriciocolli There also is A lot of other services (e.g. SoundCloud) provide the exact upload date instead of a '2 months ago' type of thing. Do you think that the dates of other services should be displayed in the same way as the YouTube dates? This would certainly create a consistent UI. |
@wojcik-online definitely, other than consistency, a person can identify/process a relative time much more quickly than a exact one, and for those who want it, it'll still be there in the detail page. |
@mauriciocolli I think that at the end of the day it should be the responsibility of the streaming service to parse its dates properly. I don't think it is possible to create a parser that will support all the formats of all future services in every language. PrettyTime seems like an overkill to me. It supports centuries and millennia. (I wonder what the Romans watched on YouTube.) And the natural language parser unfortunately only supports English. |
@wojcik-online The idea of a separate project was to create a library that could be used for other projects (specifically for parsing websites) that seems to be nonexistent, and better utilize the key words to support, at least, most services, but I see that it's a bit hard to do it correctly to every single one. For now, let's do it as you said.
Now it definitely is, only suggested PrettyTime because of the relative strings, as I didn't know Android had it built in (and it seems to have a great support for pretty much all languages).
I'm already building/gathering the phrases and key words for YouTube for all supported languages, so you're more than welcome. (Also there's some strings that don't have an number in there (e.g just now, moments ago...), but that's an issue that we can discuss in the pr). |
I assume you would like to put the parser into the fronted and not into the extractor then? |
Here's a gist of it:
|
I see. Yea thats awesome. :) |
Is this option going to be applied for soundcloud? :D |
@justanidea Yes, it's independent of the underlying service. There's one feed with the newest items of all services. |
And are we going to be able to separate them if we want? |
This topic makes me think we just could do a section of Newpipe with a big feed for all the services, and a specific feed for each section (just an idea hehe) |
Possible :) |
It's not an "enhancement". It's the second major bug (after 1080p video, that's already fixed and allows use NewPipe as youtube player. (I'll better see youtube via firefox than 720p resolution.)) Current sorting doesn't answer the question: "Is there something new I’m subscribed to?" |
Is there any update on this? :) |
Wow, this requestion has been hanging for a year now and it has never been added to the program ... Will it be implemented in the future? |
@mauriciocolli I was just going to mention that we can use a mini rss reader to get accurate date of publishing, like any rss reader. That is what I use now and it is pretty accurate ! Thank you dude for the pr 👌 |
Thanks for the heads-up that there is already a pull request! |
Waiting it for years |
Has this been furthered? Would be awesome for subscriptions to show unwatched videos - Bites to come back after a while and see only one, as you miss out on anything in between! |
Hey, can anyone give me some input on what exactly the problem is? Maybe I can help. Then you simply use a feed parsing library and extract the publish date for each video. The date is in a reliably parsable format too:
(it's called ISO8601 which is very commonly used and supported by most date/time libraries) |
Having live streams in the subscription feed seems like a really low priority compared to having it actually work at all with normal videos.
Yes, they are rounded to the second if you take the data from the feed. That seems good enough to me. Correct me if I'm wrong. |
What I meant by "normal videos" is videos in the channel page (without feed). |
So now the "What's New" page shows the latest video from each channel you subscribed to, but that's not how YouTube subscriptions work, youtubes' subscription list sorts videos by the publish date.
Now in NewPipe each channel have only one video in the "What's New" feed even if they published 10 videos recently "say 1 day ago" at the same time only one will show up in "What's New", and some other channels that you may subscribed to, haven't published in months and you have watched their videos it still shows them every time you go to "What's New".
So it will be nice to sort the "What's New" videos by the publish date.
The text was updated successfully, but these errors were encountered: