Skip to content

Releases: iv-org/invidious

Release v2.20241110.0

10 Nov 20:42
v2.20241110.0
5d2dd40
Compare
Choose a tag to compare

Wrap-up

This release is most importantly here to fix to the annoying "Youtube API returned error 400"
error that prevented all channel pages from loading.

If you're updating from the previous release, it provides no improvements on the ability to play
videos. If updating from a commit in-between release, it removes the "Please sign in" error caused
by a previous attempt at restoring video playback on large instances.

In the preferences, a new option allows for control of video preload. When enabled, this option
tells the browser to load the video as soon as the page is loaded (this used to be the default).
When disabled, the video starts loading only when the "play" button is pressed.

New interface languages available: Bulgarian, Welsh and Lombard

New dependency required: tzdata.

An HTTP proxy can be configured directly in Invidious, if needed.
NOTE: In that case, it is recommended to comment out force_resolve.

New features & important changes

For users

  • Channels: Fix "Youtube API returned error 400" error preventing channel pages from loading
  • Channels: Shorts can now be sorted by "newest", "oldest" and "popular"
  • Preferences: Addition of the new "preload" option
  • New interface languages available: Bulgarian, Welsh and Lombard
  • Added "Filipino (auto-generated)" to the list of caption languages available
  • Lots of new translations from Weblate

For instance owners

  • Allow the configuration of an HTTP proxy to talk to Youtube
  • Invidious tries to reconnect to inv_sig_helper if the socket is closed
  • The instance list is downloaded in the background to improve redirection speed
  • New colorize_logs option makes each log level a different color

For developpers

  • /api/v1/channels/{id}/shorts now supports the sort-by parameter with the following values:
    newest, oldest and popular
  • Older /api/v1/channels/xyz/{id} (tab name before UCID) were removed
  • API/Search: New video metadata available: isNew, is4k, is8k, isVr180, isVr360,
    is3d and hasCaptions

Bugs fixed

User-side

  • Channels: The second page of shorts now loads as expected
  • Channels: Fixed intermittent empty "playlists" tab
  • Search: Fixed youtu.be URLs not being properly redirected to the watch page
  • Fixed DB::MappingException error on the subscriptions feed (due to missing tzdata in docker)
  • Switching to another instance is much faster
  • Fixed an "invalid byte sequence" error when subscribing to a playlist
  • Videos: Playback URLs were sometimes broken when cached and inv_sig_helper was used

For instance owners

  • Fix force_resolve being ignored in some cases

API

  • API/Videos: Fixed live_now and premiere_timestamp sometimes not having the right values

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

  • API: Add "sort_by" parameter to channels/shorts endpoint (#5071, thanks @iBicha)
  • Docker: Install tzdata in Dockerfile (#5070, by @SamantazFox)
  • Videos: Stop using TVHTML5_SIMPLY_EMBEDDED_PLAYER (#5063, thanks @unixfox)
  • Routing: Deprecate old channel API routes (#5045, by @SamantazFox)
  • Videos: use WEB client instead of WEB CREATOR (#4984, thanks @unixfox)
  • Parsers: Fix parsing live_now and premiere_timestamp (#4934, thanks @absidue)
  • Stale bot updates (#5060, thanks @syeopite)
  • Channels: Fix "Youtube API returned error 400" (#5059, by @SamantazFox)
  • Channels: Fix for live videos (#5027, thanks @iBicha)
  • Locales: Add Bulgarian, Welsh and Lombard to the list (#5046, by @SamantazFox)
  • Shards: Update database dependencies (#5034, by @SamantazFox)
  • Logger: Add color support for different log levels (#4931, thanks @Fijxu)
  • Fix named arg syntax when passing force_resolve (#4754, thanks @syeopite)
  • Use make_client instead of calling HTTP::Client (#4709, thanks @syeopite)
  • Add "Filipino (auto-generated)" to the list of caption languages (#4995, by @SamantazFox)
  • Makefile: Add MT option to enable the 'preview_mt' flag (#4993, by @SamantazFox)
  • SigHelper: Reconnect to signature helper (#4991, thanks @Fijxu)
  • Fix player menus hiding onHover ready (#4750, thanks @giacomocerquone)
  • Use connection pools when requesting images from YouTube (#4326, thanks @syeopite)
  • Add support for using Invidious through a HTTP Proxy (#4270, thanks @syeopite)
  • Search: Fix 'youtu.be' URLs in sanitizer (#4894, by @SamantazFox)
  • Ameba: Disable Style/RedundantNext rule (#4888, thanks @syeopite)
  • Playlists: Fix 'invalid byte sequence' error when subscribing (#4887, thanks @DmitrySandalov)
  • Parse more metadata badges for SearchVideos (#4863, thanks @ChunkyProgrammer)
  • Translations update from Hosted Weblate (#4862, thanks to our many translators)
  • Videos: Convert URL before putting result into cache (#4850, by @SamantazFox)
  • HTML: Add error message to "search issues on GitHub" link (#4652, thanks @tracedgod)
  • Preferences: Add option to control preloading of video data (#4122, thanks @Nerdmind)
  • Performance: Improve speed of automatic instance redirection (#4193, thanks @syeopite)
  • Remove myself from CODEOWNERS on the config file (#4942, by @TheFrenchGhosty)
  • Update latest version WEB_CREATOR + fix comment web embed (#4930, thanks @unixfox)
  • use WEB_CREATOR when po_token with WEB_EMBED as a fallback (#4928, thanks @unixfox)
  • Revert "use web screen embed for fixing potoken functionality"
  • use web screen embed for fixing potoken functionality (#4923, thanks @unixfox)

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!