Console #183 - Interview with Stypox of New Pipe - A libre streaming front-end for Android
Featuring Librum reader, Ladder, and Livewire.
🤝 Sponsor
This space is reserved for sponsors that support us to keep the newsletter going! Want to support Console? Send us a note at osh@codesee.io
🏗️ Projects
Browse through open source projects on OpenSourceHub.io, add your project to get more exposure and connect with other maintainers and contributors!
Librum
Librum is an e-book reader with which you can manage your own online library and access it from any device anytime, anywhere. It has features like note-taking, bookmarking, and highlighting.
language: C++ stars: 1321 last commit: 5 days
repo: github.com/Librum-Reader/Librum
site: librumreader.com
Ladder
Ladder is a web proxy to help bypass paywalls. This is a self hosted version of 1ft.io and 12ft.io.
language: Go stars: 1995 last commit: today
repo: github.com/everywall/ladder
Livewire
Livewire is a full-stack framework for Laravel that allows you to build dynamic UI components without leaving PHP.
language: PHP stars: 21004 last commit: 1 day
repo: github.com/livewire/livewire
site: livewire.laravel.com
NewPipe
A libre lightweight streaming front-end for Android which supports YouTube, PeerTube, SoundCloud, and more
language: Java stars: 26036 last commit: 2 weeks
repo: github.com/TeamNewPipe/NewPipe
site: newpipe.net
🎙️ Interview with Stypox of New Pipe - A libre streaming front-end for Android
Hey! Thanks for joining us! Let us start with your background.
I am Stypox, I am Italian and European, and I am currently studying computer science at University. I am fond of free software and have contributed to various projects since I learned how to code. I especially like building mobile applications because they can easily provide services to users right from their phone. I like modern technologies and I recently learned and used Rust (which I would strongly suggest even for e.g. backends), Kotlin (less verbose and less error-prone than Java) and Jetpack Compose (far better than normal Android development).
An interesting clue about how I started to code is the following: I was on a long trip by car and had nothing to do, so I decided to start to read a random C++ guide online. I got so excited about it that by the following long trip, I had already bought the book “The C++ Programming Language”.
What’s your most controversial programming opinion?
It seems like programming languages and frameworks are becoming more and more cluttered and slow, up to the point where the constant chip speedups do not keep up anymore. This is a serious problem for older devices that used to work well 5 years ago, but now are just too slow. I think we should stop putting layers of abstractions on top of one another, but rather reinvent frameworks and programming languages to achieve modernity and ease of use without sacrificing performance. Two great examples of this are Jetpack Compose and Rust, which provide modern and fast APIs.
Why was NewPipe started?
Back when NewPipe started, no serious YouTube frontend for Android existed. Therefore, NewPipe was created to provide a FOSS YouTube experience without trackers and with some additional features the official app doesn’t have.
How does NewPipe work?
NewPipe obtains the information to show on the screen in basically the same way a browser does it. Therefore, it makes requests to YouTube servers, pretending to actually be a browser, and it gets back data.
Where did the name for NewPipe come from?
One initial name proposal was GnuTube, however, considering such a name would have probably caused trademark issues, the “Gnu” was turned into “New”, and the “Tube” into “Pipe”.
Are there any overarching goals of NewPipe that drive design or implementation? If so, what trade-offs have been made in NewPipe as a consequence of these goals?
NewPipe does not only want to be a frontend for YouTube, but it also wants to promote streaming services that are more free. For this reason, multiservice support was introduced a few years ago, including support for PeerTube.
What is the most challenging problem that’s been solved in NewPipe, so far?
I would like to turn this question around: “what is the biggest problem that has NOT been solved yet?”. NewPipe’s player has been quite buggy from the beginning, and the code kept growing into spaghetti. Every time we fixed a part of the player, some other part would break, wasting a lot of user and developer time. We tried to do various refactors of the player, and although things have improved, we don’t think it’s possible to continue with the current structure and we would like to start afresh on that component.
Issues: https://github.com/TeamNewPipe/NewPipe/issues/8616 https://github.com/TeamNewPipe/NewPipe/issues/7673
Refactor attempts: https://github.com/TeamNewPipe/NewPipe/pull/8170 https://github.com/TeamNewPipe/NewPipe/pull/5371
Are there any projects similar to NewPipe? If so, what were they lacking that made you consider building something new?
NewPipe was one of the first apps of its kind, but later many more alternatives emerged, e.g. Invidious, SkyTube. Also, the fact that NewPipe’s extractor is separate from the app allowed some projects to use it directly without reinventing the wheel, e.g. LibreTube, Piped. Some community-maintained forks of NewPipe exist, too: e.g. NewPipe x SponsorBlock, NewPipe preunified, BraveNewPipe, …
How did the project get popular?
For various reasons:
publishing the app on F-Droid has provided a lot of visibility among FOSS supporters
there has been some media coverage
NewPipe was trending on Hacker News a couple of times
thanks to some NewPipe features that the official YouTube app doesn’t have, NewPipe could spread among non-techy people, too
What are you most proud of?
When people have different ideas about how UIs should behave, it can be difficult to find a solution fitting everyone. This usually requires a deep understanding of the reasons behind the various standings in the community. A case when a common solution was successfully found was when we needed to add more buttons to the video details page: https://github.com/TeamNewPipe/NewPipe/pull/4534#issuecomment-741700417
Did NewPipe ever face any legal issues?
This is how close we got to legal issues, however it ended well in a few days without us doing anything, so I don’t think it counts that much: https://newpipe.net/blog/pinned/announcement/newpipe-net-dmca-google-search/
How do you balance your work on open-source with your day job and other responsibilities?
That’s quite a difficult question. Working on open-source and on personal programming projects is often a source of happiness and satisfaction for me, so whenever I have time, I am more than happy to spend it on those things. However, considering that I am still studying, my timetable is quite messed up, and it happens quite often that I don’t have time to work on any open source or personal project for months. I always try to keep an eye on issues and IRC messages though, to find out about emergencies.
Have you ever experienced burnout? How did you deal with it?
Burnout for me happens when the next thing that needs to be done is quite big, but I’ve been out of the loop for a while, e.g. because of other duties. I tend to use some willpower anyway, and if that doesn’t work, I may set the project aside for some time and try to focus on something more exciting to get out of the burnout.
What is the best way for a new developer to contribute to NewPipe?
We would like to rewrite large chunks of the codebase soon, so contributors can chip in on https://github.com/TeamNewPipe/NewPipe/discussions/10118. We are not open for new pull requests at the moment, except for bug fixes.
Where do you see the project heading next?
We are planning a big rewrite to bring more stability and a modern look into NewPipe. Maintaining the current code has gotten a bit complicated, and we would like to switch to newer technologies. https://github.com/TeamNewPipe/NewPipe/discussions/10118
Are there any other projects besides NewPipe that you’re working on?
I am building a FOSS voice assistant for Android named Dicio: https://github.com/Stypox/dicio-android. It already works, although it’s not perfect and has a limited number of skills available. I started this big project because I did not find any FOSS and on-device alternative to Google assistant.
Where do you see open-source heading next?
AI seems to be the next big thing, and there has been some open-source activity about it recently. It’s not impossible for open-source AI projects to keep up with big corporations, however there are still some things that need to be figured out, starting from the definition of when open AI really is. Which requirements do we need among these three, to define an AI as open: need open models, open training data and open source training code? And even if a project has all three, how can the normal user benefit from this, considering that AI models are generally not reproducible and require a lot of computational power and disk space to train and self-host?
Thanks for reading Console by CodeSee.io! Subscribe for free to receive the next interview.
Interested in sponsoring the newsletter or know of any cool projects or interesting developers you want us to interview? Reach out at osh@codesee.io or mention us @ConsoleWeekly!