flypig.co.uk

NewPipe-dev Diary

From March 2025 I'll be implementing a version of the NewPipe YouTube client for Sailfish OS, writing a daily blog as I go along. On this page I'll catalogue my progress.

Latest code changes will go on Codeberg just as soon as there's something concrete to share.

There is an index of all posts in case you want to jump to a particular day.

Gecko RSS feed Click the icon for the Gecko-dev Diary RSS feed.

Newpipe

5 most recent items

9 Mar 2025 : Preamble #
In the run-up to FOSDEM it got super-busy. I was preparing a talk, helping organise the Linux on Mobile stand, arranging a Sailfish Birds-of-a-Feather event, plus also working with my colleagues at the Turing on our conference arrangements too. The build up of work started all the way back in August, in fact.

So from August to February my focus outside of work has almost exclusively been on that. It sounds crazy, all leading up to just two days in February, but that's how it was.

But as the event approached I started to think about what I might do after FOSDEM. You know, once I got all of that glorious free time back! One obvious possibility was to start looking at the Gecko upgrade from ESR 91 to ESR 102, so I made a passing comment on the forum suggesting that I might pick up the work again after FOSDEM.

Quite quickly after this I heard that work had already been started on it behind the scenes. This is great news: more than anything else I believe Sailfish OS needs an up-to-date browser and anything that brings this closer has to be a good thing.

Since FOSDEM there's even been some public progress. New ESR102 branches have appeared in the embedlite-components and sailfish-browser repositories, each containing fresh commits. Unfortunately the really important changes are going to be in the gecko-dev repository and, at time of writing this, there's currently no new ESR102 branch there.

I'd love to help support the efforts and I'd also love for the work to happen in the open, but until something appears there, there's unfortunately no useful way for me to contribute. And in truth, that may be for the best. Coordinating a multi-developer project is a job in itself and often harder than just making the changes as a single developer.

So by the time I was behind the stand at FOSDEM I already knew I'd probably be looking for some other project to occupy my time.

You never know what sort of people you'll meet at FOSDEM. Working on a stand is, I honestly believe, a particularly special privilege. Everybody comes to you and shares their stories. You get to meet such an amazing range of fascinating people. It's self-selecting but otherwise unfiltered. I can honestly say that I met such wonderful people at FOSDEM, both new faces and old friends.

One unexpected interaction happened when one of the NewPipe developers came to the stand. There were several of the NewPipe team at FOSDEM, including Fabio Giovanazzi (Stypox), Fynn Godau (fynngodau) and Christian Schabesberger (Schabi). I think it was Schabi I spoke to and we had a really interesting conversation.

I hadn't heard of NewPipe before. It's a media-streaming client that gives access to content from the likes of YouTube, SoundCloud, PeerTube, Bandcamp and others. Unlike other clients NewPipe eschews the official service access APIs in favour of scraping the Web content directly or using reverse-engineered internal APIs. This allows the app to offer more privacy-respecting access.

"I like the sound of that", I thought.

But NewPipe is an Android app, which explains why I'd not heard of it. That means it's written primarily in Java. Outside of Android App Support, Java and Sailfish OS don't make great bedfellows. There's no Java virtual machine installed by default or available from the official repositories for example, which also means it would be a challenge getting a Java-based application through the Jolla Store review process.

Back to FOSDEM and I took a NewPipe leaflet, leaving it idly on the table amongst the other paraphernalia. As the day went on I was a little surprised about how many people commented on it. "Oh yes; I use NewPipe!" I heard at least a couple of times. This piqued my interest even more.

So I wondered: wouldn't it be neat if there was a version of NewPipe for Sailfish OS?

It's true that Sailfish OS already has a nice YouTube app in the form of MicroTube from Michał Szczepaniak. I like MicroTube, but I think it would be neat to have NewPipe functionality available as well. Unlike NewPipe MicroTube uses ytdl-core — written in JavaScript — for providing the underlying functionality for YouTube access. There's nothing wrong with that, but I was also taken with the NewPipe team's commitment to privacy, open source and keeping the software working in the face of the underlying YouTube API being updated.

So I've decided to have a go at writing a YouTube app using NewPipe. I'd say this is certainly going to be a smaller and less impactful project compared to the Gecko work. But I think it could be interesting for a number of reasons.

First, I don't see a lot of regular blogging happening about Sailfish OS app development. Don't get me wrong: Sailfish OS has a thriving app developer community, but mostly it doesn't seem to get serialised in prose.

Second, this is a technically unusual project, mixing C++ with Java and attempting to pull Android code into a Sailfish OS context. I think this will make it interesting to document.

Third, it may not result in the greatest utility in all the world, but NewPipe is a popular app and I think it has some functionality which would be nice to bring to Sailfish OS.

So why not? As with my Gecko diaries I plan to write about this daily. I'm aiming for a simple app: search YouTube then download or stream a video. My diary will run up until at least the first release, but I don't plan for this to be an Odyssey. Hopefully more of a scenic stroll in the park.

Just to be clear, it's not my intention to somehow replace or compete with existing apps like Microtube. Maybe in fact I'll just end up making some pull requests to Microtube after all this. But I don't see a problem in there being multiple YouTube clients available for Sailfish OS.

Tomorrow I'll take a look at the NewPipe Android app, before moving on to the technology that underpins it.

I'll post announcements about these diary entries on my Mastodon feed and after recent changes to this site, any replies to my Mastodon posts will also appear as comments here.

If you'd like to follow my progress, I'll be posting here every day and would love it if you fancy joining me.