Skip to content

Add sort and filter controls to channel video tab#13488

Open
vbrankov wants to merge 1 commit into
TeamNewPipe:refactorfrom
vbrankov:feature/channel-filter-sort
Open

Add sort and filter controls to channel video tab#13488
vbrankov wants to merge 1 commit into
TeamNewPipe:refactorfrom
vbrankov:feature/channel-filter-sort

Conversation

@vbrankov
Copy link
Copy Markdown

@vbrankov vbrankov commented May 9, 2026

What is it?

  • Bugfix (user facing)
  • Feature (user facing) ⚠️ Your PR must target the refactor branch
  • Codebase improvement (dev facing)
  • Meta improvement to the project (dev facing)

Description of the changes in your PR

Adds sort and filter controls to the Videos tab of channel pages. A Filter button appears in the existing playback control bar (alongside Background / Play All / Popup). Tapping it reveals a panel with:

  • Sort by upload date, view count, or name - with ascending/descending toggle
  • Age filter - predefined periods from 1 day to 5 years, or a custom input accepting natural language such as "3 months" or "2w"
  • Title filter - with wildcard support: hello (whole word), hel* (prefix), *llo (suffix), *ell* (infix)
  • Minimum view count - presets (1K - 100M) or custom entry

All pages are fetched in the background once the filter panel is opened. Results update progressively as pages arrive and the full list is cached in memory for the session. Sorting and filtering apply immediately as the user changes controls: no need to wait for all pages to load.

Why client-side rather than server-side

Issue #7729 has been open since 2022 and labelled requires extractor change because the assumed approach was requesting sorted results from YouTube's API. This implementation takes a different approach: all videos are fetched and sorted/filtered locally. This means:

  • No extractor changes required
  • Works identically across all supported services (YouTube, PeerTube, SoundCloud, etc.)
  • Enables filters that YouTube's own API does not support (title search, minimum views)

Before/After Screenshots/Screen Record

Screen-20260509-081100.mp4

Bear in mind that this channel has over 3700 videos, which is a lot. Most channels with a few hundred videos work instantenously.

Fixes the following issue(s)

APK testing

The APK can be found by going to the "Checks" tab below the title. On the left pane, click on "CI", scroll down to "artifacts" and click "app" to download the zip file which contains the debug APK of this PR. You can find more info and a video demonstration on this wiki page.

Due diligence

Adds a Filter button to the playback control bar on channel stream tabs
(alongside Background / Play All / Popup). Tapping it reveals a panel
with the following controls:

- Sort by upload date, view count, or name (ascending/descending)
- Filter by age: predefined periods (1 day – 5 years) or custom input
  accepting natural language such as "3 months" or "2w"
- Filter by title with wildcard support (prefix, suffix, infix via *)
- Filter by minimum view count: presets (1K – 100M) or custom entry

All channel pages are fetched in the background once the filter panel
is opened. Results update progressively as pages arrive and the full
list is cached in memory for the session. The implementation is
entirely client-side and requires no extractor changes, making it
service-agnostic (YouTube, PeerTube, SoundCloud, etc.).

Closes TeamNewPipe#7729
Related: TeamNewPipe#12727, TeamNewPipe#13039, TeamNewPipe#11606, TeamNewPipe#5324
@github-actions github-actions Bot added the size/giant PRs with more than 750 changed lines label May 9, 2026
@ShareASmile ShareASmile added feature request Issue is related to a feature in the app channel Anything to do with creator channels in the app labels May 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel Anything to do with creator channels in the app feature request Issue is related to a feature in the app size/giant PRs with more than 750 changed lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants