Skip to content

Releases: iv-org/invidious

Release v2.20240825.2

26 Aug 20:57
v2.20240825.2
4782a67
Compare
Choose a tag to compare

This releases fixes the container tags pushed on quay.io.
Previously, the ARM64 build was released under the latest tag, instead of latest-arm64.

Full list of pull requests merged since the last release (newest first)

CI: Fix docker container tags ([#4883], by @SamantazFox)

Release v2.20240825.1

25 Aug 20:32
v2.20240825.1
3e17d04
Compare
Choose a tag to compare

Add patch component to be semver compliant and make github actions happy.

Full list of pull requests merged since the last release (newest first)

Allow manual trigger of release-container build (#4877, thanks @syeopite)

Release v2.20240825.0

25 Aug 19:29
v2.20240825
ffc70a5
Compare
Choose a tag to compare

New features & important changes

For users

  • The search bar now has a button that you can click!
  • Youtube URLs can be pasted directly in the search bar. Prepend search query with a
    backslash (\) to disable that feature (useful if you need to search for a video whose
    title contains some youtube URL).
  • On the channel page the "streams" tab can be sorted by either: "newest", "oldest" or "popular"
  • Lots of translations have been updated (thanks to our contributors on Weblate!)
  • Videos embedded in local HTML files (e.g: a webpage saved from a blog) can now be played

For instance owners

  • Invidious now has the ability to provide a po_token and visitordata to Youtube in order to
    circumvent current Youtube restrictions.
  • Invidious can use an (optional) external signature server like inv_sig_helper. Please note that
    some videos can't be played without that signature server.
  • The Helm charts were moved to a separate repo: https://github.com/iv-org/invidious-helm-chart
  • We have changed how containers are released: the latest tag now tracks tagged releases, whereas
    the master tag tracks the most recent commits of the master branch ("nightly" builds).

For developpers

  • The versions of Crystal that we test in CI/CD are now: 1.9.2, 1.10.1, 1.11.2, 1.12.1.
    Please note that due to a bug in the libxml bindings (See #4256), versions prior to 1.10.0
    are not recommended to use.
  • Thanks to @syeopite, the code is now ameba compliant.
  • Ameba is part of our CI/CD pipeline, and its rules will be enforced in future PRs.
  • The transcript code has been rewritten to permit transcripts as a feature rather than being
    only a workaround for captions. Trancripts feature is coming soon!
  • Various fixes regarding the logic interacting with Youtube
  • The sort_by parameter can be used on the /api/v1/channels/{id}/streams endpoint. Accepted
    values are: "newest", "oldest" and "popular"

Bugs fixed

User-side

  • Channels: fixed broken "subscribers" and "views" counters
  • Watch page: playback position is reset at the end of a video, so that the next time this video
    is watched, it will start from the beginning rather than 15 seconds before the end
  • Watch page: the items in the "add to playlist" drop down are now sorted alphabetically
  • Videos: the "genre" URL is now always pointing to a valid webpage
  • Playlists: Fixed Could not parse N episodes error on podcast playlists
  • All external links should now have the rel attibute set to noreferrer noopener for
    increased privacy.
  • Preferences: Fixed the admin-only "modified source code" input being ignored
  • Watch/channel pages: use the full image URL in og:image and twitter:image meta tags

API

  • fixed the local parameter not applying to formatStreams on /api/v1/videos/{id}
  • fixed an Index out of bounds error hapenning when a playlist had no videos
  • fixed duplicated query parameters in proxied video URLs
  • Return actual video height/width/fps rather than hard coded values
  • Fixed the /api/v1/popular endpoint not returning a proper error code/message when the
    popular page/endpoint are disabled.

Full list of pull requests merged since the last release (newest first)

Release v2.20240427

26 Apr 22:48
v2.20240427
eda7444
Compare
Choose a tag to compare

Major bug fixes:

Minor bug fixes:

Other improvements:


Tagged releases are also back!
The format is as simple as <MAJOR><dot><YYYY><MM><DD>

Major releases break compatibility with a previous major release. Because the releases
tagging system was not used for a long time, we're starting back at 2 as the major version.
Zero being the previous tagged releases, and One being the "rolling release era".

Hotfix 0.20.1

19 Nov 01:50
05988c1
Compare
Choose a tag to compare

! IMPORTANT !

Releases are deprecated, build directly from master


This adds support for QUIC as a workaround to #811.

It is recommended to update to this version immediately.

Version 0.20.0: Custom Playlists

06 Nov 04:42
e561291
Compare
Choose a tag to compare

It's been quite a while since the last release! There've been 198 commits from 27 contributors.

A couple smaller features have since been added. Channel pages and playlists in particular have received a bit of a face-lift, with both now displaying their descriptions as expected, and playlists providing video count and published information. Channels will also now provide video descriptions in their RSS feed.

Turkish (tr), Chinese (zh-TW, in addition to zh-CN), and Japanese (jp) are all now supported languages. Thank you as always to the hard work done by translators that makes this possible.

The feed menu and default home page are both now configurable for registered and unregistered users, and is quite a bit of an improvement for users looking to reduce distractions for their daily use.

For Administrators

feed_menu and default_home are now configurable by the user, and have therefore been moved into default_user_preferences:

feed_menu: ["Popular", "Top"]
default_home: Top

# becomes:

default_user_preferences:
  feed_menu: ["Popular", "Top"]
  default_home: Top

Several new options have also been added, including the ability to set a support email for the instance using admin_email: EMAIL, and forcing the use of a specific connection in the case of rate-limiting using force_resolve (see below).

For Developers

Authenticated endpoints are now properly documented, as well how to generate and use API tokens. My hope is that this makes some of the more interesting endpoints more accessible for developers to use in their own applications.

API endpoints for interacting with custom playlists have also been added with documentation available here.

Custom playlists

This is probably the feature that has been the longest in the pipe and that I'm quite pleased is now implemented. It is now possible to create custom playlists, which can be played and edited through Invidious. API endpoints have also been added (documentation here).

Overall I'm quite pleased with how smoothly it has been rolled out and with the experience so far, and I'm exctited for how it can be extended and improved in future.

instances.invidio.us

It is now possible to view a list of public instances (as provided in the wiki) through an API or a pretty new interface here. It combines uptime information, statistics from each instance and basic information already provided in the wiki. I expect it should be much more user-friendly than compiling the information yourself, and is already used by Invidition to provide a list of instances for users to choose from.

The site itself is licensed under the AGPLv3 and the source is available here.

Video unavailable #811

Many users have likely noticed this error message if using Invidious directly or through another service, such as FreeTube. This issue is caused by rate-limiting by Google, and is not a new issuee for projects like Invidious (notably youtube-dl) and appears to be affecting smaller, private instances as well.

There is not a permanent fix for administrators currently, however there is some information available here that may provide a temporary solution. Unfortanately, in most cases the best option is to wait for the instance to be unbanned or to move the instance to a different IP. A more informative error message is also now provided, which should help an administrator more quickly diagnose the problem.

For those interested, I would recommend following #811 for any future progress on the issue.

BAT verified publisher

I'm quite late to this announcement, however I'm pleased to mention that Invidious is now a BAT verified publisher! I would recommend looking here or here for learning more about what it is and how it works. Overall I think it makes an interesting substitute for services like Liberapay, and a (hopefully) much less-intrusive alternative to direct advertising.

BAT is combined under other cryptocurrencies below. Currently there's a fairly significant delay in payout, which is the reason for the large fluctuation in crypto donations between September and October (and also the reason for the late announcement).

Release schedule

Currently I'm quite pleased with the current state of the project. There's plenty of things I'd still like to add, however at this point I expect the rate of most new additions will slow down a bit, with more focus on stabililty and any long-standing bugs.

Because of this, I'm planning on releasing a new version quarterly, with any necessary hotfixes being pushed as a new patch release as necessary. As always it will be possible to run Invidious directly from master if you'd still like to have the lastest version.

I'll plan on providing finances each release, with a similar monthly breakdown as below.

Finances for September 2019

Donations

  • Patreon : $64.37
  • Liberapay : $76.04
  • Crypto : ~$99.89 (converted from BAT, BCH, BTC)
  • Total : $240.30

Expenses

  • invidious-lb1 (nyc1) : $10.00 (load balancer)
  • invidious-update1 (s-1vcpu-1gb) : $5.00 (updates feeds)
  • invidious-node1 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node2 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node3 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node4 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node5 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node6 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node7 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node8 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node9 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node10 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node11 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node12 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node13 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node14 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node15 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node16 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-db1 (s-4vcpu-8gb) : $40.00 (database)
  • Total : $135.00

Finances for October 2019

  • Liberapay : $134.40
  • Crypto : ~$8.29 (converted from BAT, BCH, BTC)
  • Total : $142.69

Expenses

  • invidious-lb1 (nyc1) : $5.00 (load balancer)
  • invidious-lb2 (nyc1) : $5.00 (load balancer)
  • invidious-lb3 (nyc1) : $5.00 (load balancer)
  • invidious-lb4 (nyc1) : $5.00 (load balancer)
  • invidious-update1 (s-1vcpu-1gb) : $5.00 (updates feeds)
  • invidious-node1 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node2 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node3 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node4 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node5 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node6 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node7 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node8 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node9 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node10 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node11 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node12 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node13 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node14 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node15 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node16 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node17 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node18 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-db1 (s-4vcpu-8gb) : $40.00 (database)
  • Total : $155.00

Hotfix 0.19.1

30 Jul 00:49
ff5d79e
Compare
Choose a tag to compare

Minor fix to video extractor after changes by YouTube.

It is recommended to update to this version immediately.

Version 0.19.0: Communities

13 Jul 04:48
9e2a65a
Compare
Choose a tag to compare

Hello again everyone! Focus this month has mainly been on improving playback performance, along with a couple new features I'd like to announce. There have been 109 commits this past month from 10 contributors.

This past month has seen the addition of Chinese (zh-CN) and Icelandic (is) translations. I would like to give a huge thanks to their respective translators, and again an enormous thanks to everyone who helps translate the site.

I'm delighted to mention that FreeTube 0.6.0 now supports 1080p thanks to the Invidious API. I would very much recommend reading the relevant post for some more information on how it works, along with several other major improvements. Folks that are interested in adding similar functionality for their own projects should feel free to get in touch.

This past month there has been quite a bit of work on improving memory usage and improving download and playback speeds. As mentioned in the previous release, some extra hardware has been allocated which should also help with this. I'm still looking for ways to improve performance and feedback is always appreciated.

Along with performance, a couple quality of life improvements have been added, including author thumbnails and banners, clickable titles for embedded videos, and better styling for captions, among some other enhancements.

Communities

Support for YouTube's communities tab has been added. It's a very interesting but surprisingly unknown feature. Essentially, providing comments for a channel, rather than a video, where an author can post updates for their subscribers.

It's commonly used to promote interesting links and foster discussion. I hope this feature helps people find more interesting content that otherwise would have been overlooked.

For Developers

For accessing channel communities, an /api/v1/channels/comments/:ucid endpoint has been added, with similar behavior and schema to /api/v1/comments/:id, with an extra attachment field for top-level comments. More info on usage and available data can be found in the wiki.

An /api/v1/auth/feeds endpoint has been added for programmatically accessing a user's subscription feed, with options for displaying notifications and filtering an existing feed.

An /api/v1/search/suggestions endpoint has been added for retrieving suggestions for a given query.

For Administrators

It is now possible to disable more resource intensive features, such as downloads and DASH functionality by adding disable_proxy to your config. See #453 and the Wiki for more information and example usage. I expect this to be a big help for folks with limited bandwidth when hosting their own instances.

Finances

Donations

  • Patreon : $38.39
  • Liberapay : $84.85
  • Crypto : ~$0.00 (converted from BCH, BTC)
  • Total : $123.24

Expenses

  • invidious-load1 (nyc1) : $10.00 (load balancer)
  • invidious-update1 (s-1vcpu-1gb) : $5.00 (updates feeds)
  • invidious-node1 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node2 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node3 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node4 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node5 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node6 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node7 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node8 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node9 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node10 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-db1 (s-4vcpu-8gb) : $40.00 (database)
  • Total : $105.00

The goal on Patreon has been updated to reflect the above expenses. As mentioned above, the main reason for more hardware is to improve playback and download speeds, although I'm still looking into improving performance without allocating more hardware.

As always I'm grateful for everyone's support and feedback. I'll see you all next month.

Version 0.18.0: Native Notifications and Optimizations

06 Jun 04:12
89725df
Compare
Choose a tag to compare

Hope everyone has been doing well. This past month there have been 97 commits from 10 contributors. For the most part changes this month have been on optimizing various parts of the site, mainly subscription feeds and support for serving images and other assets.

I'm quite happy to mention that support for Greek (el) has been added, which I hope will continue to make the site accessible for more users.

Subscription feeds will now only update when necessary, rather than periodically. This greatly lightens the load on DB as well as making the feeds generally more responsive when changing subscriptions, importing data, and when receiving new uploads.

Caching for images and other assets should be greatly improved with #456. JavaScript has been pulled out into separate files where possible to take advantage of this, which should result in lighter pages and faster load times.

This past month several people have encountered issues with downloads and watching high quality video through the site, see #532 and #562. For this coming month I've allocated some more hardware which should help with this, and I'm also looking into optimizing how videos are currently served.

For Developers

viewCount is now available for /api/v1/popular and all videos returned from /api/v1/auth/notifications. Both also now provide "type" for indicating available information for each object.

An /authorize_token page is now available for more easily creating new tokens for use in applications, see this comment in #473 for more details.

A POST /api/v1/auth/notifications endpoint is also now available for correctly returning notifications for 150+ channels.

For Administrators

There are two new schema changes for administrators: views for adding view count to the popular page, and feed_needs_update for tracking feed changes.

As always the relevant migration scripts are provided which should run when following instructions for updating. Otherwise, adding check_tables: true to your config will automatically make the required changes.

Native Notifications

It is now possible to receive Web notifications from subscribed channels.

You can enable notifications by clicking "Enable web notifications" in your preferences. Generally they appear within 20-60 seconds of a new video being uploaded, and I've found them to be an enormous quality of life improvement.

Although it has been fairly stable, please feel free to report any issues you find here or emailing me directly at omarroth@protonmail.com.

Important to note for administrators is that instances require use_pubsub_feeds and must be served over HTTPS in order to correctly send web notifications.

Finances

Donations

  • Patreon : $49.73
  • Liberapay : $100.57
  • Crypto : ~$11.12 (converted from BCH, BTC)
  • Total : $161.42

Expenses

  • invidious-load1 (nyc1) : $10.00 (load balancer)
  • invidious-update1 (s-1vcpu-1gb) : $5.00 (updates feeds)
  • invidious-node1 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node2 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node3 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node4 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node5 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node6 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-db1 (s-4vcpu-8gb) : $40.00 (database)
  • Total : $85.00

See you all next month!

Version 0.17.0: Player and Authentication API

06 May 04:04
5e2889e
Compare
Choose a tag to compare

Hello everyone! This past month there have been 130 commits from 11 contributors. Large focus has been on improving the player as well as adding API access for other projects to make use of Invidious.

There have also been significant changes in preparation of native notifications (see #195, #469, #473, and #502), and playlists. I expect to see both of these to be added in the next release.

I'm quite happy to mention that new translations have been added for Esperanto (eo) and Ukranian (uk). Support for pluralization has also been added, so it should now be possible to make a more native experience for speakers in other languages. The system currently in place is a bit cumbersome, so for any help using this feature please get in touch!

For Administrators

A check_tables option has been added to automatically migrate without the use of custom scripts. This method will likely prove to be much more robust, and is currently enabled for the official instance. To prevent any unintended changes to the DB, check_tables is disabled by default and will print commands before executing. Having this makes features that require schema changes much easier to implement, and also makes it easier to upgrade from older instances.

As part of #303, a cache_annotations option has been added to speed up access from /api/v1/annotations/:id. This vastly improves the experience for videos with annotations. Currently, only videos that contain legacy annotations will be cached, which should help keep down the size of the cache. cache_annotations is disabled by default.

For Developers

An authorization API has been added which allows other applications to read and modify user subscriptions and preferences (see #473). Support for accessing user feeds and notifications is also planned. I believe this feature is a large step forward in supporting syncing subscriptions and preferences with other services, and I'm excited to see what other developers do with this functionality.

Support for server-to-client push notifications is currently underway. This allows Invidious users, as well as applications using the Invidious API, to receive notifications about uploads in near real-time (see #469). An /api/v1/auth/notifications endpoint is currently available. I'm very excited for this to be integrated into the site, and to see how other developers use it in their own projects.

An /api/v1/storyboards/:id endpoint has been added for accessing storyboard URLs, which allows developers to add video previews to their players (see below).

Player

Support for annotations has been merged into master with #303, thanks @glmdgrielson! Annotations can be enabled by default or only for subscribed channels, and can also be toggled per video. I'm extremely proud of the progress made here, and I'm so thankful to everyone that has made this possible. I expect this to be the last update with regards to supporting annotations, but I do plan on continuing to improve the experience as much as possible.

The Invidious player now supports video previews and a corresponding API endpoint /api/v1/storyboards/:id has been added for developers looking to add similar functionality to their own players. Not much else to say here. Overall it's a very nice quality of life improvement and an attractive addition to the site.

It is now possible to select specific sources for videos provided using DASH (see #34). I would consider support largely feature complete, although there are still several issues to be fixed before I would consider it ready for larger rollout. You can watch videos in 1080p by setting Default quality to dash in your preferences, or by adding &quality=dash to the end of video URLs.

Finances

Donations

  • Patreon : $49.73
  • Liberapay : $63.03
  • Crypto : ~$0.00 (converted from BCH, BTC)
  • Total : $112.76

Expenses

  • invidious-load1 (nyc1) : $10.00 (load balancer)
  • invidious-update1 (s-1vcpu-1gb) : $5.00 (updates feeds)
  • invidious-node1 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node2 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node3 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node4 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-node5 (s-1vcpu-1gb) : $5.00 (web server)
  • invidious-db1 (s-4vcpu-8gb) : $40.00 (database)
  • Total : $80.00

That's all for now. Thanks!