This was written April 02, 2024
Introduction
Hello everyone, As mentioned in Learning to Draw People Challenge – Second Pause Discussion, I have been planning to develop a Youtube extension to improve my productivity. In this post, I’ll describe my current problems with using the platform, potential solutions, along with a roadmap of the features I want to include. Not that it will be a Firefox extension, as opposed to a chromium extensions. (Since that’s the browser I use)
I’ve been thinking about such a project for a while now. The goal is not only to develop an extension to benefit my personal requirement, but also to share my thought process when tackling a programming project and show people not just how one might accomplish such a project, but also how one even approaches problems with unknowns. I also want to help you gain the confidence to solve such problems yourself, and be able to tackle more personal issues when dealing with technology. And obviously, I’ll want not only to show the solution I end up with, but also the issues and struggles I encounter along the way.
Disclaimer
A disclaimer should be in effect: I do have a background in mathematics and computer science, along with industry experience in software engineering, which means I have experience with abstract thinking and this kind of problem solving. I’ve also already tried to solve this specific problem before (a while ago), which means I know some of the issues I might encounter. However, my expertise with the front-end (what you actually see when browsing the internet) is actually limited. Thus, I’ll be exploring new territories and share how I approach such unknowns. My solutions won’t be perfect, and I’m definitely not the best engineer around, but I’m hoping I can impart some knowledge regarding problem solving, how to break down a problem, how to debug a solution, and also give you the confidence necessary to tackle yourself such issues/annoyances with products you use on a regular basis.
Problems and Solutions
As I’ve mentioned previously, Youtube tends to be a time-sink for me. During the week, I get to my desk around the end of the day and just start browsing Youtube endlessly, mindlessly going through recommendations, and usually barely getting any lasting value from it. I often forget what I’ve watched, and rarely get lasting value from these sessions. And all that time “wasted” gets in the way of both my studies and any projects I would like to tackle. And let’s not forget this can lead to “sleep procrastination”, where I just keep watching videos instead of going to sleep, further compounding my issues.
Based on this, what are the issues I can identify and do something about? Here are the main points I can think of:
- The Youtube shorts are an endless stream of content with a low-barrier to entry. It means I can simply press a button to get the next bite-sized piece of content.
- The Youtube recommendations make it too easy to continue watching beyond the “current video”. It’s also easy to add a lot of interesting looking videos as extra tabs to watch afterwards. This isn’t surprising based the nature of modern content, which tends to be click-bait by nature, but it still tends to be unhealthy for me.
- By the nature of the incentives Youtube has put in place, I tend to have “FOMO” (fear of missing out) with a lot of recommended videos, which pushes me to continue watching more and more videos.
- I’m passively consuming Youtube, instead of actively using it. This is to say, I just take in whatever it gives me, without actually looking for it. In my opinion, there’s a big difference between passively and actively consuming content: looking for something and trying to engage with it, as opposed to being served different things and consuming them as they come. In the latter case, there is no incentive to fully engage with it, or search deeper to better understand it. It’s just something to be taken and thrown away afterwards. (This might not be your experience with it, but it’s been my personal and subjective experience over the years).
- By default, Youtube autoplays videos based on the next recommendation. However, that’s something that can be disabled and remembered. (I recommend disabling it)
Based on these points, I can see a few solutions I could enact. But first, I can notice a theme in terms of the mentioned issues:
- There is inertia when it comes to continuously consuming this sort of content. This is because the energy required to continue is too low. I would thus like to make the alternative easier, or more tempting.
- The platform wants to gain your attention and make you want to click on more videos, whether it’s something you truly care about or not. (Unsurprisingly, considering “clickthrough rate” is considered an important metric).
Based on these, here are the core potential solutions I see at a glance:
- Remove Shorts from the homepage.
- Prevent Shorts pages from scrolling infinitely.
- Remove recommendations from a video’s page.
- Remove recommendations shown at the end of a video.
- Limit recommendations to subscribed channels.
Note that I’m not sure whether I can implement these or not, but if I could, I believe I would have a healthier relationship with Youtube.
Goals
Accordingly, here is an initial list of goals/milestones I would like to accomplish. My initial scope:
- Create a basic extension with a straightforward change that can be tested locally. (Learning the basics of web extensions)
- Remove Shorts recommendations from the main page.
- Remove recommendations from a video page.
- Remove recommendations shown at the end of a video.
- Permanently add extension to my browser (Potentially by adding it to the Firefox extensions “library”).
With these in place, I think I would have a solid prototype to work with, and my experience should be improved.
Stretch Goals
There are a few extra features I think could be really useful to add (a few of which I’ve already mentioned), which aren’t core, nor part of the initial scope:
- Prevent Shorts page’s infinite scrolling. It might be ok to watch Shorts from time to time, but I shouldn’t allow them to turn into a never-ending stream of content.
- An interface to enable or disable different features.
- A way to disable recommendations for a specific channel, and store it into a list that can be edited in the future. There are some channels I find really “easy” to watch to “pass time”, but it’s not always good for me to go down that road.
- Add a way to track how much time is spent during a day on Youtube
- Add ability to trigger certain actions based on certain conditions (E.g.: After x-mins a day, disable Youtube).
- Add ability to treat music differently.
- Add ability to treat videos in other languages differently (E.g.: I presently consider watching Chinese videos more productive, no matter the content, since it’s helping me with my language acquisition).
Above, we have a sizeable list of features that could be useful, although I’m not sure how easy or realistic implementing them would be. It’s definitely interesting to think about such features, but it’s important to disregard them for now. I presented them to illustrate how easy it is to simply generate a lot of extra features, causing unnecessary “scope creep”. For this reason, I believe it’s important to keep in mind what the “MVP” (minimum viable product) is, and try to keep the scope at a minimum level (especially at this early stage). Otherwise, this project might spin out of control, and become too intimidating. For this reason, I will stick to the “core features” for now. Once those are complete, I might consider adding new features, based on my needs at that point (Which might be different from what I might predict now).
Conclusion
This is definitely something I’ve been wanting to do for a while, both to help others learn how to solve issues with software on their own, and as part of a different goal to “Reclaim My Focus”, since a lot of technology I use is trying to fight for my attention, whether through push-notifications, click-bait or retention-techniques. I may eventually have a separate post on that topic alone, along with other projects I’ll want to share.
With everyone’s needs being different, it can be useful to know how to personalize your own experience with the different tools you’re using, in order to improve it.
This said, I’m planning to start working on this project soon, and I hope it’ll have the desired effect. I also hope you will find it helpful, either through learning, being able to use such a tool, or making you consider about how you use technology.
Stay tuned for more content in the near future. Stay curious and keep on learning!