pipes-digital / pipes

Repository for Pipes
https://pipes.digital
GNU Affero General Public License v3.0
254 stars 21 forks source link

Postpone updates #47

Closed anewuser closed 5 years ago

anewuser commented 5 years ago

Some Youtube channels have started using the "Premiere" feature, which adds unpublished videos to both the built-in Youtube "feed" and to RSS feeds.

You click on them expecting to play the video, but then are shown just the option to set a Google reminder for when the video is finally published:

jpop

It'd be nice if it was possible for you to add some way to postpone feed updates to bypass this. For example, the option to only add new items to a Pipes feed after they are one-week old.

onli commented 5 years ago

My first reaction was "Shouldn't this be handled in a dedicated tool, or the reader?". But then I realized that I don't know of a service or reader that offers this functionality, so yes, this is something Pipes should support and solve.

I'm not sure yet how, and even whether this functionality could work at all. My thought so far:

It could be added to the filter block, a way to not add items that have a date that is too new. But that does not fit too well to the regex approach that block normally follows. And the date set in a feed item is not always reliable. And finally: Just not adding an item could mean never adding an item, since we do not see old items again if the feed a week later only contains newer items, 20 new video uploads in this example for a feed that only shows the last 20.

This might need a new delay block: A block that gets items, buffers them, and releases them a specified time interval later. Not necessarily nice to build a pipe with (as the inspector will be pretty much useless), and I have to think a bit more about the consequences server-side of such a block (storage limit for example), but writing this out now I think it should work just fine.

anewuser commented 5 years ago

Thank you for your consideration. I've managed to hide those posts with uBlock Origin on Inoreader:

inoreader.com##.article_subscribed:has(.article_feed_title:has-text(/example 1|example 2/i)):has(.header_date:has-text(/(d|h)$/))

If the channel title is example 1 or example 2, and the date ends with d (days) or h (hours), the item is hidden.

You may close this issue, since this feature would be hard to implement and unlikely to be useful to a whole lot of people.

onli commented 5 years ago

I at first wanted to implement this anyway, but you are right, it might not be worth it. I will close for now and if you (or someone else) has a need for this, please re-open and I'll reconsider.

anewuser commented 1 year ago

@onli, I've figured out you can tell if a video has already premiered with an HTTP request to one of its alternative thumbnails (i.e. https://i.ytimg.com/vi/B5uQxRCRKpI/hq2.jpg).

It returns a 404 Not Found header if the video isn't available (yet). If the video can actually be watched, the image request returns 200 OK instead.

This works with geoblocked videos too, so the server location doesn't matter. This video is geoblocked to me, but I'm still able to see its proper secondary thumbnail with a 200 OK status.