Braider
A custom user interface that merges videos from YouTube channels into a sortable and filterable table.
Problem: I want to browse videos from several YouTube channels in chronological order within a given date range. You would think that YouTube would make this easy, but it is not. It is especially hard if the channels in question publish a lot of videos and the time in question is several years ago.
Using my prototype, Braider, you can browse thousands of videos from multiple channels, including sorting videos on different values such as the number of views or length. If you tried to browse YouTube in your browser like this you would need multiple tabs each requiring 400+ MiB of memory.
The prototype features
- a simple text search that matches titles and descriptions.
- the ability to filter channels using mute and solo-pattern adapted from remedybg and DAWs.
- an interactive histogram that shows the number of videos released in year-month buckets.
- centering on videos. Use the sidebar to filter the videos, highlight one of the shown videos and then reset the filter. The selected video is now shown in the context of the full braid.
- a JavaScript test suite using my own implementation of the describe-it-should test pattern.
- an incredibly fast interface compared to YouTube.
There are some limitations in the prototype.
- The Braids are currently hardcoded and is currently not user friendly to generate new ones.
- The web client does not support varying resolutions. It will not look or function good on mobile.
- YouTube might not like websites that embed many videos and the iframes sometimes produces errors.
Examples of what questions you could answer using Braider.
- What is ThePrimeagen’s most popular video in the first quarter of 2025?
- Limited Life was a subseries that occurred during H9. How many videos were published in that series? Which video is the most viewed?
- Simon biked the Marcher Castles Way on GCN in 2025. Find the GCN Tech followup video that was published the day after.
This is mostly a proof of concept/early prototype. I wanted the user to be able to input a list of channels and it would then fetch all videos (with client-side JavaScript) and then display them. But it seems like that is not possible(?), or it is at least not straight forward due to security concerns.
It is written in JavaScript (yuck) but I tried to make it better and more pleasant using
- pure JavaScript without using any dependencies or npm-hell.
- ample use of JSDoc for type hints.
- an LSP (ts_ls) which catches errors and type checks.
- the Chrome debugger.
Check out YouTube Braider Prototype multiple hardcoded braids.