5965 Commits

Author SHA1 Message Date
Émilien (perso)
0435eb3d02
Merge ce6d2d6d7e98c634dcbdf78f77c44b7f8897a741 into d10f2a48021f1768f2d6ff3bd1b9f3de4e0b2d22 2026-08-15 09:52:26 +02:00
dependabot[bot]
d10f2a4802
chore(deps): bump nixpkgs from b7c2ada to 2fcb964 in /nix (#5939)
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `b7c2ada` to `2fcb964`.
- [Commits](b7c2ada94f...2fcb964de6)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 2fcb964de67fcf60b43471c55d5d99e61a9ccb5a
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-14 22:09:09 -04:00
dependabot[bot]
ab8ee0ba2a
chore(deps): bump int128/docker-manifest-create-action (#5938)
Bumps [int128/docker-manifest-create-action](https://github.com/int128/docker-manifest-create-action) from 2.25.0 to 2.26.0.
- [Release notes](https://github.com/int128/docker-manifest-create-action/releases)
- [Commits](https://github.com/int128/docker-manifest-create-action/compare/v2.25.0...v2.26.0)

---
updated-dependencies:
- dependency-name: int128/docker-manifest-create-action
  dependency-version: 2.26.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-08-14 22:08:54 -04:00
dependabot[bot]
fd4fbf43c4
chore(deps): bump 84codes/crystal in /docker (#5937)
Bumps 84codes/crystal from 1.20.3-alpine to 1.21.0-alpine.

---
updated-dependencies:
- dependency-name: 84codes/crystal
  dependency-version: 1.21.0-alpine
  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-08-14 22:08:43 -04:00
TheFrenchGhosty
6865cf208e
Ban the use of AI to write to and/or address another Human (#5930)
* Ban the use of AI to write to and/or address another Human

* Typo
2026-08-12 08:26:08 +02:00
Weblate (bot)
fc3c75e9b5
Update Spanish translation (#5919)
Co-authored-by: Fijxu <fijxu@nadeko.net>
2026-08-12 08:01:45 +02:00
Fijxu
8fde720f94
Translations update from Hosted Weblate (#5892)
Translations update from Hosted Weblate
2026-08-09 15:34:50 -04:00
Hosted Weblate
42ea9cf708
Update Chinese (Simplified Han script) translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Hosted Weblate user 54392 <hamburger2048@users.noreply.hosted.weblate.org>
2026-08-09 21:20:16 +02:00
Hosted Weblate
b0d79e480e
Update Chinese (Traditional Han script) translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
2026-08-09 21:20:15 +02:00
Hosted Weblate
fe5ef8bd69
Update Slovenian translation
Co-authored-by: Damjan Gerl <damjan@damjan.net>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-08-09 21:20:14 +02:00
Hosted Weblate
215d7ec73d
Update Spanish translation
Co-authored-by: Fijxu <fijxu@nadeko.net>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-08-09 21:20:14 +02:00
Hosted Weblate
d42510b1c0
Update Italian translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
2026-08-09 21:20:14 +02:00
Hosted Weblate
5e59810585
Update Armenian translation
Co-authored-by: Maxim Mkrtchyan <mikurasua@gmail.com>
2026-08-09 21:20:13 +02:00
Hosted Weblate
8580ada425
Update Czech translation
Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
2026-08-09 21:20:13 +02:00
Hosted Weblate
3561d0689b
Update Russian translation
Co-authored-by: Artyom Rybakov <rib.artem@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-08-09 21:20:12 +02:00
Hosted Weblate
b97cd24b3c
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-08-09 21:20:12 +02:00
Hosted Weblate
0cf68a1d9e
Update Portuguese (Brazil) translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: joaooliva <joaooliva@protonmail.com>
2026-08-09 21:20:11 +02:00
Hosted Weblate
e450ef0168
Update Turkish translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
2026-08-09 21:20:11 +02:00
Fijxu
c2c75d212b
chore: remove leftover MT variable from Makefile 2026-08-09 15:19:47 -04:00
dependabot[bot]
eb407578a2
chore(deps): bump nixpkgs from 148bab9 to 6438090 in /nix (#5907)
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `148bab9` to `6438090`.
- [Commits](148bab9c1c...643809054d)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 643809054d65fdd466a63e3155b8c498cb483c04
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-06 16:15:53 -04:00
Fijxu
d6e4022cf2
chore: add Nix files to dependabot
Dependabot supports updating Nix flakes inputs, great to keep the
development deps updated.
2026-08-06 10:30:42 -04:00
TheFrenchGhosty
7d93ccbd04
Various enhancements and addition to the AI policy (#5904)
* Various enhancements and addition to the AI policy

* Typo
2026-08-06 03:35:58 +02:00
Fijxu
0460189a92
CI: Do not build OpenSSL tests and apps (#5897)
* CI: Do not build OpenSSL tests

OpenSSL compiles tests by default, making the CI and compilation of
Invidious take a long time for no real benefit, so it's better to
disable them ;)

https://github.com/openssl/openssl/blob/master/INSTALL.md#no-tests

* Use no-apps instead, as they also disable tests
2026-08-05 04:19:12 -04:00
Fijxu
3383a3041f
Prepare for next release 2026-08-04 21:04:56 -04:00
github-actions[bot]
48c6110a83
Release v2.20260804.1 (#5896)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
v2.20260804.1
2026-08-04 21:01:38 -04:00
Fijxu
673254e762
fix: pass -no-pie link flag argument to include debug information again for OCI (#5895)
* fix: pass `-no-pie` link flag argument to include debug information again for OCI

* remove space char
2026-08-04 19:11:38 -04:00
Fijxu
df0b02efc0
Prepare for next release 2026-08-04 18:30:20 -04:00
github-actions[bot]
1d1f404b9a
Release v2.20260804.0 (#5893)
* Release v2.20260804.0

* Update CHANGELOG.md

Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com>

* Update CHANGELOG.md

Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com>

* Update CHANGELOG.md

Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Fijxu <fijxu@nadeko.net>
Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com>
v2.20260804.0
2026-08-04 18:24:23 -04:00
Fijxu
66fb829dbc
CI: Exclude development dependencies from build job (#5860)
* CI: Exclude development dependencies from build job

* use --production and then install spectator to skip building of Ameba

* this should prevent ameba from building
2026-08-03 17:15:31 -04:00
TheFrenchGhosty
4b014bdc82
Enable the Uzbek since it's been translated at more than 20% (#5891) 2026-08-03 23:03:45 +02:00
Weblate (bot)
c1625119a7
Translations update from Hosted Weblate (#5881)
* Update Armenian translation

Update Armenian translation

Update Armenian translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Maxim Mkrtchyan <mikurasua@gmail.com>

* Update Polish translation

Co-authored-by: Matthaiks <kitynska@gmail.com>

* Update Uzbek translation

Add Uzbek translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Zafarx94 <zfrx94@mail.ru>

---------

Co-authored-by: Maxim Mkrtchyan <mikurasua@gmail.com>
Co-authored-by: Matthaiks <kitynska@gmail.com>
Co-authored-by: Zafarx94 <zfrx94@mail.ru>
2026-08-03 22:56:22 +02:00
TheFrenchGhosty
83882a17b6
Switch to deepseek/deepseek-v4-flash-0731 for the release script (#5886)
* Switch to deepseek/deepseek-v4-flash-0731 for the release script

* Make the change in the workflow file too
2026-08-03 22:55:44 +02:00
dependabot[bot]
0c3d3e8f8a
chore(deps): bump actions/stale from 10 to 11 (#5890)
Bumps [actions/stale](https://github.com/actions/stale) from 10 to 11.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v10...v11)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: '11'
  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-08-03 22:55:13 +02:00
Émilien (perso)
1a3cb60282
feat: add support for SOCKS5 proxy (#5865) 2026-08-03 22:43:18 +02:00
Fijxu
cb88a805e5
feat: allow setting videojs max buffer length via config.yml (#5876) 2026-08-03 15:52:50 -04:00
Fijxu
b4b6e992fc
fix: fix rendered links and timestamps in video descriptions (#5878)
* Revert "Fix disappearing end of the comments with emoji (#5587)"

This reverts commit 86c425b43f75dd1f22034bbfbd99476651661348.

* fix: fix rendered links and timestamps in video descriptions
2026-08-03 15:43:50 -04:00
Fijxu
9c70265a9a
fix: add missing HTML.escape call for commit 4501c9d 2026-08-03 15:24:47 -04:00
syeopite
4501c9df9c
Show message when comments are turned off (#4051)
* Add error message when comments are disabled

* Add btn to try reddit comments when yt is disabled

* Escape warning messages for disabled comments

* Add missing semicolons

* Update comment detection to not use msg renderer

* Use short syntax for comment entry-point detection

Co-authored-by: Samantaz Fox <coding@samantaz.fr>

* Condense try-reddit-comments-link HTML in player.js

Co-authored-by: Samantaz Fox <coding@samantaz.fr>

* Improve locale keys for comments disabled messages

Co-authored-by: Samantaz Fox <coding@samantaz.fr>

* Remove extra whitespace

* Use button instead of anchor for try reddit link

* Request Reddit comm when yt disabled during nojs=1

* Change order of commentsEnabled in parse results

* Lint

* Rebase error

* update the naming of the comments section in Innertube

Downstreamed from 36ac67610d

---------

Co-authored-by: Samantaz Fox <coding@samantaz.fr>
Co-authored-by: Fijxu <fijxu@nadeko.net>
2026-08-03 15:18:13 -04:00
TheFrenchGhosty
986471320d
Enable the new locales translated at more than 20% (#5882)
* Enable the new locales translated at more than 20%

* Align all the comments on column 43
2026-08-03 19:34:57 +02:00
Fijxu
47b5d79ec7
fix: also fix comments community posts. (#5874)
Community posts comments still preserve the old author thumbnails
format that has an Array of thumbnails. I forgot to check that as I had
no idea `comments_youtube.cr` was also used for community posts comments

```json
"authorThumbnail": {
    "thumbnails": [
        {
            "url": "//yt3.googleusercontent.com/ytc/AIdro_m9CJFVl3bEWvGnNnN4G9ErBO2lTpKePWCjx_FQtLWaDww=s32-c-k-c0x00ffffff-no-rj-mo",
            "width": 32,
            "height": 32
        },
        {
            "url": "//yt3.googleusercontent.com/ytc/AIdro_m9CJFVl3bEWvGnNnN4G9ErBO2lTpKePWCjx_FQtLWaDww=s48-c-k-c0x00ffffff-no-rj-mo",
            "width": 48,
            "height": 48
        },
        {
            "url": "//yt3.googleusercontent.com/ytc/AIdro_m9CJFVl3bEWvGnNnN4G9ErBO2lTpKePWCjx_FQtLWaDww=s76-c-k-c0x00ffffff-no-rj-mo",
            "width": 76,
            "height": 76
        }
    ],
    "accessibility": {
        "accessibilityData": {
            "label": "SomeOrdinaryGamers"
        }
    }
},
```
2026-08-02 21:09:15 -04:00
Emilien
ce6d2d6d7e chore: fix some usability 2026-08-03 02:50:51 +02:00
Emilien
240c8f0f22 chore: make it compatible with socks proxy 2026-08-03 02:50:51 +02:00
Emilien
a794618d4e fix: auto hide player bar 2026-08-03 02:50:51 +02:00
Emilien
2b32cdb4f3 fix: use external bg solver 2026-08-03 02:50:51 +02:00
Emilien
2cc3b61cb7 feat(sabr): fetch player response via Onesie (WEB client)
Replace the plain /youtubei/v1/player request (made through the proxy,
and therefore bound to the proxy's egress IP) with an encrypted Onesie
request using the WEB client. Onesie is proxied by YouTube's "trusted
bandaid", so the returned player response - and the server_abr_streaming_url
inside it - is not tied to our egress IP. Media is still pulled over SABR
(sabr_scheme_plugin.js); only how the player response is obtained changes.

- sabr_onesie.js: new module, window.fetchOnesiePlayerResponse(). Builds the
  WEB player request, encrypts it (OnesieInnertubeRequest + OnesieRequest),
  POSTs to the onesie endpoint through /proxy, parses ONESIE_HEADER/ONESIE_DATA
  UMP parts, gunzips/decrypts, returns the raw player response JSON. Adapted
  from googlevideo/examples/onesie-request and invidious-secret-companion's
  WEB-client variant.
- sabr_helpers.js: add decryptResponse() (AES-CTR + HMAC verify), companion to
  the existing encryptRequest().
- sabr_loader.js: expose window.YT so a VideoInfo can be built from the raw
  onesie player response.
- sabr_player.js: in loadVideo(), fetch the player response via Onesie and wrap
  it in new YT.VideoInfo(...); fall back to innertube.getInfo() on failure.
- player.ecr: load sabr_onesie.js before sabr_player.js.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 02:50:51 +02:00
Emilien
5185487eb3 fix(sabr): correct per-segment URIs and control-bar play button size
Segment index parsers (mp4/webm) declared the per-segment URI array with
`var` inside the loop, so every SegmentReference's getUris() closure
captured the same function-scoped binding and returned the LAST segment's
URL. YouTube received the final segment's startTimeMs/sq for every
segment, replied with policy-only UMP (no media), and the player looped
forever on a black screen ("SABR throttled by YouTube"). Use `let`
(block-scoped, fresh per iteration) to match FreeTube's `const`.

Also scope the big centered play button styling to
`.shaka-play-button-container`; the bare `.shaka-play-button` selector
also matched the control-bar play button (48px siblings), oversizing it
to ~54px and pushing it out of alignment.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 02:50:51 +02:00
Emilien
a213cd1697 fix: cap SABR reloads at 3 to prevent infinite backoff loop on throttled videos 2026-08-03 02:50:51 +02:00
Emilien
0e1c46b207 perf: parallelize Shaka init with network calls, defer scripts, preconnect, fix shaka 5 spinner CSS 2026-08-03 02:50:51 +02:00
Emilien
660dad9dbe fix: drop preferredAudio config (shaka 5 expects non-string type) 2026-08-03 02:50:51 +02:00
Emilien
b25343551d fix: align shaka 5 player config keys (preferredAudio, manifest.disableVideo) 2026-08-03 02:50:51 +02:00