Fijxu
57ba257233
CI: Unify ARM64 and AMD64 Dockerfiles ( #5700 )
...
* CI: Unify ARM64 and AMD64 Dockerfiles
* chore: remove replacement of Dockerfile in docker-compose.yml for ci.yml build-docker job
* Combine images into manifest list
* fix wrong tag for nightly container release
* forgot this ^^'
2026-05-04 14:59:24 -04:00
Fijxu
e012334975
chore: update Crystal to 1.20.1 in OCI
2026-05-01 14:12:15 -04:00
Fijxu
85a078a580
CI: update Crystal 1.20.0 to 1.20.1 in ci.yml matrix ( #5703 )
2026-04-30 13:18:49 -04:00
Fijxu
afea61bb8f
CI: display progress and stats when compiling Invidious in ci.yml matrix ( #5696 )
2026-04-28 06:42:45 -04:00
Fijxu
fd313e0107
CI: Bump Crystal version matrix ( #5691 )
...
* CI: Bump Crystal version matrix
Add Crystal 1.19.2 and 1.20.0
* update crystal 1.19.1 to 1.19.2
2026-04-27 20:15:11 -04:00
Fijxu
0c600988ca
chore: update Crystal to 1.20.0 in OCI ( #5692 )
...
* chore: update Crystal to 1.20.0 in amd64 OCI
* use alpine:edge with crystal 1.20.0 to build Invidious, use alpine:3.23 for final layer
2026-04-27 20:11:51 -04:00
Cameron Radmore
264e7c24e9
player: Use correct time parameter for YouTube embed redirects ( #5660 )
2026-04-26 14:02:11 -04:00
Fijxu
9eda6e5bc4
chore: lint api/v1/channels.cr ( #5693 )
2026-04-25 16:57:45 -04:00
Fijxu
73c749f13f
Encapsulate helpers constants and functions inside it's own Helpers module ( #5639 )
...
It encapsulates all related code from helpers.cr into it's own module.
2026-04-25 16:57:33 -04:00
Fijxu
bc64cd9b67
Encapsulate translation constants and functions inside it's own module ( #5637 )
...
It encapsulates all related code from translation into it's own module.
Required for the migration to the crystal stdlib logger: https://github.com/iv-org/invidious/pull/5426
2026-04-25 16:55:55 -04:00
dependabot[bot]
54365c0e2a
Bump crystal-lang/install-crystal from 1.9.1 to 1.9.2 ( #5686 )
...
Bumps [crystal-lang/install-crystal](https://github.com/crystal-lang/install-crystal ) from 1.9.1 to 1.9.2.
- [Release notes](https://github.com/crystal-lang/install-crystal/releases )
- [Commits](https://github.com/crystal-lang/install-crystal/compare/v1.9.1...v1.9.2 )
---
updated-dependencies:
- dependency-name: crystal-lang/install-crystal
dependency-version: 1.9.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-14 01:11:37 +02:00
ChunkyProgrammer
606467c693
Playlists: fix parsing error when some videos are paid for in a course ( #5207 )
...
* Playlists: fix parsing error when some videos are paid for in a course
* Remove redundant casting to string
fix rebase error
Co-Authored-By: syeopite <70992037+syeopite@users.noreply.github.com>
* Fix rebase issues
---------
Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2026-04-09 14:52:03 +02:00
dependabot[bot]
749791cdf1
Bump docker/login-action from 3 to 4 ( #5661 )
...
Bumps [docker/login-action](https://github.com/docker/login-action ) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases )
- [Commits](https://github.com/docker/login-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/login-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 09:59:52 +01:00
dependabot[bot]
d7361cbb9a
Bump docker/build-push-action from 6 to 7 ( #5662 )
...
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 6 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 09:59:44 +01:00
dependabot[bot]
f07c9a7209
Bump docker/metadata-action from 5 to 6 ( #5663 )
...
Bumps [docker/metadata-action](https://github.com/docker/metadata-action ) from 5 to 6.
- [Release notes](https://github.com/docker/metadata-action/releases )
- [Commits](https://github.com/docker/metadata-action/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: docker/metadata-action
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 09:59:34 +01:00
dependabot[bot]
cf9b6c4fcb
Bump docker/setup-buildx-action from 3 to 4 ( #5664 )
...
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action ) from 3 to 4.
- [Release notes](https://github.com/docker/setup-buildx-action/releases )
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 09:59:26 +01:00
Ashley :3
21d0d1041a
Remove noreferrer since youtube now requires referrers on embeds ( #5642 )
...
* Remove noreferer since youtube now requires referers on embeds
* Update src/invidious/views/watch.ecr
---------
Co-authored-by: Fijxu <fijxu@nadeko.net>
2026-02-23 21:36:12 -03:00
Fijxu
fda8d1b528
Remove trailing whitespaces from codebase ( #5634 )
...
Removes trailing whitespaces found across the codebase using `find . -type f -exec grep -lE ' +$' {} +`
[skip ci]
2026-02-19 14:28:22 -03:00
Jeroen Boersma
e7f8b15b21
Add title listen button time updates ( #5625 )
...
When switching between Listen and Watching the timestamp in the url of
the listen of watch button is now updated automatically.
This means if you switch between listening and viewing you keep in sync
with time.
2026-02-16 16:39:44 -03:00
Fijxu
60c31e3069
Remove sort by rating and date in video search filters ( #5629 )
...
* Remove sort by rating and date in video search filters
Closes https://github.com/iv-org/invidious/issues/5626
* Remove check of protobug generation of rating and date sort filters in Invidious spec
2026-02-16 14:06:06 -03:00
Emilien
11db343cfb
Prepare for next release
2026-02-07 22:10:11 +01:00
Émilien (perso)
118d635650
Release v2.20260207.0 ( #5621 )
...
* Release v2.20260207.0
* Fix release notes for Crystal/OpenSSL
* fix comment about pr #5566 , #5338
Co-authored-by: Fijxu <fijxu@nadeko.net>
* fix comment about memory leaks
Co-authored-by: Fijxu <fijxu@nadeko.net>
* Clarify release notes for proxy header stripping
---------
Co-authored-by: Fijxu <fijxu@nadeko.net>
v2.20260207.0
2026-02-07 21:47:19 +01:00
Fijxu
29c29f7c8d
Update src/invidious/routes/routes.cr
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-06 18:50:36 +01:00
Fijxu
067a426235
refactor: Move top level constants to it's own modules
2026-02-06 18:50:36 +01:00
Samantaz Fox
ffd9f4b112
pages/watch: HTML escape 'action' in download widget
...
Caught in the review of PR 5224, but forgot to click on "send review" in time.
I realized that too late, after the PR was already merged.
2026-02-06 18:44:37 +01:00
Fijxu
cc7cb94095
Document use of unix sockets for db
2026-02-06 18:39:53 +01:00
Fijxu
0ee92e3298
Update src/invidious/routes/before_all.cr
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-06 18:35:20 +01:00
Fijxu
a3a97ccf07
Only generate companion CSP one time to reuse it
2026-02-06 18:35:20 +01:00
ThatMatrix
ce9494133d
fix(user/imports.cr): double header removal caused first video to be skipped
2026-02-06 18:33:58 +01:00
ThatMatrix
e4beb00413
fix(user/imports.cr): splitting error fixed
2026-02-06 18:33:58 +01:00
ThatMatrix
050032b188
fix(docker-compose.yml): removed hmac_key (randomly generated) used for testing
2026-02-06 18:33:58 +01:00
ThatMatrix
471857ce8b
Fix(user/importers): Fixed typos
2026-02-06 18:33:58 +01:00
ThatMatrix
7be6fbd75c
Fix(user/importers): Fixed youtube csv playlist importer
2026-02-06 18:33:58 +01:00
Cameron Radmore
84a699f7b7
Playlist API: return empty author url if ucid is empty ( #5618 )
2026-02-05 11:59:27 -03:00
Cameron Radmore
864893f4c7
Channels: parse pronouns and display them on channel page ( #5617 )
2026-02-05 11:58:52 -03:00
Cameron Radmore
ecbc21b067
playlist: parse playlist thumbnails for topic autogenerated playlists ( #5616 )
2026-02-04 12:57:16 -03:00
Fijxu
a9f812799c
fix: add missing embedded protobuf message in continuation token for channel videos ( #5614 )
...
* fix: add missing embedded protobuf message in continuation token for channel videos
* fix: add missing embedded protobuf message in continuation token for channel shorts
* fix: add missing embedded protobuf message in continuation token for channel livestreams
2026-02-03 16:18:15 -03:00
Harm133
48be830544
Update shard.yml to include target ( #5608 )
...
[shard.yml]
- Include a target for LSPs to use as an entrypoint:
(https://github.com/elbywan/crystalline?tab=readme-ov-file#entry-point )
2026-01-30 23:39:07 +01:00
Fijxu
b521e3be6c
chore: Do not convert thin_mode preference to string to compare it ( #5568 )
2026-01-30 18:01:16 -03:00
Fijxu
abb0aa436c
Fix thin_mode preference for channel community page ( #5567 )
...
thin_mode only took in account the query param because
env.get("preferences").as(Preferences).thin_mode returned a boolean and
not a string to be able to compare it with the string `"true"`
2026-01-30 18:01:04 -03:00
Harm
073396ce33
Don't assume the isShortsEligible is always availble
2026-01-24 23:00:18 +01:00
Harm
ea8e3b7d22
Formatting of src/invidious/users.cr
2026-01-24 22:22:40 +01:00
Harm133
7b48da6802
Apply suggestions from code review
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-24 22:19:49 +01:00
Harm
44e700c7ae
Merge branch 'hide-shorts-and-livestreams' of github.com:Harm133/invidious into hide-shorts-and-livestreams
2026-01-24 16:10:12 +01:00
Harm
93724f8051
Update logic to process shorts/livestreams
...
[config/config.example.yml]
- Separate hide_shorts_and_live to hide_shorts and hide_livestreams
[config/sql/channel_videos.sql]
- Introduce enum video_type
- Include video_type as new column for channel_videos
[locales/en-US.json]
- Add labels for new settings
[src/invidious/channels/channels.cr]
- Add property video_type of type VideoType to ChannelVideo struct
- Add deserializer module for conversion from database entry to enum
- Add check if we already have a video in the database.
If the video `updated` field has no been updated, only update views
- Add check whether a video is in the `videos` array. If this is not
the case, fetch the individual video for `video_type` as well as
`length_videos`
[src/invidious/config.cr]
- Separate hide_shorts_and_live property
to hide_shorts and hide_livestreams properties
[src/invidious/database/channels.cr]
- Include video_type in database insert for ChannelVideo
[src/invidious/routes/preferences.cr]
- Separate hide_shorts_and_live setting to hide_shorts and hide_livestreams
[src/invidious/users.cr]
- Accumulate VideoTypes in an array and query on these types
- Remove paths for hide_shorts_and_live
[src/invidious/videos.cr]
- Add `Short` entry to VideoType enum
[src/invidious/videos/parser.cr]
- Add check whether a video is a short
2026-01-24 16:08:16 +01:00
Harm133
1fd5bd44f0
Update config/config.example.yml
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-23 19:48:10 +01:00
Harm
b8e7202cbf
Filter shorts/livestreams in SQL
...
[src/invidious/users.cr]
- Filter out shorts and livestreams in SQL rather than via an array
selector. This way, in the relevant cases, we will query and return
"limit" amount of videos, rather than a possible lower amount
2026-01-23 19:19:43 +01:00
Harm
0bce7311c2
Introduce ability to hide shorts/livestreams in subscription feed
...
[config/config.example.yml]
- Introduce new default value for hide_shorts_and_live
[locales/en-US.json]
- Add translation label for hide_shorts_and_live
[src/invidious/config.cr]
- Add default value for hide_shorts_and_live to ConfigPreferences
[src/invidious/users.cr]
- Add filtering for shorts and listreams if hide_shorts_and_live is active
[src/invidious/routes/preferences.cr]
- Retrieve and convert hide_shorts_and_live option from preferences page
to preferences object
[src/invidious/user/preferences.cr]
- Add hide_shorts_and_live property
[src/invidious/views/user/preferences.ecr]
- Add div, label and input for new hide_shorts_and_live option
2026-01-23 18:45:50 +01:00
Kiril Isakov
d51a7a44ad
Fix commit command in README instructions, as per #5606 ( #5607 )
2026-01-23 13:18:41 +01:00
Émilien (perso)
7e36cfb667
Revert "Bump crystallang/crystal from 1.16.3-alpine to 1.19.0-alpine in /dock…" ( #5604 )
...
This reverts commit d25cc9570c9738f16e15437bcc69a12ab2095738.
2026-01-19 23:39:01 +01:00