Release v2.20240825.0
SamantazFox
released this
25 Aug 19:29
·
131 commits
to master
since this release
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
andvisitordata
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
themaster
tag tracks the most recent commits of themaster
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 thelibxml
bindings (See #4256), versions prior to1.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 tonoreferrer 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
andtwitter:image
meta tags
API
- fixed the
local
parameter not applying toformatStreams
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)
- HTML: Sort playlists alphabetically in watch page drop down ([#4853], by @SamantazFox)
- Videos: Fix XSS vulnerability in description/comments ([#4852], thanks anonymous)
- YtAPI: Bump client versions ([#4849], by @SamantazFox)
- SigHelper: Fix inverted time comparison in 'check_update' ([#4845], by @SamantazFox)
- Storyboards: Various fixes and code cleaning ([#4153], by SamantazFox)
- Fix lint errors introduced in #4146 and #4295 ([#4876], thanks @syeopite)
- Search: Add support for Youtube URLs ([#4146], by @SamantazFox)
- Channel: Render age restricted channels ([#4295], thanks @ChunkyProgrammer)
- Ameba: Miscellaneous fixes ([#4807], thanks @syeopite)
- API: Proxy formatStreams URLs too ([#4859], thanks @colinleroy)
- UI: Add search button to search bar ([#4706], thanks @thansk)
- Add ability to set po_token and visitordata ID ([#4789], thanks @unixfox)
- Add support for an external signature server ([#4772], by @SamantazFox)
- Ameba: Fix Naming/VariableNames ([#4790], thanks @syeopite)
- Translations update from Hosted Weblate ([#4659])
- Ameba: Fix Lint/UselessAssign ([#4795], thanks @syeopite)
- HTML: Add rel="noreferrer noopener" to external links ([#4667], thanks @ulmemxpoc)
- Remove unused methods in Invidious::LogHandler ([#4812], thanks @syeopite)
- Ameba: Fix Lint/NotNilAfterNoBang ([#4796], thanks @syeopite)
- Ameba: Fix unused argument Lint warnings ([#4805], thanks @syeopite)
- Ameba: i18next.cr fixes ([#4806], thanks @syeopite)
- Ameba: Disable rules ([#4792], thanks @syeopite)
- Channel: parse subscriber count and channel banner ([#4785], thanks @ChunkyProgrammer)
- Player: Fix playback position of already watched videos ([#4731], thanks @Fijxu)
- Videos: Fix genre url being unusable ([#4717], thanks @meatball133)
- API: Fix out of bound error on empty playlists ([#4696], thanks @Fijxu)
- Handle playlists cataloged as Podcast ([#4695], thanks @Fijxu)
- API: Fix duplicated query parameters in proxied video URLs ([#4587], thanks @absidue)
- API: Return actual stream height, width and fps ([#4586], thanks @absidue)
- Preferences: Fix handling of modified source code URL ([#4437], thanks @nooptek)
- API: Fix URL for vtt subtitles ([#4221], thanks @karelrooted)
- Channels: Add sort options to streams ([#4224], thanks @src-tinkerer)
- API: Fix error code for disabled popular endpoint ([#4296], thanks @iBicha)
- Allow embedding videos in local HTML files ([#4450], thanks @tomasz1986)
- CI: Bump Crystal version matrix ([#4654], by @SamantazFox)
- YtAPI: Remove API keys like official clients ([#4655], by @SamantazFox)
- HTML: Use full URL in the og:image property ([#4675], thanks @Fijxu)
- Rewrite transcript logic to be more generic ([#4747], thanks @syeopite)
- CI: Run Ameba ([#4753], thanks @syeopite)
- CI: Add release based containers ([#4763], thanks @syeopite)
- move helm chart to a dedicated github repository ([#4711], thanks @unixfox)