OsaSoft / youtube-better-subscriptions

This extension for Firefox and Chrome aims to make navigating YouTube's subscription grid easier by allowing users to hide watched videos
GNU General Public License v3.0
122 stars 21 forks source link

[feature request] Hide videos you can't currently see #68

Closed waytoomuchgaming closed 3 years ago

waytoomuchgaming commented 4 years ago

I have videos who appear in my stream, but i can't see them, because they are scheduled for later. I don't need them to appear in my stream, it's a waste of space (i unfortunately got a lot of them). I don't want them hidden forever: just hidden until i can see them.

WitekS commented 4 years ago

I agree with the previous opinion. Showing information in subscriptions what you can watch deserves the opportunity to hide these unnecessary cards until the actual movie appears. I am contributing to the request for such an option.

OsaSoft commented 4 years ago

ignore this comment, just for myself so i can work on this. Example of elem that is a scheduled premiere:

<ytd-grid-video-renderer class="style-scope ytd-grid-renderer" lockup=""><div id="dismissable" class="style-scope ytd-grid-video-renderer"><ytd-thumbnail use-hovered-property="" width="210" class="style-scope ytd-grid-video-renderer">

    <a id="thumbnail" class="yt-simple-endpoint inline-block style-scope ytd-thumbnail" aria-hidden="true" tabindex="-1" rel="null" href="/watch?v=bOM-yzarJDQ">
      <yt-img-shadow class="style-scope ytd-thumbnail no-transition" style="background-color: transparent;" loaded=""><img id="img" class="style-scope yt-img-shadow" alt="" src="https://i.ytimg.com/vi/bOM-yzarJDQ/hqdefault_live.jpg?sqp=CIj6__IF-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==&amp;rs=AOn4CLBlgMxsj46dRiyFNHu23oVXakQNXg" width="210"></yt-img-shadow>

      <div id="overlays" class="style-scope ytd-thumbnail"><ytd-thumbnail-overlay-time-status-renderer class="style-scope ytd-thumbnail" overlay-style="UPCOMING"><yt-icon class="style-scope ytd-thumbnail-overlay-time-status-renderer" disable-upgrade="" hidden=""></yt-icon><span class="style-scope ytd-thumbnail-overlay-time-status-renderer" aria-label="LIVE">
      LIVE
    </span></ytd-thumbnail-overlay-time-status-renderer><ytd-thumbnail-overlay-now-playing-renderer class="style-scope ytd-thumbnail">

    <span class="style-scope ytd-thumbnail-overlay-now-playing-renderer">Now playing</span>
  </ytd-thumbnail-overlay-now-playing-renderer></div>
      <div id="mouseover-overlay" class="style-scope ytd-thumbnail"></div>
      <div id="hover-overlays" class="style-scope ytd-thumbnail"></div>
    </a>
  <div id="osasoft-better-subscriptions_metadata-line" class="style-scope ytd-thumbnail-overlay-toggle-button-renderer"><button id="osasoft-better-subscriptions_mark-watched" class="subs-btn-mark-watched" role="button"></button></div></ytd-thumbnail><div id="details" class="style-scope ytd-grid-video-renderer"><div id="meta" class="style-scope ytd-grid-video-renderer"><h3 class="style-scope ytd-grid-video-renderer"><ytd-badge-supported-renderer class="style-scope ytd-grid-video-renderer" disable-upgrade="" hidden=""></ytd-badge-supported-renderer><a id="video-title" class="yt-simple-endpoint style-scope ytd-grid-video-renderer" aria-label="🎂 Narozeninová GIVEAWAY !!! 🎂 (LIVESTREAM START 20:00) by Nik@theGamerGirl No views" title="🎂 Narozeninová GIVEAWAY !!! 🎂 (LIVESTREAM START 20:00)" href="/watch?v=bOM-yzarJDQ">🎂 Narozeninová GIVEAWAY !!! 🎂 (LIVESTREAM START 20:00)</a></h3><div id="metadata-container" class="grid style-scope ytd-grid-video-renderer" meta-block=""><div id="metadata" class="style-scope ytd-grid-video-renderer"><div id="byline-container" class="style-scope ytd-grid-video-renderer"><ytd-channel-name id="channel-name" class="style-scope ytd-grid-video-renderer">

    <div id="container" class="style-scope ytd-channel-name">
      <div id="text-container" class="style-scope ytd-channel-name">
        <yt-formatted-string id="text" class="style-scope ytd-channel-name complex-string" ellipsis-truncate="" title="Nik@theGamerGirl" has-link-only_=""><a class="yt-simple-endpoint style-scope yt-formatted-string" spellcheck="false" href="/channel/UCxO1LXHBWk2pEdb2-GvzviA" dir="auto">Nik@theGamerGirl</a></yt-formatted-string>
      </div>
      <paper-tooltip position="top" class="style-scope ytd-channel-name" role="tooltip" tabindex="-1"><!--css-build:shady-->

    <div id="tooltip" class="hidden style-scope paper-tooltip">

    </div>
</paper-tooltip>
    </div>
    <ytd-badge-supported-renderer class="style-scope ytd-channel-name" disable-upgrade="" hidden="">
    </ytd-badge-supported-renderer>
  </ytd-channel-name></div><div id="metadata-line" class="style-scope ytd-grid-video-renderer"><span class="style-scope ytd-grid-video-renderer">Scheduled for 05/03/20, 20:00</span><dom-repeat strip-whitespace="" class="style-scope ytd-grid-video-renderer"><template is="dom-repeat"></template></dom-repeat></div></div><div id="additional-metadata-line" class="style-scope ytd-grid-video-renderer"><dom-repeat strip-whitespace="" class="style-scope ytd-grid-video-renderer"><template is="dom-repeat"></template></dom-repeat></div></div></div><ytd-badge-supported-renderer id="video-badges" class="style-scope ytd-grid-video-renderer" disable-upgrade="" hidden=""></ytd-badge-supported-renderer><div id="menu" class="style-scope ytd-grid-video-renderer"><ytd-menu-renderer class="style-scope ytd-grid-video-renderer">

    <div id="top-level-buttons" class="style-scope ytd-menu-renderer"></div>
    <yt-icon-button id="button" class="dropdown-trigger style-scope ytd-menu-renderer"><button id="button" class="style-scope yt-icon-button" aria-label="Action menu">
      <yt-icon class="style-scope ytd-menu-renderer"><svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" style="pointer-events: none; display: block; width: 100%; height: 100%;" class="style-scope yt-icon"><g class="style-scope yt-icon">
        <path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z" class="style-scope yt-icon"></path>
      </g></svg>

  </yt-icon>
    </button></yt-icon-button>
  </ytd-menu-renderer></div></div><div id="buttons" class="style-scope ytd-grid-video-renderer"><ytd-toggle-button-renderer class="style-scope ytd-grid-video-renderer style-compact-gray" use-keyboard-focused="" button-renderer="true" is-paper-button=""><a class="yt-simple-endpoint style-scope ytd-toggle-button-renderer" tabindex="-1"><paper-button id="button" class="style-scope ytd-toggle-button-renderer style-compact-gray" role="button" tabindex="0" animated="" elevation="0" aria-disabled="false" aria-pressed="false"><!--css-build:shady--><yt-formatted-string id="text" class="style-scope ytd-toggle-button-renderer style-compact-gray">Set reminder</yt-formatted-string></paper-button><paper-tooltip class="style-scope ytd-toggle-button-renderer" role="tooltip" tabindex="-1" style="inset: 275px auto auto 522.983px;"><!--css-build:shady-->

    <div id="tooltip" class="style-scope paper-tooltip hidden">
      Receive a reminder when this event is scheduled to start.
    </div>
</paper-tooltip></a></ytd-toggle-button-renderer></div></div><div id="dismissed" class="style-scope ytd-grid-video-renderer"><div id="dismissed-content" class="style-scope ytd-grid-video-renderer"></div></div></ytd-grid-video-renderer>
akda5id commented 3 years ago

In the meantime, here is a uBlock Origin filter to block scheduled videos from showing: www.youtube.com##ytd-grid-video-renderer.ytd-grid-renderer.style-scope > div > div:has-text(remind):nth-ancestor(2)

Note that if you view youtube in another language, you would likely need to change the 'remind' in has-text(remind) to your localized text.

OsaSoft commented 3 years ago

Scheduled for release v0.16.0. By default will be disabled but you can enable it in the settings

OsaSoft commented 3 years ago

well crap, for some reason its not working in the live version. Will issue a fix soon

OsaSoft commented 3 years ago

Resolved in v0.16.1. Should be going live soon