Release 0.8.0 Beta: The Rewrite Is Here!

After about a year of work, it's finally time to showcase the effort that's been done to create a brand new FreeTube. FreeTube has been rewritten from scratch to create an all new enhanced experience. Forget about the bugs and issues that's been plaguing the last release for months as they will finally be gone! (Hopefully)

I want to give a huge shout out to the FreeTube community over on our Matrix channel. We have been extensively testing this rewrite for months now and the contributions that have been given along the way has been a tremendous effort to get this new FreeTube in the state that it's in. Thank you so much to each and every one of you that has been contributing with this rewrite. Regardless if you're contributing code or reporting bugs, I'm very proud of the teamwork that's been put into this and I really think it shows in this initial release.

If you're someone who has tried FreeTube in the past and wasn't pleased with it's stability or feature set, I highly encourage you to give FreeTube another try. The feedback that I've received compared to the old release has been extremely positive and the differences are night and day. I really hope you enjoy this new release.

There's almost too much that's been changed that it'll be difficult to mention every little thing in this blog post. If you'd like to learn a little bit more about the efforts that's went into this, I highly encourage you to read some of the other blog posts that go over why I decided to start this effort and the work that was done along the way.

In this blog, I'll be going over the highlights of what's changed.

Backup Your Subscriptions!

Backup Your Subscriptions!

Backup Your Subscriptions!

Backup Your Subscriptions!

I'll go over this more later, but I want to get this out of the way. Do this before you update please. You will NOT see your subscriptions transfer over automatically in this release.

A Brand New Code Base

FreeTube has been rewritten from the ground up to include an entirely new code base. The code in the last release of FreeTube was extremely messy and new features were difficult to include because of this. With this new code base, we're much more prepared to include the new features that you want. Everything is much cleaner under the hood and this will go a long way with future maintainability and updates. I can't stress enough how much nicer this is. You might not see it directly, but you'll see it with the greater ability to include new updates in the future.

A Brand New Design

The current UI design has done us well so far, however I believe it's time for a fresh coat of paint. While working on this rewrite, I've taken the time to improve the looks of FreeTube to something that looks a little more modern.

You'll see that we have a more similar design to modern day YouTube, while not being too modern. Every page within FreeTube has been retouched to include a new design. I really hope you like it!

A Brand New API

A while ago, we were given the unfortunate news that Omar Roth, the lead developer of Invidious, will be stepping down from development. You can read more about his announcement here along with my thoughts about this over here.

With the development of Invidious slowing down, the future of it is uncertain, though it seems like some small patches are starting to be made. Any major changes to YouTube could be trouble for the project as it might not get patched right away. It could even take a long time to patch this unless someone decides to step up and work on it.

When I started on this, I intended this next feature to be on the side while Invidious was still the primary way of obtaining data. With the above news and a lot of extra work put on this, I feel comfortable swapping the roles with this next feature.

FreeTube now features a brand new API that is built into the application. This local API features many projects owned by others combined with many custom elements created specifically for FreeTube by myself and others within our community. FreeTube will now be able to run independently on it's own without any reliance on an Invidious server.

That doesn't mean that Invidious is gone. It's extremely easy to change your API preference through the settings page, so pick your favorite! There's even a fallback option you can enable. When enabled, FreeTube will fallback to the opposite API when your preferred API fails, meaning that there's a much lower chance of experiencing interruptions when using FreeTube.

With the main Invidious instance shut down, https://invidious.snopyta.org has become the new default instance. I was given permission by the instance owner to do so, so thank you very much Perflyst!

This new local API even allowed us to provide a new feature that I wasn't originally intended on being able to provide.

Live Chat Support

This is something that wasn't provided by the Invidious API, however with the local API it's now possible! When watching a live video, you can now follow along with the live chat to give you more context while you're watching a stream. You won't be able to chat yourself, however being able to see the chat is a huge improvement to enjoyability.

Live chat is disabled if Invidious is your preferred option and fallback is disabled. Since a direct connection to YouTube is required, we don't want to enable this without your permission. You'll still be able to selectively enable it without changing your settings. You're completely in control of when and how this works.

Full Theme Support

Dark Themes are cool and all, but what if you could take it a little bit further? With this release of FreeTube, the theme is much more customizable! Pick between Light, Dark, and Black for your base theme, and pick a variety of colours for your primary and secondary colors. These settings will change everything from buttons to the video player itself, so go crazy!

This setup could open up even more themes in the future. ;)

Full Localization Support

Why should English get all the fun? With v0.8.0, FreeTube has full localization support and now supports a variety of different languages! We are starting off with 20 different language!

The current language list is as follows:

Do you not see your language in this list? We're actively accepting translations via Weblate. You can go to this link to get started! We'll accept any language that is at least 80% translated.

(The About page of FreeTube is not properly translated because it will be revamped in a future update)

Other Changes

There are many other smaller changes that have been included, some of which include:

Missing Features

When using v0.8.0, you might notice that a couple of things from v0.7.3 are missing. This is because of slightly unfortunate timing as I wanted to get this release out as soon as possible. The following features are currently missing from v0.8.0:

If any of these missing features are a deal breaker to you, then v0.7.3 should continue to work for you. These will be the first features I tackle for the next release, so hopefully you won't have to deal with the loss of these for long.

Migrating To The New Release

With the sheer amount of changes made to the app, it was inevitable that these changes wouldn't be backwards compatible. When you update, your subscriptions / history / favorites will not be transferring over. There's too many changes to keep them working without doing a lot of work that will become obsolete in a few months once more users are using this new release.

If you'd like to transfer your subscriptions over to the new release, please export them from FreeTube before you update. I originally intended to not allow you to import the FreeTube export into v0.8.0, however a PR was made by someone else so it ended up making it's way in. I may not keep this functionality in the app for long, so please transition your subscriptions as soon as you can.

If I end up removing the functionality before you had time to transition, there is a new project available that will convert your old FreeTube subscriptions to the new format, which can then be imported. You can check out this project over here.

History and Favorites will be unable to be imported at this time, however they won't be deleted. They'll still be available on your machine but won't be accessed by the new FreeTube. If you are interested in creating a migration script for these files, feel free to reach out.

Automated Builds

While not directly an update to FreeTube, it is an update to our workflow. FreeTube now has support for automated builds. This means that any change that is made to our code will automatically have binaries built with those changes. This allows those who don't want to wait for official updates are free to update more often than usual. There are no major differences with these builds compared to the ones you'll find on the website, so feel free to try them out if you want to see what the next update has in store.

If you head over to the GitHub Actions tab, you'll see the latest builds for FreeTube that have been generated. The first build you see at the top with a green check mark will be the latest build. Clicking on this will give you download links to the binaries generated by that build. You will have to be signed in to GitHub in order to download these. There isn't anything I can do about that unfortunetely.

Team Updates

Up to this point, I've been working on FreeTube almost entirely by myself. This rewrite has brought along some fresh new faces that have shown interest in the project and a select few have been getting their hands dirty and putting in some work towards getting FreeTube ready for this release. This is something I've been hoping to happen for a long time and I'm extremely happy to announce this.

FreeTube is no longer a solo effort, and we have grown to start a dev team! With today's release, I'm also announcing the first new member of the FreeTube Dev Team, GilgusMaximus.

Gilgus has been helping out a ton over the past few months, primarily helping get the local API up to parity with Invidious in time before the release. His help has been tremendous as I've been able to focus on other aspects of FreeTube while he gets the local API ready. I would not have gotten the local API finished in time without his help, so I'm very grateful to officially have him on the team!

You'll likely see him around over on the main GitHub repository answering questions along with being in the Matrix server. Be sure to say hi if you see him around!

Welcome once again Gilgus, glad to have you aboard!

Donation Updates

I don't like talking about donations very much. It's distracting to talk about them when everyone is here for the application itself and mentioning them too much essentially resorts to subliminally begging for donations. I've said this before and I'll say this again. Only donate if you really want to, I have no financial need for your donations and I'm doing just fine for myself. Donating to this project doesn't magically make progress go any faster or anything. I do this in my free time because I want to and that's all that matters to me.

With that said, we have officially reached our donation goal through Liberapay! (At least, it was when I originally wrote this, but we're close enough anyways)

This means that FreeTube is fully funded by your donations. This includes server / domain costs, along with being able to afford certs for signing the Windows and Mac versions of FreeTube.

This means that soon FreeTube will no longer be labeled as a virus on some machines (Seriously, why is this a thing?). More importantly, this means that Windows / Mac builds will soon be able to support automatic updates! I'm hoping to get this figured out in a future update, so stay on the lookout for those.

Thank you so much to each and every person who donates! This is yet another amazing milestone that we've been able to make today!

Conclusion

After one good look at this new app, I hope you understand why there hasn't been many FreeTube updates recently. I'm excited to finally get this out to everyone and I really hope that everyone enjoys this brand new update.

While a ton of time was spent trying to fix as many bugs as we could find, there's always a chance that we've missed a few of them along the way. We encourage you to send us what you find so that we can get them fixed in a timely manner.

Another huge thanks to everyone involved in making this release possible. This release wouldn't have been nearly as good without everyone's help and I'm extremely proud of the progress that we've made.

Expect some more updates in the future. I'm likely going to slow down a bit on development for the next month or so to recharge but I'll still be around interacting with everyone and making patches where necessary.

The latest downloads can be found on our website.

If you like what we do, please consider donating through Liberapay.

If you'd like to join the community, feel free to interact with us on Matrix, Mastodon, GitHub, or Reddit.

Take care! Looking forward to hearing everyone's thoughts on the new release!

NOTE: Packages are not signed and your virus protection may take notice. Please check out the F.A.Q. for more info.