5853 Commits

Author SHA1 Message Date
Hosted Weblate
ca305f3e88
Update French translation
Update French translation

Update French translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: I-I-IT <weblate.hut787@aleeas.com>
Co-authored-by: John Kindle <idp-portal.suse.com.dwindle414@aleeas.com>
Co-authored-by: Tristan B <tristanb0@users.noreply.hosted.weblate.org>
2026-06-07 07:01:19 +02:00
Hosted Weblate
fd72588d55
Update Spanish translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Nicolás Pérez <ccnicolasperez@gmail.com>
2026-06-07 07:01:18 +02:00
Hosted Weblate
8a4402f93e
Update Dutch translation
Update Dutch translation

Co-authored-by: Dick Groskamp <dikgro@yahoo.co.uk>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-06-07 07:01:18 +02:00
Hosted Weblate
f226d22db6
Update Arabic translation
Update Arabic translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Rex_sa <rex.sa@pm.me>
2026-06-07 07:01:17 +02:00
Hosted Weblate
50ec31de12
Update Italian translation
Update Italian translation

Update Italian translation

Update Italian translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
2026-06-07 07:01:17 +02:00
Hosted Weblate
03b849e86d
Update Polish translation
Update Polish translation

Update Polish translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Matthaiks <kitynska@gmail.com>
2026-06-07 07:01:16 +02:00
Hosted Weblate
757eff1c52
Update Croatian translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Milo Ivir <mail@milotype.de>
2026-06-07 07:01:16 +02:00
Hosted Weblate
8baf1aa99a
Update Icelandic translation
Update Icelandic translation

Update Icelandic translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
2026-06-07 07:01:15 +02:00
Hosted Weblate
b721237bd8
Update Portuguese translation
Update Portuguese translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Sergio Marques <so.boston.android@gmail.com>
2026-06-07 07:01:15 +02:00
Hosted Weblate
6ea5c5a2f0
Update Czech translation
Update Czech translation

Update Czech translation

Update Czech translation

Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jaroslav Lichtblau <l10n@lichtblau.cz>
2026-06-07 07:01:14 +02:00
Hosted Weblate
372ca28d22
Update Catalan translation
Update Catalan translation

Update Catalan translation

Co-authored-by: Ecron <ecron_89@hotmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Xusi Fons <xusi@keemail.me>
2026-06-07 07:01:13 +02:00
Hosted Weblate
94e64bc460
Update Japanese translation
Update Japanese translation

Update Japanese translation

Co-authored-by: Himmel <himmel@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: maboroshin <maboroshin@users.noreply.hosted.weblate.org>
2026-06-07 07:01:12 +02:00
Hosted Weblate
a9974f311e
Update Ukrainian translation
Update Ukrainian translation

Co-authored-by: Denys Nykula <nykula@ukr.net>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-06-07 07:01:12 +02:00
Hosted Weblate
cf10b19a41
Update Belarusian translation
Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Pavel Miniutka <pavel.miniutka@gmail.com>
2026-06-07 07:01:11 +02:00
Hosted Weblate
899a93ef56
Update Russian translation
Update Russian translation

Co-authored-by: Artyom Rybakov <rib.artem@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-06-07 07:01:11 +02:00
Hosted Weblate
d2cdbd6963
Update Estonian translation
Update Estonian translation

Update Estonian translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>
2026-06-07 07:01:10 +02:00
Hosted Weblate
a3ff163ce8
Update Greek translation
Co-authored-by: AUGANOS <giannoskai@proton.me>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-06-07 07:01:09 +02:00
Hosted Weblate
03a2f5d43f
Update German translation
Update German translation

Update German translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lenny Angst <lenny@familie-angst.ch>
Co-authored-by: Milo Ivir <mail@milotype.de>
2026-06-07 07:01:09 +02:00
Hosted Weblate
5c3212e22d
Update Portuguese (Brazil) translation
Update Portuguese (Brazil) translation

Update Portuguese (Brazil) translation

Update Portuguese (Brazil) translation

Update Portuguese (Brazil) translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: delvani <del.cidrak@gmail.com>
Co-authored-by: joaooliva <joaooliva@protonmail.com>
2026-06-07 07:01:08 +02:00
Hosted Weblate
f73937b0da
Update Tamil translation
Update Tamil translation

Update Tamil translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
2026-06-07 07:01:08 +02:00
Hosted Weblate
3c94edd0e6
Update Turkmen translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Perhat Kishikov <deadshoot205410@gmail.com>
2026-06-07 07:01:07 +02:00
Hosted Weblate
62dc76ccf4
Update Turkish translation
Update Turkish translation

Update Turkish translation

Update Turkish translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
2026-06-07 07:01:07 +02:00
Hosted Weblate
c6d32bc73c
Update Galician translation
Update Galician translation

Update Galician translation

Add Galician translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: ninjum <ninhum@gmx.com>
2026-06-07 07:01:06 +02:00
Fijxu
6b21daab56 Revert "Fix: Restore whitespace formatting while keeping disable_abusable_api configuration"
This reverts commit 8f279745db982959984e5953044ea4fa5f521ff3.
2026-06-04 20:22:00 -04:00
Fijxu
8f279745db Fix: Restore whitespace formatting while keeping disable_abusable_api configuration 2026-06-04 20:20:14 -04:00
Fijxu
98f4f118b2
Add support for alternative domains for Invidious cookies (#5647)
* Add support for alternative domains for Invidious cookies

* check if @@secure is already true before changing it's value

* Add alternative_domains config option example
2026-06-04 19:59:32 -04:00
Fijxu
85534a988d
Only include '&' if params are present (#5646) 2026-06-03 18:18:57 -04:00
Fijxu
0e0ee40cb6
Dockerfile: Switch to 84codes crystal compiler container image (#5473)
Closes https://github.com/iv-org/invidious/issues/5456

The 84codes Crystal container image builds libgc (bdwgc) with `--enable-large-config`: b321bb4358/alpine/Dockerfile (L13-L22)
2026-05-30 17:58:49 -04:00
Fijxu
e96ad036ca
fix: Do not append query params quality=medium to videos that are about to premiere (#5755)
* fix: Do not append query params `quality=medium` to videos that are about to premiere

Video premieres do not have `audio_streams` and they aren't `video.live_now == true` either,
therefore we skip the checks that are made for older videos (`if audio_streams.empty? && !video.live_now` closure)
if the video is a premiere.

This commit also adds the `microformat` field to the `info` instance
variable of the `Video` struct, since it's needed for the function
`Video#premiere_timestamp : Time?`. This is more like a quick fix than a
proper fix because in `Invidious::Videos::Parser#parse_video_info`,
`premiere_timestamp` is gathered from the `microformat` JSON Object but
is used to set the `published` hash key for the `params` variable.

The parsers and structs really need a rework :/

* Revert "fix: Do not append query params `quality=medium` to videos that are about to premiere"

This reverts commit 5cfc8dace82590ea6a41c849c9c39b1b7ba95fe7.

* chore: build premiere_timestamp using video_type and published time
2026-05-30 15:49:21 -04:00
Fijxu
1a5a71b086
Fix Youtube and Invidious links not rewinding their time when video timestamp is rewinded (#5601)
Revert "Fix Youtube and Invidious links not rewinding their time when video timestamp is rewinded"

This reverts commit c3ee8a5d90df83d6e53b78b6d6e9669729b391aa.
2026-05-29 23:54:08 -04:00
Fijxu
3a35552a66
fix: fix wrong call to I18n.translate() function 2026-05-29 23:51:34 -04:00
Fijxu
8ef5ea03d4
feat: Add support for POST requests on searches for privacy (#5551)
Use already set preferences variable

Use span for description, grammar fix from Copilot
2026-05-29 23:48:11 -04:00
shiny-comic
86c425b43f
Fix disappearing end of the comments with emoji (#5587)
Previous code use UTF-8 to count characters however Emojis are UTF-16 units.
This difference leads to misalignment of index offsets.

Co-authored-by: shiny-comic <shiny-comic@winPC>
2026-05-28 16:51:06 -04:00
Fijxu
4ae227ce91
Encapsulate videos parser and clip functions inside it's own Invidious::Videos::Parser and Invidious::Videos::Clip module (#5745)
Part of https://github.com/iv-org/invidious/issues/5744
2026-05-28 13:11:41 -04:00
Fijxu
8b183caa2a
fix: fix author verification in channels (#5751)
* fix author verification in channels

Fixes https://github.com/iv-org/invidious/issues/5730

Author verification badge is not longer located in
`c4TabbedHeaderRenderer`. It may be deprecated.

* Also detect AUDIO_BADGE for verified author
2026-05-28 13:10:58 -04:00
Fijxu
edb3a0fc36
Add support for /pl_c and /tvfilm_banner paths (thumbnails used in some playlists) (#5742)
* feat: add support for /pl_c/ images

This path can be found on Podcast images.

* add support for /pl_c and /tvfilm_banner paths

* add support for /pl_c and /tvfilm_banner paths 2

* remove leftover comment
2026-05-26 18:13:51 -04:00
Fijxu
6659cbbbd8
fix: fix channel videos and playlists on searches (#5736)
* fix: fix channel videos and playlists on searches

Channel videos are now encapsulated in a `lockupViewModel`.

There is 3 types of content that can be inside a `lockupViewModel`:

- LOCKUP_CONTENT_TYPE_VIDEO
- LOCKUP_CONTENT_TYPE_PLAYLIST
- LOCKUP_CONTENT_TYPE_PODCAST

This commit parses `LOCKUP_CONTENT_TYPE_VIDEO`, `LOCKUP_CONTENT_TYPE_PLAYLIST`, `LOCKUP_CONTENT_TYPE_PODCAST` types
to fix videos in channels, playlists in channels, podcast in channels, and other parts of Invidious were playlists and videos are displayed.

* remove unused variable `author_verified`

* fix parsing for podcasts

For some reason, Podcasts contains an empty JSON Object that we have to
skip, therefore we just iterate metadataRows until finding metadataParts
since metadataRows will not always contain a single Object.

* fix length_seconds for channel videos

* fix playlists parsing for playlists without metadataParts

On some channels like MrBeast, metadataParts is absent, missing the
author information, this is intended behaviour by Youtube since there is
no author information attached to them.

Example URL: https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA/playlists

* restore author_verified functionality

* more robust metadata_parts parsing

Videos that have two or more authors (in collaborations), have their
author information in JSON Objects inside metadataParts, alongside with
their view count and their published date, therefore, we need to iterate
the metadataParts array and do some filtering based on the content of
each JSON Object to find the view count and published date for some
videos.

Example:

```json
"metadataParts": [
    {
        "text": {
            "content": "Veritasium"
        },
        "icon": {
            "name": "CHECK_CIRCLE_FILLED",
            "height": 14,
            "width": 14,
            "accessibilityLabel": "Verified"
        }
    },
    {
        "text": {
            "content": "and Linus Tech Tips"
        },
        "icon": {
            "name": "CHECK_CIRCLE_FILLED",
            "height": 14,
            "width": 14,
            "accessibilityLabel": "Verified"
        }
    },
    {
        "text": {
            "content": "10M"
        },
        "accessibilityLabel": "10 million views"
    },
    {
        "text": {
            "content": "1y ago"
        }
    }
]
```

* improve playlist metadataRows and metadataParts parsing for channel playlists

* apply ameba suggestion

* Also parse lessons for playlists that are a course
2026-05-26 17:46:32 -04:00
Fijxu
99390d065d
fix: fix Missing hash key: "collectionThumbnailViewModel" for channel video thumbnails (#5725)
Now the Innertube structure doesn't include `collectionThumbnailViewModel`
and `primaryThumbnail` keys.

Now the structure looks like this:
```
"horizontalListRenderer": {
    "items": [
        {
            "lockupViewModel": {
                "contentImage": {
                    "thumbnailViewModel": {
                        "image": {
                            "sources": []
...
```

Fixes: https://github.com/iv-org/invidious/issues/5516
2026-05-20 21:36:50 -04:00
dependabot[bot]
e82ac674ae
chore(deps): bump int128/docker-manifest-create-action (#5721)
Bumps [int128/docker-manifest-create-action](https://github.com/int128/docker-manifest-create-action) from 2.20.0 to 2.21.0.
- [Release notes](https://github.com/int128/docker-manifest-create-action/releases)
- [Commits](https://github.com/int128/docker-manifest-create-action/compare/v2.20.0...v2.21.0)

---
updated-dependencies:
- dependency-name: int128/docker-manifest-create-action
  dependency-version: 2.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 14:08:06 -04:00
Fijxu
103f80e617
CI: update Crystal 1.20.1 to 1.20.2 in ci.yml matrix 2026-05-17 16:59:49 -04:00
Fijxu
9ee39bc437
chore: update Crystal to 1.20.2 in OCI 2026-05-17 16:58:36 -04:00
Fijxu
529fc8a8a3
fix: restore referrerpolicy for embed youtube link that got removed in commit bc64cd9 2026-05-12 23:13:37 -04:00
Fijxu
b4728b81dc
chore: update openssl to 3.6.2 in OCI (#5701) 2026-05-12 15:28:41 -04:00
dependabot[bot]
f914ce8040
Bump int128/docker-manifest-create-action from 2.19.0 to 2.20.0 (#5705)
Bumps [int128/docker-manifest-create-action](https://github.com/int128/docker-manifest-create-action) from 2.19.0 to 2.20.0.
- [Release notes](https://github.com/int128/docker-manifest-create-action/releases)
- [Commits](https://github.com/int128/docker-manifest-create-action/compare/v2.19.0...v2.20.0)

---
updated-dependencies:
- dependency-name: int128/docker-manifest-create-action
  dependency-version: 2.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-05 09:31:29 -04:00
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